/*********************************************************************
*                                                                    *
*   Copyright 1986, Commodore-Amiga Inc.   All rights reserved.      *
*   No part of this program may be reproduced, transmitted,          *
*   transcribed, stored in retrieval system, or translated into      *
*   any language or computer language, in any form or by any         *
*   means, electronic, mechanical, magnetic, optical, chemical,      *
*   manual or otherwise, without the prior written permission of     *
*   Commodore-Amiga Incorporated, 983 University Ave. Building #D,   *
*   Los Gatos, California, 95030                                     *
*                                                                    *
**********************************************************************
*
* $Header: narrator.h,v 32.1 86/01/22 00:48:00 sam Exp $
*
* $Locker:  $
*
* $Log:	narrator.h,v $
* Revision 32.1  86/01/22  00:48:00  sam
* placed under source control
* 
*
*********************************************************************/
#ifndef	DEVICES_NARRATOR_H
#define DEVICES_NARRATOR_H
           
#ifndef EXEC_IO_H
#include "exec/io.h"
#endif

		/*          Error Codes		*/

#define ND_NoMem     -2		/* Can't allocate memory 		*/
#define ND_NoAudLib  -3		/* Can't open audio device 		*/
#define ND_MakeBad   -4		/* Error in MakeLibrary call		*/
#define ND_UnitErr   -5		/* Unit other than 0 			*/
#define ND_CantAlloc -6		/* Can't allocate audio channel(s) 	*/
#define ND_Unimpl    -7		/* Unimplemented command 		*/
#define ND_NoWrite   -8		/* Read for mouth without write first 	*/
#define ND_Expunged  -9		/* Can't open, deferred expunge bit set	*/
#define ND_PhonErr   -20	/* Phoneme code spelling error 		*/
#define ND_RateErr   -21	/* Rate out of bounds 			*/
#define ND_PitchErr  -22	/* Pitch out of bounds 			*/
#define ND_SexErr    -23	/* Sex not valid 			*/
#define ND_ModeErr   -24	/* Mode not valid 			*/
#define ND_FreqErr   -25	/* Sampling frequency out of bounds 	*/
#define ND_VolErr    -26	/* Volume out of bounds 		*/
    


     		/* Input parameters and defaults */

#define DEFPITCH    110		/* Default pitch 			*/
#define DEFRATE     150		/* Default speaking rate (wpm) 		*/
#define DEFVOL      64		/* Default volume (full) 		*/
#define DEFFREQ     22200	/* Default sampling frequency (Hz) 	*/
#define MALE        0		/* Male vocal tract 			*/
#define FEMALE      1		/* Female vocal tract 			*/
#define NATURALF0   0		/* Natural pitch contours 		*/
#define ROBOTICF0   1		/* Monotone 				*/
#define DEFSEX      MALE	/* Default sex 				*/
#define DEFMODE     NATURALF0 	/* Default mode 			*/



		/*      Parameter bounds	*/

#define MINRATE     40		/* Minimum speaking rate 		*/
#define MAXRATE     400		/* Maximum speaking rate 		*/
#define MINPITCH    65		/* Minimum pitch 			*/
#define MAXPITCH    320		/* Maximum pitch 			*/
#define MINFREQ     5000	/* Minimum sampling frequency 		*/
#define MAXFREQ     28000	/* Maximum sampling frequency 		*/
#define MINVOL      0		/* Minimum volume 			*/
#define MAXVOL      64		/* Maximum volume 			*/



		/*    Standard Write request	*/

struct narrator_rb {
	struct IOStdReq  message;	/* Standard IORB		*/
	UWORD	rate;			/* Speaking rate (words/minute) */
	UWORD	pitch;			/* Baseline pitch in Hertz     	*/
	UWORD	mode;			/* Pitch mode			*/
	UWORD	sex;			/* Sex of voice			*/
	UBYTE	*ch_masks;		/* Pointer to audio alloc maps	*/
	UWORD	nm_masks;		/* Number of audio alloc maps 	*/
	UWORD	volume;			/* Volume. 0 (off) thru 64 	*/
	UWORD   sampfreq;		/* Audio sampling freq 		*/
	UBYTE	mouths;			/* If non-zero, generate mouths */
	UBYTE	chanmask;		/* Which ch mask used (internal)*/
	UBYTE	numchan;		/* Num ch masks used (internal) */
	UBYTE	pad;			/* For alignment		*/
    };



		/*    Standard Read request	*/

struct mouth_rb {
	struct	narrator_rb voice;	/* Speech IORB			*/
	UBYTE	width;			/* Width (returned value)	*/
	UBYTE	height;			/* Height (returned value)	*/
	UBYTE	shape;			/* Internal use, do not modify  */
	UBYTE	pad;			/* For alignment		*/
	};



#endif DEVICES_NARRATOR_H
