1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
|
/*****************************************************************************
Module ToolVox.H
The defines and prototypes for the Voxware voice compression
system.
Version 1.1.8.192
For MacOS, Windows 3.1, Windows95, and Solaris
Voxware Inc.
305 College Road East
Princeton, New Jersey 08540
http://www.voxware.com
Voxware Proprietary Material
Copyright 1996, Voxware, Inc.
All Rights Resrved
DISTRIBUTION PROHIBITED without written authorization from Voxware
*****************************************************************************/
/*
!!! All reserved, padding, and optional fields should be set to zero if
!!! you are not using them. Please memset() all structures before using
!!! them.
*/
/*
You must "#define VOXWARE_xxx" for the environment you
are generating code for.
Valid types are:
VOXWARE_WIN16 <-- Windows 3.x
VOXWARE_WIN32 <-- Windows 95 or Windows NT
VOXWARE_DOS <-- MS-DOS
VOXWARE_MAC <-- MacOS
VOXWARE_SUN <-- SunOS/Solaris
VOXWARE_HP <-- HPUX (Version 9.xx)
VOXWARE_AIX <-- IBM's AIX
*/
#ifndef __TOOLVOX_H_
#define __TOOLVOX_H_
#ifdef __cplusplus
extern "C" {
#endif
#ifndef VOXWARE_SUN
#ifdef VOXWARE_MAC
#include <ConditionalMacros.h>
#endif
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=mac68k
#elif VOXWARE_HP
#pragma HP_ALIGN HPUX_WORD
#else
#pragma pack(2)
#endif
#endif
// DAVE: THIS SHOULD PROBABLY BE IN THIS FILE INSTEAD OF ITS OWN HDR. -GEO
#include "voxchunk.h"
/* Value returned from a ToolVox function call. See ToolVox manual for a */
/* list of specific return codes for each function. */
typedef unsigned short VOXWARE_RETCODE;
/* We support VOXWARE_WIN for backwards compatibility. Use VOXWARE_WIN16. */
#if defined (VOXWARE_WIN)
#define VOXWARE_WIN16
#endif
#if defined (VOXWARE_WIN16)
#define VOX_FAR __far
#define VOX_EXPORT __export
#define VOX_PASCAL __pascal
#define VOXAPI VOX_FAR VOX_PASCAL
#ifdef __cplusplus
#define VOXAPI_CALLBACK VOX_FAR __pascal
#else
#define VOXAPI_CALLBACK VOX_FAR __pascal __loadds
#endif
#elif defined(VOXWARE_WIN32)
#define VOX_FAR
#define VOX_EXPORT
#define VOX_PASCAL __stdcall
#define VOXAPI VOX_PASCAL
#define VOXAPI_CALLBACK __stdcall
#elif defined(VOXWARE_MAC)
#define VOX_FAR
#define VOX_EXPORT
#define VOX_PASCAL pascal
#define VOXAPI VOX_PASCAL
#define VOXAPI_CALLBACK VOX_PASCAL
#elif defined(VOXWARE_SUN)
#if defined(VOXWARE_SGI) || defined(VOXWARE_DEC)
#define VOX_FAR
#define VOX_EXPORT
#define VOX_PASCAL
#define VOXAPI
#define VOXAPI_CALLBACK short
#else
#define VOX_FAR
#define VOX_EXPORT
#define VOX_PASCAL
#define VOXAPI
#define VOXAPI_CALLBACK
#endif
#elif defined(VOXWARE_DOS)
#define VOX_FAR __far
#define VOX_EXPORT
#define VOX_PASCAL pascal
#define VOXAPI VOX_PASCAL
#define VOXAPI_CALLBACK VOX_PASCAL
#else
#pragma message ("TOOLVOX.H: Platform indicator #define not setup.")
#pragma message ("TOOLVOX.H: One of the following must be initialized:")
#pragma message ("TOOLVOX.H: #define VOXWARE_WIN16")
#pragma message ("TOOLVOX.H: #define VOXWARE_WIN32")
#pragma message ("TOOLVOX.H: #define VOXWARE_MAC")
#pragma message ("TOOLVOX.H: #define VOXWARE_SUN")
#pragma message ("TOOLVOX.H: #define VOXWARE_DOS")
#pragma message ("TOOLVOX.H: Check the Voxware manual for more information.")
#endif
/*****************************************************************************
** **
** The data structures that will be passed to the ToolVox functions. **
** **
*****************************************************************************/
typedef struct tagVOX_ENVIRONMENT
{
unsigned short wSizeofVoxEnvironment; /* --> Fill this in for us */
unsigned short wCompatibility; /* <-- versioning */
unsigned long dwAPIVersionNumber; /* <-- Version of API */
unsigned long dwAPIMaintanceNumber; /* <-- Maint Rel of API */
unsigned short wNumCodecs; /* <-- Number of CODECS avail. */
unsigned short wNumVoiceFonts; /* <-- Number of VoiceFonts */
char szAPIName[32]; /* <-- ToolVox For MacOS 1.1.5 */
} VOX_ENVIRONMENT;
typedef VOX_ENVIRONMENT VOX_FAR * LPVOX_ENVIRONMENT;
typedef struct tagVOXWARE_DATA
{
unsigned short wSizeOfVoxwareData; /* The size of this structure */
unsigned short wUserData; /* Application dependent data */
/* ...(16 bit). */
unsigned long dwUserData; /* Application dependent data */
/* (32 bit). */
/* Buffer information required for (de)compressing between buffers <-> */
/* disk. */
unsigned long dwInputType; /* What is stored in the */
/* ...'lpInputLocation' field. */
void VOX_FAR *lpInputLocation; /* Pointer to a filename or */
/* ...buffer. */
unsigned long dwInputSize; /* Inform Voxware about the */
/* ...buffer size. */
unsigned long dwInputPosition; /* Input data offset info. */
unsigned long dwInputSamplingRate; /* Number of samples per second.*/
unsigned short wInputBytesPerSample; /* Number of bytes per sample. */
unsigned long dwOutputType; /* What is stored in the */
/* ...'lpOutputLocation' field. */
void VOX_FAR *lpOutputLocation; /* Pointer to filename, buffer, */
/* ...or empty for playback. */
unsigned long dwOutputSize; /* Inform Voxware about the */
/* ...buffer size. */
unsigned long dwOutputPosition; /* Output data offset info. */
unsigned long dwOutputSamplingRate; /* Number of samples per second.*/
unsigned short wOutputBytesPerSample;/* Number of bytes per sample. */
/* The decompression routines will use the following for voice effects: */
unsigned short bUseAbsolutePitchFlag;/* TRUE if fPitchChange is to */
/* ...be used; FALSE is for */
/* ...fPitchShift usage. */
float fRelativePitch; /* Relative PitchShift factor. */
float fAbsolutePitch; /* Absolute PitchShift value. */
float fWarpedLengthFactor; /* Warping factor */
/* ...0.2<factor<5.0 (a value */
/* ...of 1.0 = normal time) */
void VOX_FAR *lpVoiceFont; /* VoiceFont used for playback. */
unsigned long dwVoiceFontEnum; /* Data used for enumeration of */
/* ...VoiceFonts. */
/* This is a more detailed value that can help track down errors. */
signed long dwSecondaryReturnCode;
unsigned long dwDataLeft; /* Amount of data to process. */
/* A callback function that the effects routines will call. */
void VOX_FAR *lpCallbackFunc;
void VOX_FAR *lpvControlBlock; /* Private control block used */
/* ...by Voxware. */
/* New fields for ToolVox version 1.1.0. */
unsigned long dwCompressionSettings;/* Choose the compression codec.*/
unsigned long dwStatus; /* Status of ToolVox engine. */
unsigned short wVoiceFontType; /* Unused. Set to zero. */
unsigned short bUseAbsoluteGainFlag; /* true if fGainControl is used */
float fRelativeGain; /* decompression only */
/* Multimedia Codecs Only */
/* 1.0 is normal */
/* greater than 1 is louder */
/* less than 1 is softer */
float fAbsoluteGain; /* decompression only */
signed short wCurrentEnergyLevel; /* 0..255; > 200 = clipping */
unsigned short padding3; /* Unused. Set to zero. */
void VOX_FAR *lpReservedFunction; /* reserved 1 */
void VOX_FAR *lpReservedVars; /* reserved 2 */
void VOX_FAR *lpMarkerRecord; /* reserved */
//###GTT - Added support for communication of info chunks - 5/30/96
VOX_CHUNK_INFO VOX_FAR *lpInfoChunks;
short wNumInfoChunks;
short bV1Compatible;
unsigned short wVoiceFontID; /* Used to activate a VoiceFont */
void VOX_FAR * lpPlaybackWindow;
unsigned short wNumBitsPerFrame;
} VOXWARE_DATA;
typedef VOXWARE_DATA VOX_FAR * LPVOXWARE_DATA;
typedef struct tagVOX_VERSION
{
/* The version and internal name for the ToolVox Compression DLL. */
unsigned char szCompressVersion[64];
unsigned char szCompressInternal[32];
/* The version and maintenance for the ToolVox Compression DLL. */
/* For example: 1.30.46.01 */
unsigned long dwCompressVersion; /* e.g. 0x00010030 = "01.30" */
unsigned long dwCompressMaint; /* e.g. 0x00460001 = "46.01" */
/* The version and internal name for the ToolVox Decompression DLL. */
unsigned char szDecompressVersion[64];
unsigned char szDecompressInternal[32];
/* The version and maintenance for the ToolVox Decompression DLL. */
/* For example: 1.30.46.01 */
unsigned long dwDecompressVersion; /* e.g. 0x00010030 = "01.30" */
unsigned long dwDecompressMaint; /* e.g. 0x00460001 = "46.01" */
/* The version and internal name for the ToolVox VoiceFont DLL. */
unsigned char szVoiceFontVersion[64];
unsigned char szVoiceFontInternal[32];
/* The version and maintenance for the ToolVox VoiceFont DLL. */
/* For example: 1.30.46.01 */
unsigned long dwVoiceFontVersion; /* e.g. 0x00010030 = "01.30" */
unsigned long dwVoiceFontMaint; /* e.g. 0x00460001 = "46.01" */
/* The version and internal name for the ToolVox Utility DLL. */
unsigned char szUtilityVersion[64];
unsigned char szUtilityInternal[32];
/* The version and maintenance for the ToolVox Utility DLL. */
/* For example: 1.30.46.01 */
unsigned long dwUtilityVersion; /* e.g. 0x00010030 = "01.30" */
unsigned long dwUtilityMaint; /* e.g. 0x00460001 = "46.01" */
/* The version and internal name for the ToolVox RT24 Compression DLL. */
unsigned char szRT24CompressVersion[64];
unsigned char szRT24CompressInternal[32];
/* The version and maintenance for the ToolVox RT24 Compression DLL. */
/* For example: 1.30.46.01 */
unsigned long dwRT24CompressVersion; /* e.g. 0x00010030 = "01.30" */
unsigned long dwRT24CompressMaint; /* e.g. 0x00460001 = "46.01" */
/* The version and internal name for the ToolVox RT24 Decompression DLL.*/
unsigned char szRT24DecompressVersion[64];
unsigned char szRT24DecompressInternal[32];
/* The version and maintenance for the ToolVox RT24 Decompression DLL. */
/* For example: 1.30.46.01 */
unsigned long dwRT24DecompressVersion; /* e.g. 0x00010030 = "01.30" */
unsigned long dwRT24DecompressMaint; /* e.g. 0x00460001 = "46.01" */
} VOX_VERSION;
typedef VOX_VERSION VOX_FAR * LPVOX_VERSION;
typedef struct tagVOX_FILE_INFO
{
/* Some standard WAV, AIFF, and VOX file data. */
unsigned short wFormatTag; /* WAVE_FORMAT_VOXWARE for com- */
/* ...pressed or WAVE_FORMAT_PCM */
/* ...for standard files. */
unsigned short nChannels; /* Set to the value */
/* ...VOXWARE_WAVE_FILE_MONO or */
/* ...VOXWARE_WAVE_FILE_STEREO. */
unsigned long nAvgBitsPerSec; /* The bit rate of this file. */
unsigned long dwSamplingRate;
unsigned short wBytesPerSample;
unsigned long dwNumSamplesInFile; /* The total number of samples in */
/* ...the file. */
float fMeanPitch; /* Weighted average pitch of the */
/* ...Vox file. */
float fMinPitch; /* Lowest pitch value of the file. */
float fMaxPitch; /* Highest pitch value of the file. */
//###lee - split this out into a new structure:
unsigned long dwCompressedSize; /* One is estimated, and the other */
unsigned long dwDecompressedSize; /* ...is the current size. */
unsigned short bVariableRate; /* TRUE if codec is variable rate. */
} VOX_FILE_INFO;
typedef VOX_FILE_INFO VOX_FAR * LPVOX_FILE_INFO;
typedef struct tagVFONT_IDENTIFIER
{
/* Used for vfontEnumerate calls. */
char szFontName[32];
char szFontFile[128];
} VFONT_IDENTIFIER;
typedef VFONT_IDENTIFIER VOX_FAR * LPVFONT_IDENTIFIER;
typedef struct tagCODEC_DESCRIPTION
{
unsigned long dwCodecID;
char szCodecInternalName[44];
char szCodecListBoxName[44];
char szCodecDescription[256];
} CODEC_DESCRIPTION;
typedef CODEC_DESCRIPTION VOX_FAR * LPCODEC_DESCRIPTION;
typedef struct tagVOICE_FONT_DESCRIPTION
{
unsigned short wFontID;
char szFontFamily[44];
char szFontName[44];
char szFontDescription[256];
unsigned short bHasDecodeEffect;
unsigned short wSizeofDecodeChunk;
} VOICE_FONT_DESCRIPTION;
typedef VOICE_FONT_DESCRIPTION VOX_FAR * LPVOICE_FONT_DESCRIPTION;
typedef struct tagVOX_FUNCTION_VARS
{
unsigned short wSizeOfFunctionVars; /* The size of this structure */
void VOX_FAR *lpBuffer; /* Pointer to a the data buffer.*/
unsigned long dwBufferSize; /* The size of the buffer. */
unsigned long dwUserData; /* Application dependent data */
/* (32 bit). */
LPVOXWARE_DATA lpVoxwareData; /* The original VoxawareData */
/* used to start processing. */
} VOX_FUNCTION_VARS;
typedef VOX_FUNCTION_VARS VOX_FAR * LPVOX_FUNCTION_VARS;
/*
For use with BitStreams
*/
typedef struct tagVOX_STREAM_HEADER
{
unsigned long dwHeaderID;
unsigned short wSizeOfVoxStreamHeader;
unsigned char voxStreamHeaderData[1]; // variable length
} VOX_STREAM_HEADER;
typedef VOX_STREAM_HEADER VOX_FAR * LPVOX_STREAM_HEADER;
typedef struct tagFIRST_BITSTREAM_BUFFER
{
unsigned short wSizeOfFirstBitStreamStruct;
unsigned short wNumBitsPerFrame;
unsigned short wNumSamplesPerFrame;
unsigned short wPadding;
VOX_STREAM_HEADER voxStreamHeader; /* Send this to the decoder */
} FIRST_BITSTREAM_BUFFER;
typedef FIRST_BITSTREAM_BUFFER VOX_FAR * LPFIRST_BITSTREAM_BUFFER;
/*
VOX_CALLBACK is a typedef for the user function that is called by the
ToolVox compression and decompression routines.
Special Note for Macintosh Developers:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Do >> NOT << give us a Universal Procedure Pointer.
We make our own so you don't have to... (your welcome)
Sooo just give us the functions name:
yourVoxData->lpCallbackFunc = myCallbackProc;
*/
#ifdef VOXWARE_MAC
typedef VOXAPI_CALLBACK VOXWARE_RETCODE (* VOX_CALLBACK)
(unsigned short wVox, unsigned short wMessage,
LPVOXWARE_DATA lpVoxData);
#else
#if defined(VOXWARE_SGI) || defined(VOXWARE_DEC)
typedef VOXWARE_RETCODE ( * VOX_CALLBACK) (unsigned short , unsigned short , LPVOXWARE_DATA );
#else
typedef VOXWARE_RETCODE (VOXAPI_CALLBACK * VOX_CALLBACK)
(unsigned short wVox, unsigned short wMessage,
LPVOXWARE_DATA lpVoxData);
#endif
#endif
typedef struct tagVOX_COMMAND
{
unsigned long dwAttribute; /* Attribute to act on? */
float fFloatParam; /* Use this for float attributes. */
unsigned long dwLongParam; /* Use this for long attributes. */
} VOX_COMMAND;
typedef VOX_COMMAND VOX_FAR * LPVOX_COMMAND;
#define ATTRIBUTE_WARPED_LENGTH_FACTOR 1L // get and set
#define ATTRIBUTE_RELATIVE_PITCH 2L // get and set
#define ATTRIBUTE_ABSOLUTE_PITCH 3L // get and set
#define ATTRIBUTE_PLAY_TIME 5L // not yet supported
#define ATTRIBUTE_VOICE_FONT 6L // set only
#define ATTRIBUTE_GAIN_CONTROL 7L // get and set
#define ATTRIBUTE_BITS_PER_SECOND 8L // not yet supported
#define ATTRIBUTE_FIXED_RATE_CODEC 9L // not yet supported
#define ATTRIBUTE_DUMP_BUFFERS 0x80000 + 1L // RESERVED: bit bit offset is param
#define ATTRIBUTE_SILENT_WINDOW 0x80000 + 2L // RESERVED: get set dwLongParam = WORD ms
#define ATTRIBUTE_INDICATE_LOST_FRAME 0x80000 + 3L // RESERVED: set dwLongParam = BOOL
#define ATTRIBUTE_VOICE_LEVEL 0x80000 + 4L // RESERVED: get set dwLongParam = WORD Value
#define ATTRIBUTE_VOICE_STATE 0x80000 + 5L // RESERVED: get dwLongParam = int Value
//#define ATTRIBUTE_VOICE_FONT_II 0x80000 + 6L // RESERVED: set dwLongParam = short EffectSelection - fFloatParam = short SliderValue
//#define ATTRIBUTE_VOICE_EFFECT 0x80000 + 7L // RESERVED: set dwLongParam = short EffectSelection - fFloatParam = short SliderValue
#define ATTRIBUTE_BIT_OFFSET 0x80000 + 8L // RESERVED: set
#define ATTRIBUTE_GAIN_CONTROL_ADJUST 0x80000 + 6L // RESERVED: get dwLongParam = signed short Value
#define ATTRIBUTE_AGC_REFERENCE_LEVEL 0x80000 + 7L // RESERVED: set dwLongParam = unsigned short Value
/*****************************************************************************
**
** lpVoxwareData->dwCompressionSettings = VOXWARE_CODEC_xxx
**
** Not filling in the dwCompressionSettings field, or setting it to default
** tells ToolVox to compress what you gave it using the best codec for the
** job. If you give us a 11k-16k file, we will chose the MM_11k codec, if
** you give us a 22k or better file, we will choose the MM_22k codec, etc...
**
** If you assign one of the values below to the dwCompressionSettings field,
** then we will send your file through the codec you asked us to.
**
** Refer to page ###Maija: of the manual for more.
**
*****************************************************************************/
#define VOXWARE_CODEC_RT_8K 0x01000001
#define VOXWARE_CODEC_RT_8K_HQ29 0x01000010
#define VOXWARE_CODEC_RT_8K_HQ24 0x01000004 // Do not use - unavailable for this release.
#define VOXWARE_CODEC_RT_8K_VR12 0x01000008 // Do not use - unavailable for this release.
#define VOXWARE_CODEC_RT_8K_VR15 0x01000009 // Do not use - unavailable for this release.
#define VOXWARE_CODEC_RT_8K_UQ 0x0100000C // Do not use - unavailable for this release.
#define VOXWARE_CODEC_MM_11K 0x02000002 // Do not use - unavailable for this release.
#define VOXWARE_CODEC_MM_22K 0x04000002 // Do not use - unavailable for this release.
#define VOXWARE_CODEC_DEFAULT 0x00000000
#define VOXWARE_CODEC_RT24 VOXWARE_CODEC_RT_8K // obs spelling
/*Add for AUDIO codec*/
#define VOXWARE_CODEC_AC_8K 0X08000001
#define VOXWARE_CODEC_AC_11K 0X08000002
#define VOXWARE_CODEC_AC_16K 0X08000003
#define VOXWARE_CODEC_AC_22K 0X08000004
/* These are provided for backwards compatibility The #define's above should be used. */
#define VOXWARE_AUDIO_CODEC_08 VOXWARE_CODEC_AC_8K
#define VOXWARE_AUDIO_CODEC_11 VOXWARE_CODEC_AC_11K
#define VOXWARE_AUDIO_CODEC_16 VOXWARE_CODEC_AC_16K
#define VOXWARE_AUDIO_CODEC_22 VOXWARE_CODEC_AC_22K
/*****************************************************************************
**
** These are used to define the input and output types. They should be ORed
** together to create the type that is needed. For example compressing
** a Windows Wave file would use VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_FILE.
** To specify the compressed output Wave file, use: VOXTYPE_FORMAT_WAVE|
** VOXTYPE_LOCATION_FILE|VOXTYPE_QUALIFIER_VOX.
**
*****************************************************************************/
//#define VOXTYPE_FORMAT_IRRELEVENT (unsigned long)(0x00000000L)
#define VOXTYPE_FORMAT_WAVE (unsigned long)(0x00010000L)
#define VOXTYPE_FORMAT_RAW (unsigned long)(0x00020000L)
#define VOXTYPE_FORMAT_AIFF (unsigned long)(0x00030000L)
#define VOXTYPE_FORMAT_VFONT (unsigned long)(0x00040000L)
#define VOXTYPE_FORMAT_PITCH (unsigned long)(0x00050000L)
#define VOXTYPE_LOCATION_FILE (unsigned long)(0x00000100L)
#define VOXTYPE_LOCATION_BUFFER (unsigned long)(0x00000200L)
#define VOXTYPE_LOCATION_FSSPEC (unsigned long)(0x00000300L)
#define VOXTYPE_LOCATION_SOUND (unsigned long)(0x00000400L)
#define VOXTYPE_LOCATION_FUNCTION (unsigned long)(0x00000800L)
#define VOXTYPE_LOCATION_STRING (unsigned long)(0x00001000L)
#define VOXTYPE_LOCATION_BITSTREAM (unsigned long)(0x00001100L)
#define VOXTYPE_LOCATION_VOICE_FONT_ID (unsigned long)(0x00001200L)
#define VOXTYPE_QUALIFIER_PCM (unsigned long)(0x00000000L)
#define VOXTYPE_QUALIFIER_VOX (unsigned long)(0x00000001L)
#define VOXTYPE_QUALIFIER_PITCH (unsigned long)(0x00000002L)
//#define VOXTYPE_QUALIFIER_ASYNC (unsigned long)(0x00000004L)
#define VOXTYPE_CONST_FILE_INFO (unsigned long)(0x10000000L)
#define VOXTYPE_CONST_VERSION (unsigned long)(0x20000000L)
#define VOXTYPE_CONST_BENCHMARK (unsigned long)(0x40000000L)
#define VOXTYPE_FORMAT_MASK (unsigned long)(0x000F0000L)
#define VOXTYPE_LOCATION_MASK (unsigned long)(0x0000FF00L)
#define VOXTYPE_VFONT_FILENAME (unsigned long)(VOXTYPE_FORMAT_VFONT|VOXTYPE_LOCATION_FILE)
#define VOXTYPE_VFONT_DESCRIPTION (unsigned long)(VOXTYPE_FORMAT_VFONT|VOXTYPE_LOCATION_STRING)
#define VOXTYPE_VFONT_IDENTIFIER (unsigned long)(VOXTYPE_FORMAT_VFONT|VOXTYPE_LOCATION_BUFFER)
/*
The following constants can be used in the dwOutputType and dwInputType
fields of the VoxwareData structure instead of ORing the flags above...
*/
#define TYPE_WAVE_PCM_FILE (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_FILE|VOXTYPE_QUALIFIER_PCM)
#define TYPE_AIFF_PCM_FILE (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_FILE|VOXTYPE_QUALIFIER_PCM)
#define TYPE_RAW_PCM_FILE (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_FILE|VOXTYPE_QUALIFIER_PCM)
#define TYPE_WAVE_PCM_FSSPEC (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_FSSPEC|VOXTYPE_QUALIFIER_PCM)
#define TYPE_AIFF_PCM_FSSPEC (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_FSSPEC|VOXTYPE_QUALIFIER_PCM)
#define TYPE_RAW_PCM_FSSPEC (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_FSSPEC|VOXTYPE_QUALIFIER_PCM)
#define TYPE_WAVE_PCM_BUFFER (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_BUFFER|VOXTYPE_QUALIFIER_PCM)
#define TYPE_AIFF_PCM_BUFFER (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_BUFFER|VOXTYPE_QUALIFIER_PCM)
#define TYPE_RAW_PCM_BUFFER (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_BUFFER|VOXTYPE_QUALIFIER_PCM)
#define TYPE_WAVE_PCM_FUNCTION (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_FUNCTION|VOXTYPE_QUALIFIER_PCM)
#define TYPE_AIFF_PCM_FUNCTION (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_FUNCTION|VOXTYPE_QUALIFIER_PCM)
#define TYPE_RAW_PCM_FUNCTION (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_FUNCTION|VOXTYPE_QUALIFIER_PCM)
#define TYPE_WAVE_VOX_FILE (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_FILE|VOXTYPE_QUALIFIER_VOX)
//#define TYPE_AIFF_VOX_FILE (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_FILE|VOXTYPE_QUALIFIER_VOX)
#define TYPE_RAW_VOX_FILE (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_FILE|VOXTYPE_QUALIFIER_VOX)
#define TYPE_WAVE_VOX_FSSPEC (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_FSSPEC|VOXTYPE_QUALIFIER_VOX)
//#define TYPE_AIFF_VOX_FSSPEC (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_FSSPEC|VOXTYPE_QUALIFIER_VOX)
#define TYPE_RAW_VOX_FSSPEC (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_FSSPEC|VOXTYPE_QUALIFIER_VOX)
#define TYPE_WAVE_VOX_BUFFER (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_BUFFER|VOXTYPE_QUALIFIER_VOX)
#define TYPE_AIFF_VOX_BUFFER (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_BUFFER|VOXTYPE_QUALIFIER_VOX)
#define TYPE_RAW_VOX_BUFFER (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_BUFFER|VOXTYPE_QUALIFIER_VOX)
#define TYPE_WAVE_VOX_FUNCTION (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_FUNCTION|VOXTYPE_QUALIFIER_VOX)
#define TYPE_AIFF_VOX_FUNCTION (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_FUNCTION|VOXTYPE_QUALIFIER_VOX)
#define TYPE_RAW_VOX_FUNCTION (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_FUNCTION|VOXTYPE_QUALIFIER_VOX)
#define TYPE_PLAY_WINMM (unsigned long)(VOXTYPE_LOCATION_SOUND|VOXTYPE_QUALIFIER_PCM)
#define TYPE_PLAY_MAC (unsigned long)(VOXTYPE_LOCATION_SOUND|VOXTYPE_QUALIFIER_PCM)
#define VOXTYPE_RECORD_PCM (unsigned long)(VOXTYPE_LOCATION_SOUND|VOXTYPE_QUALIFIER_PCM) // ###dave 03/25/96: added this
#define TYPE_RAW_VOX_BITSTREAM (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_BITSTREAM|VOXTYPE_QUALIFIER_VOX)
#define VOX_VOICE_FONT_PREVIEW_ID (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_VOICE_FONT_ID|VOXTYPE_QUALIFIER_VOX)
/*****************************************************************************
**
** Some defines that can be used with the ToolVox routines.
**
*****************************************************************************/
/* This is the maximum filename size that can be used with the ToolVox */
/* routines. Does not include the space for the NULL. */
#define MAX_FILENAMESIZE 255 /* char szFile[MAX_FILENAMESIZE+1]; */
#define WAVE_FORMAT_VOXWARE 0x0062
// ###dave -lee we need to define _WAVE & _AIFF, and friends... (raw)
#define VOXWARE_WAVE_FILE_MONO 1
#define VOXWARE_WAVE_FILE_STEREO 2
#define VOXWARE_SAMPLING_RATE_8K 8000L
#define VOXWARE_SAMPLING_RATE_11K 11025L
#define VOXWARE_SAMPLING_RATE_11127K 0x2B7745D1L /*11127.27273 khz */
#define VOXWARE_SAMPLING_RATE_16K 16000L
#define VOXWARE_SAMPLING_RATE_22K 22050L
#define VOXWARE_SAMPLING_RATE_22254K 0x56EE8BA3L /*22254.54545 khz */
#define VOXWARE_SAMPLING_RATE_32K 32000L
#define VOXWARE_SAMPLING_RATE_44K 44100L
#define VOXWARE_SAMPLING_INDEX_8K 0
#define VOXWARE_SAMPLING_INDEX_11k 1
#define VOXWARE_SAMPLING_INDEX_16K 2
#define VOXWARE_SAMPLING_INDEX_22K 3
#define VOXWARE_SAMPLING_INDEX_32K 4
#define VOXWARE_SAMPLING_INDEX_44K 5
#define VOXWARE_SAMPLING_INDEX_11127K 6
#define VOXWARE_SAMPLING_INDEX_22254K 7
#define VOXWARE_SAMPLING_INDEX_END (VOXWARE_SAMPLING_INDEX_22254K+1)
#define VOXWARE_NUM_SAMPLING_RATES (VOXWARE_SAMPLING_INDEX_22254K+1)
#define VOXWARE_SAMPLING_RATE_ARRAY {VOXWARE_SAMPLING_RATE_8K, \
VOXWARE_SAMPLING_RATE_11K, \
VOXWARE_SAMPLING_RATE_16K, \
VOXWARE_SAMPLING_RATE_22K, \
VOXWARE_SAMPLING_RATE_32K, \
VOXWARE_SAMPLING_RATE_44K, \
VOXWARE_SAMPLING_RATE_11127K,\
VOXWARE_SAMPLING_RATE_22254K,\
0L}
#define VOXWARE_SAMPLE_SIZE_8BIT 1
#define VOXWARE_SAMPLE_SIZE_16BIT 2
#define VOXWARE_SAMPLE_INDEX_8BIT 0
#define VOXWARE_SAMPLE_INDEX_16BIT 1
#define VOXWARE_SAMPLE_INDEX_END (VOXWARE_SAMPLE_INDEX_16BIT+1)
#define VOXWARE_NUM_SAMPLE_SIZES (VOXWARE_SAMPLE_INDEX_16BIT+1)
#define VOXWARE_SAMPLE_SIZE_ARRAY {VOXWARE_SAMPLE_SIZE_8BIT, \
VOXWARE_SAMPLE_SIZE_16BIT, \
0L}
/*****************************************************************************
**
** Some consts so you don't hard-coding anything!
**
*****************************************************************************/
#define GAIN_ENERGY_LEVEL_CLIPPING (char) 200 /* You may be clipping if > */
/* ...this level. */
#define GAIN_ENERGY_LEVEL_TOO_LOW (char) 150 /* Speaker should not go */
/* below this for very long.*/
#define MAX_WARPED_LENGTH_FACTOR (float) 5.0
#define MIN_WARPED_LENGTH_FACTOR (float) 0.2
#define DEFAULT_WARPED_LENGTH_FACTOR (float) 1.0
#define USE_ABSOLUTE_PITCH TRUE
#define USE_RELATIVE_PITCH FALSE /* Default for bAbsolutePitchFlag */
#define MAX_RELATIVE_PITCH (float) +24.0
#define MIN_RELATIVE_PITCH (float) -24.0
#define DEFAULT_RELATIVE_PITCH (float) 0.0
#define MAX_ABSOLUTE_PITCH (float) 400.0
#define MIN_ABSOLUTE_PITCH (float) 70.0
#define USE_ABSOLUTE_GAIN TRUE
#define USE_RELATIVE_GAIN FALSE /* Default for bUseAbsoluteGainFlag */
#define MAX_RELATIVE_GAIN (float) +100.0
#define MIN_RELATIVE_GAIN (float) -100.0
#define DEFAULT_RELATIVE_GAIN (float) 0.0
#define MAX_ABSOLUTE_GAIN (float) 255.0
#define MIN_ABSOLUTE_GAIN (float) 0.0
#define NO_VOICE_FONT NULL
/* Assign the wVoiceFontType field to one of the following */
#define VOICE_FONT_VERSION_ONE_POINTER (short) 0
#define VOICE_FONT_BETA_2_STRUCT (short) 1
/*
The manual say's that the minimum size buffer you should ever
pass in is 512 bytes. (Truth is, we don't need that much,
but since I haven't called by psychic friend yet... I don't
know what the future will hold -- :)
*/
#define VOX_MINIMUM_BUFFER_SIZE (unsigned long) 512
/* Version format: vers.rel.maint.patch - this is version 1.1.8.192 */
#define TOOLVOX_VERSION_NUMBER 0x00010001L
#define TOOLVOX_MAINTENANCE_LEVEL 0x000800C0L
/* The following are obsolete spellings - use the constants #defined above. */
#define VOXWARE_VERSION TOOLVOX_VERSION_NUMBER
#define VOXWARE_MAINT TOOLVOX_MAINTENANCE_LEVEL
/*****************************************************************************
**
** Message values that are passed to the callback & the dwStatus field
**
*****************************************************************************/
#define VOXWARE_PLAYBACKERROR 10
#define VOXWARE_STARTCOMPRESS 11
#define VOXWARE_ENDCOMPRESS 12
#define VOXWARE_STARTDECOMPRESS 13
#define VOXWARE_ENDDECOMPRESS 14
#define VOXWARE_STARTPLAY 15
#define VOXWARE_ENDPLAY 16
//#define VOXWARE_STARTPITCH 17
//#define VOXWARE_ENDPITCH 18
#define VOXWARE_GETINFO 19
#define VOXWARE_STARTRECORD 20 /* Added in Version 1.1 */
#define VOXWARE_ENDRECORD 21 /* Added in Version 1.1 */
#define VOXWARE_RECORDERROR 22 /* Added in Version 1.1 */
#define VOXWARE_WAITING_TO_CLEANUP 23 /* Added in Version 1.1 */
#define VOXWARE_PAUSED 24 /* Added in Version 1.2 */
// ###lee: where is SOUNDOUT ??
#define VOXWARE_FUNCTION_INIT 40 /* Added in Version 1.1 */
#define VOXWARE_FUNCTION_READ 41 /* Added in Version 1.1 */
#define VOXWARE_FUNCTION_WRITE 42 /* Added in Version 1.1 */
#define VOXWARE_FUNCTION_CLEANUP 43 /* Added in Version 1.1 */
/*****************************************************************************
**
** Messages that are sent to the FILTER function
**
*****************************************************************************/
#define VOXWARE_FILTER_INIT 50
#define VOXWARE_FILTER_PCM 51
#define VOXWARE_FILTER_CLEANUP 52
/*****************************************************************************
**
** Messages that are returned from the low level compress and decompress
** functions.
**
*****************************************************************************/
#define VOXWARE_NEED_MORE_INPUT_DATA 91
#define VOXWARE_OUTPUT_BUFFER_FULL 92
#define VOXWARE_USER_ABORTED 93
#define VOXWARE_USER_PAUSED 94
/*****************************************************************************
**
** Error return values.
** All the errors are described in more detail in the file: tvgetstr.c
**
*****************************************************************************/
/* This is the return code for successful functions that work. */
#define VOX_NO_ERROR 00000
#define obsERR_BITS_PER_SAMPLE 101
#define obsERR_SAMPLE_RATE 102
#define VOXERR_FORMAT_PCM 103
#define VOXERR_NOT_MONO 104
#define VOXERR_VOXWARE_DATA_POINTER_NULL 105
#define VOXERR_VOXWARE_DATA_SIZE 106
#define VOXERR_VOX_FILE_INFO_POINTER_NULL 107
#define VOXERR_VOX_FILE_INFO_SIZE 108
#define VOXERR_VOX_VERSION_POINTER_NULL 109
#define VOXERR_VOX_VERSION_SIZE 110
#define VOXERR_VOX_VOICE_POINTER_NULL 111
#define VOXERR_VOX_VOICE_NAME_NULL 112
#define VOXERR_MORPHIO_POINTER_BAD 113
#define VOXERR_INVALID_INPUT_TYPE 114
#define VOXERR_INVALID_OUTPUT_TYPE 115
#define VOXERR_INPUT_HANDLER 116
#define VOXERR_OUTPUT_HANDLER 117
#define VOXERR_PRIME_TIME 118
#define VOXERR_WARP_2_BIG 119
#define VOXERR_WARP_2_SMALL 120
#define VOXERR_ABS_PITCH_2_BIG 121
#define VOXERR_ABS_PITCH_2_SMALL 122
#define VOXERR_REL_PITCH_2_BIG 123
#define VOXERR_REL_PITCH_2_SMALL 124
#define VOXERR_CODEC_UNKNOWN 125
#define VOXERR_INPUT_BYTES_PER_SAMPLE 126
#define VOXERR_OUTPUT_BYTES_PER_SAMPLE 127
#define VOXERR_FORMAT_VOX 128
#define VOXERR_UNKNOWN_ATTRIBUTE 129
#define VOXERR_VWD_OR_VCB_IS_NULL 130
#define VOXERR_NO_MARKERS_IN_INPUT_FILE 131
#define VOXERR_BAD_SRC_4_MARKER_INPUT 132
#define VOXERR_UNSUPPORTED_MARKER_CHUNK 133
#define VOXERR_INVALID_MARKER_SELECTOR 134
#define VOXERR_NO_INPUT_SAMPLE_SIZE 135
#define VOXERR_NO_INPUT_SAMPLING_RATE 136
#define VOXERR_BAD_INPUT_SAMPLING_RATE 137
#define VOXERR_BAD_OUTPUT_SAMPLING_RATE 138
/* A spot check of your machine and system software revealed a slight problem. */
/* These are MacOS ONLY errors: */
#define VOXERR_VALIDATE_NO_GESTALT 139
#define VOXERR_VALIDATE_CPU_OLD_AS_DIRT 140
#define VOXERR_VALIDATE_NO_FPU 141
#define VOXERR_VALIDATE_FILE_MGR_TOO_OLD 142
#define VOXERR_VALIDATE_NO_NOTIFICATION_MGR 143
#define VOXERR_VALIDATE_YIKES_NO_SOUND_MGR 144
#define VOXERR_VALIDATE_U_LACK_16BIT_SND 145
#define VOXERR_VALIDATE_SND_MGR_NOT_CURRENT 146
#define VOXERR_DONT_GIVE_INPUT_SAMPLE_RATE 147
#define VOXERR_DONT_GIVE_INPUT_SAMPLE_SIZE 148
#define VOXERR_NO_SAMPLE_RATE_FOR_VOX 149
#define VOXERR_NO_SAMPLE_SIZE_FOR_VOX 150
#define VOXERR_EFFECTS_ARE_NOT_SUPPORTED 151
#define VOXERR_FX_R_4_DECOMPRESSION_ONLY 152
#define VOXERR_ONLY_RT_8K_CODEC_AVAILABLE 153
#define VOXERR_INVALID_MARKER_SIZEOF 154
#define VOXERR_INVALID_VCB 155
#define VOXERR_INVALID_OUTPUT_VARS 156
#define VOXERR_INVALID_INPUT_VARS 157
#define VOXERR_ABS_GAIN_2_BIG 158
#define VOXERR_ABS_GAIN_2_SMALL 159
#define VOXERR_REL_GAIN_2_BIG 160
#define VOXERR_REL_GAIN_2_SMALL 161
#define VOXERR_VOXWARE_ALREADY_INITIALIZED 162
#define VOXERR_MUST_PLAY_TO_LOCATION_SOUND 163 // new, not yet in manual
#define VOXERR_MUST_CALL_DCMP_TOOLVOX_PLAY 164 // new, not yet in manual
#define VOXERR_FPU_DETECT 165 // new, not yet in manual
#define VOXERR_IDENTIFYING_THE_CPU 166 // new, not yet in manual
#define obsERR_IDENTIFYING_THE_OS 167 // bozo sabotage error... never use this.
#define VOXERR_CODEC_NOT_AVAILABLE 168 // new, not yet in manual
#define obsERR_DONT_GIVE_CODEC 169 // bozo sabotage error... never use this.
#define VOXERR_DONT_GIVE_CMP_SETTINGS 170 // new, not yet in manual
#define VOXERR_LINK_WITH_NATIVE_CODE 171 // mac only: new, not yet in manual
/* File I/O error codes. */
#define obsERR_DATA_CHUNK_SEEK 201
#define obsERR_FMT_CHUNK_READ 202
#define VOXERR_FMT_CHUNK_SIZE 203
#define VOXERR_RIFF_CHUNK_READ 204
#define VOXERR_VOX_HEADER_FLAG 205
#define VOXERR_VOX_HEADER_SIZE 206
#define obsERR_VOX_INIT_READ 207
#define obsERR_VOX_INIT_WRITE 208
#define obsERR_VOX_OPEN 209
#define obsERR_VOX_READ 210
#define obsERR_VOX_WRITE 211
#define obsERR_WAVE_CKID 212
#define obsERR_WAVE_INIT_READ 213
#define obsERR_WAVE_INIT_WRITE 214
#define obsERR_WAVE_OPEN 215
#define obsERR_WAVE_READ 216
#define obsERR_WAVE_WRITE 217
#define VOXERR_VFONT_OPEN 218
#define VOXERR_VFONT_READ 219
#define VOXERR_VFONT_WRITE 220
#define VOXERR_ENDOFFILE_REACHED 221
#define VOXERR_READING_FROM_FILE 222
#define VOXERR_WRITING_TO_FILE 223
#define VOXERR_BAD_PATH_TO_FILE 224
#define VOXERR_SET_FPOS 225
#define VOXERR_OPENING_INPUT_FILE 226
#define VOXERR_OPENING_OUTPUT_FILE 227
#define VOXERR_CLOSING_INPUT_FILE 228
#define VOXERR_CLOSING_OUTPUT_FILE 229
#define VOXERR_READING_MARKER 230
#define VOXERR_SEEKING_TO_MARKER_CHUNK 231
#define VOXERR_MARKER_SEEK_RESET 232
#define VOXERR_FAILED_SEEK_TO_MARKER 233
#define VOXERR_REOPENING_MARKER_LOG 234
#define VOXERR_OPENING_MARKER_LOG 235
#define VOXERR_FAILED_TO_GET_EOF 236
#define VOXERR_SEEKING_PAST_HEADER 237
#define VOXERR_ENDOFBUFFER_REACHED 238
/* Format/Header error codes */
#define WheReIsErOrNuMbErThReEoOnE 301 //###lee
#define VOXERR_UNKNOWN_HEADER_FORMAT 302
#define VOXERR_WE_DONT_SUPPORT_RIFX 303
#define VOXERR_WAVE_DOESNT_START_RIFF 304
#define VOXERR_CANT_SURF_THIS_WAVE 305
#define VOXERR_AIFF_COULDNT_FIND_ALL_CHUNKS 306
#define VOXERR_HDR_MISSING_BITS_OF_DATA 307
#define VOXERR_NOT_A_COMPRESSED_HEADER 308
#define VOXERR_NO_CODECID_FOR_HEADER 309 // new MJ51
#define VOXERR_UNKNOWN_CODECID_IN_HEADER 310 // new MJ67
/* Memory allocation error codes. */
#define VOXERR_PLAYBACK_MEMORY 401
#define VOXERR_VOXSTRUCT_MEMORY 402
#define obsERR_VOX_DATA_MEMORY 403
#define obsERR_WAVE_DATA_MEMORY 404
#define VOXERR_WAVEHDR_MEMORY 405
#define VOXERR_VER_INFO_MEMORY 406
#define VOXERR_MORPHIO_MEMORY 407
#define VOXERR_INPUT_VARS_MEMORY 408
#define VOXERR_OUTPUT_VARS_MEMORY 409
#define VOXERR_RECORD_MEMORY 410
#define VOXERR_MARKERS_MEMORY 411
#define VOXERR_FILELINK_MEMORY 412
#define VOXERR_READ_COMPLETION_MEMORY 413
#define VOXERR_INPUT_DISKIO_MEMORY 414
#define VOXERR_OUTPUT_DISKIO_MEMORY 415
#define VOXERR_FLUSH_BUFFER_MEMORY 416
#define VOXERR_FUNCIN_BUFFER_MEMORY 417
#define VOXERR_FUNCOUT_BUFFER_MEMORY 418
#define VOXERR_DEFERRED_TASK_PROC_MEMORY 419
#define VOXERR_DEFERRED_TASK_MEMORY 420
#define VOXERR_SOUND_CALLBACK_PROC_MEMORY 421
#define VOXERR_NOTIFICATION_REC_MEMORY 422
#define VOXERR_PLAYBACK_VARS_MEMORY 423
#define VOXERR_PLAYBACK_BUFFER_MEMORY 424
#define VOXERR_ORD_MARKERS_MEMORY 425
#define VOXERR_MARKERS_TEMP_CHUNK_MEMORY 426
#define VOXERR_WAVE_MARKER_CHUNK_MEMORY 427
#define VOXERR_GENERIC_MARKERS_MEMORY 428
#define VOXERR_TEMP_INPUT_BUFFER_MEMORY 429
/* General system error codes. */
#define VOXERR_BREW_BLACK_ART 501
#define VOXERR_COMPRESSION 502
#define VOXERR_CREATE_WINDOW 503
#define VOXERR_DECOMPRESSION 504
#define VOXERR_WAVEOUT_OPEN 505
#define VOXERR_PREPARE_HDR 506
#define VOXERR_WAVEOUT_WRITE 507
#define VOXERR_WAVEIN_ADD_BUFFER 508
#define VOXERR_WAVEIN_OPEN 509
#define VOXERR_WAVEIN_START 510
#define VOXERR_FUNCTION_EXPIRED 511
#define VOXERR_NOT_ENOUGH_DATA_TO_COMPRESS 512
#define VOXERR_COMPRESS_BUFFER 513
#define VOXERR_PROCESSING_ABORTED 514 // new, not yet in manual
#define VOXERR_PAUSING 515 // new MJ44 -- not yet in manual
#define VOXERR_RESUMING 516 // new MJ44 -- not yet in manual
#define VOXERR_FLUSHCMD 517 // new MJ44 -- not yet in manual
#define VOXERR_QUIETCMD 518 // new MJ44 -- not yet in manual
#define VOXERR_BUFFERCMD 519 // new MJ44 -- not yet in manual
#define VOXERR_CALLBACKCMD 520 // new MJ44 -- not yet in manual
#define VOXERR_DTINSTALL_FAILED 521 // new MJ44 -- not yet in manual
/* Errors that occur using the VoiceFonts API. */
#define VOXERR_VFONT_FILE_NOT_FOUND 601
#define VOXERR_VFONT_WRONGNAME 602
#define VOXERR_VFONT_DELETE 603
#define VOXERR_VFONT_FILE_FORMAT 604
#define VOXERR_MORPHIO_HANDLE_INVALID 605
#define VOXERR_VFII_UNKNOWN_VOICE_FONT 606 // new MJ50 -- not yet in manual
#define VOXERR_VFII_UNKNOWN_VF_CHUNK_SIZE 607 // new MJ50 -- not yet in manual
/*****************************************************************************
**
** Header routines to convert from digitized speech to VOX data. They all
** take PCM data as input and output compressed VOX data.
**
*****************************************************************************/
/* New calls that have the properties of all of the other calls. The routine
** use the dwInputType and dwOutputType fields to tell how to process the data.
** This makes the older calls obsolete (yet still supported).
*/
VOXWARE_RETCODE VOXAPI cmpToolVoxRecord(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI cmpToolVoxCompress(LPVOXWARE_DATA lpVoxwareData);
/* These routines are used for low-level compression. */
VOXWARE_RETCODE VOXAPI cmpVoxInit(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI cmpVoxConvert(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI cmpVoxFree(LPVOXWARE_DATA lpVoxwareData);
/* Older functions that are only here for backwards compatibility. */
VOXWARE_RETCODE VOXAPI cmpFileToVoxFile(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI cmpFileToVoxBuffer(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI cmpBufferToVoxFile(LPVOXWARE_DATA lpVoxwareData);
/*****************************************************************************
**
** Header routines to convert from VOX data to digitized speech. They all
** take VOX data as input (either as VOX file or a buffer of VOX data) and
** output decompressed PCM data. There is also a routine to play VOX or PCM
** data.
**
*****************************************************************************/
VOXWARE_RETCODE VOXAPI dcmpToolVoxPlay(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpToolVoxDecompress(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpToolVoxStop(LPVOXWARE_DATA lpVoxwareData); // MacOS only
VOXWARE_RETCODE VOXAPI dcmpToolVoxPause(LPVOXWARE_DATA lpVoxwareData); // Hidden API don't use.
VOXWARE_RETCODE VOXAPI dcmpToolVoxResume(LPVOXWARE_DATA lpVoxwareData); // Hidden API don't use.
VOXWARE_RETCODE VOXAPI dcmpSetBitOffset(LPVOXWARE_DATA lpVoxwareData, short newOffset); // Hidden API don't use.
/* These routines are used for low-level decompression. */
VOXWARE_RETCODE VOXAPI dcmpVoxInit(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpVoxConvert(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpVoxFree(LPVOXWARE_DATA lpVoxwareData);
/* Older functions that are only here for backwards compatibility. */
VOXWARE_RETCODE VOXAPI dcmpVoxFileToFile(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpVoxFileToBuffer(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpVoxBufferToFile(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpPlayVoxFile(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpPlayVoxBuffer(LPVOXWARE_DATA lpVoxwareData);
/*****************************************************************************
**
** These utility routines can be used to get information about the speed of
** the ToolVox compression or to get file information about an AIFF or VOX
** file. There are also routines to get and set different attributes of the
** ToolVox API.
**
*****************************************************************************/
VOXWARE_RETCODE VOXAPI utilGetFileInfo(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI utilGetVersionInfo(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI utilToolVoxGetAttribute(
LPVOXWARE_DATA lpVoxwareData,
LPVOX_COMMAND lpCommand);
VOXWARE_RETCODE VOXAPI utilToolVoxSetAttribute(
LPVOXWARE_DATA lpVoxwareData,
LPVOX_COMMAND lpCommand);
/*****************************************************************************
**
** This prototype is for the callback function that can be passed to ToolVox
** in the VOXWARE_DATA structure. If you create this function, it must be
** in a FIXED/Locked segment!
**
*****************************************************************************/
VOXAPI_CALLBACK VoxFunc(
unsigned short wVox,
unsigned short wMessage,
LPVOXWARE_DATA lpVoxwareData);
#ifndef VOXWARE_SUN
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=reset
#elif VOXWARE_HP
#pragma HP_ALIGN HPUX_NATURAL
#else
#pragma pack()
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif /*__TOOLVOX_H_*/
|