William Hubbs | c6e3fd2 | 2010-10-07 13:20:02 -0500 | [diff] [blame] | 1 | /* speakup_dtlk.h - header file for speakups DoubleTalk driver. */ |
| 2 | |
| 3 | #define SYNTH_IO_EXTENT 0x02 |
| 4 | #define SYNTH_CLEAR 0x18 /* stops speech */ |
| 5 | /* TTS Port Status Flags */ |
| 6 | #define TTS_READABLE 0x80 /* mask for bit which is nonzero if a |
Aleksei Fedotov | 13d825e | 2015-08-14 22:34:37 +0300 | [diff] [blame] | 7 | * byte can be read from the TTS port |
| 8 | */ |
William Hubbs | c6e3fd2 | 2010-10-07 13:20:02 -0500 | [diff] [blame] | 9 | #define TTS_SPEAKING 0x40 /* mask for SYNC bit, which is nonzero |
Aleksei Fedotov | 13d825e | 2015-08-14 22:34:37 +0300 | [diff] [blame] | 10 | * while DoubleTalk is producing |
| 11 | * output with TTS, PCM or CVSD |
| 12 | * synthesizers or tone generators |
| 13 | * (that is, all but LPC) |
| 14 | */ |
William Hubbs | c6e3fd2 | 2010-10-07 13:20:02 -0500 | [diff] [blame] | 15 | #define TTS_SPEAKING2 0x20 /* mask for SYNC2 bit, |
Aleksei Fedotov | 13d825e | 2015-08-14 22:34:37 +0300 | [diff] [blame] | 16 | * which falls to zero up to 0.4 sec |
| 17 | * before speech stops |
| 18 | */ |
William Hubbs | c6e3fd2 | 2010-10-07 13:20:02 -0500 | [diff] [blame] | 19 | #define TTS_WRITABLE 0x10 /* mask for RDY bit, which when set to |
Aleksei Fedotov | 13d825e | 2015-08-14 22:34:37 +0300 | [diff] [blame] | 20 | * 1, indicates the TTS port is ready |
| 21 | * to accept a byte of data. The RDY |
| 22 | * bit goes zero 2-3 usec after |
| 23 | * writing, and goes 1 again 180-190 |
| 24 | * usec later. |
| 25 | */ |
William Hubbs | c6e3fd2 | 2010-10-07 13:20:02 -0500 | [diff] [blame] | 26 | #define TTS_ALMOST_FULL 0x08 /* mask for AF bit: When set to 1, |
Aleksei Fedotov | 13d825e | 2015-08-14 22:34:37 +0300 | [diff] [blame] | 27 | * indicates that less than 300 bytes |
| 28 | * are available in the TTS input |
| 29 | * buffer. AF is always 0 in the PCM, |
| 30 | * TGN and CVSD modes. |
| 31 | */ |
William Hubbs | c6e3fd2 | 2010-10-07 13:20:02 -0500 | [diff] [blame] | 32 | #define TTS_ALMOST_EMPTY 0x04 /* mask for AE bit: When set to 1, |
Aleksei Fedotov | 13d825e | 2015-08-14 22:34:37 +0300 | [diff] [blame] | 33 | * indicates that less than 300 bytes |
| 34 | * are remaining in DoubleTalk's input |
| 35 | * (TTS or PCM) buffer. AE is always 1 |
| 36 | * in the TGN and CVSD modes. |
| 37 | */ |
William Hubbs | c6e3fd2 | 2010-10-07 13:20:02 -0500 | [diff] [blame] | 38 | |
| 39 | /* data returned by Interrogate command */ |
| 40 | struct synth_settings { |
| 41 | u_short serial_number; /* 0-7Fh:0-7Fh */ |
| 42 | u_char rom_version[24]; /* null terminated string */ |
| 43 | u_char mode; /* 0=Character; 1=Phoneme; 2=Text */ |
| 44 | u_char punc_level; /* nB; 0-7 */ |
| 45 | u_char formant_freq; /* nF; 0-9 */ |
| 46 | u_char pitch; /* nP; 0-99 */ |
| 47 | u_char speed; /* nS; 0-9 */ |
| 48 | u_char volume; /* nV; 0-9 */ |
| 49 | u_char tone; /* nX; 0-2 */ |
| 50 | u_char expression; /* nE; 0-9 */ |
| 51 | u_char ext_dict_loaded; /* 1=exception dictionary loaded */ |
| 52 | u_char ext_dict_status; /* 1=exception dictionary enabled */ |
| 53 | u_char free_ram; /* # pages (truncated) remaining for |
Aleksei Fedotov | 13d825e | 2015-08-14 22:34:37 +0300 | [diff] [blame] | 54 | * text buffer |
| 55 | */ |
William Hubbs | c6e3fd2 | 2010-10-07 13:20:02 -0500 | [diff] [blame] | 56 | u_char articulation; /* nA; 0-9 */ |
| 57 | u_char reverb; /* nR; 0-9 */ |
| 58 | u_char eob; /* 7Fh value indicating end of |
Aleksei Fedotov | 13d825e | 2015-08-14 22:34:37 +0300 | [diff] [blame] | 59 | * parameter block |
| 60 | */ |
William Hubbs | c6e3fd2 | 2010-10-07 13:20:02 -0500 | [diff] [blame] | 61 | u_char has_indexing; /* nonzero if indexing is implemented */ |
| 62 | }; |