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
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
|
/****************************************************************************
*
* mmreg.h - Registered Multimedia Information Public Header File
*
* Copyright (c) 1991-1995 Microsoft Corporation. All Rights Reserved.
*
* Multimedia Registration
*
* Place this system include file in your INCLUDE path with the Windows SDK
* include files.
*
* Obtain the Multimedia Developer Registration Kit from Compuserve in WINMM mrdk.zip.
* Please send applications and corrections to
*
* Heidi Breslauer
* Microsoft Corporation
* Multimedia Technology Group
* One Microsoft Way
* Redmond, WA 98052-6399
*
* Developer Services:
* 800-227-4679 x11771
*
* Last Update: 04/05/94 *
***************************************************************************/
// Define the following to skip definitions
//
// NOMMIDS Multimedia IDs are not defined
// NONEWWAVE No new waveform types are defined except WAVEFORMATEX
// NONEWRIFF No new RIFF forms are defined
// NOJPEGDIB No JPEG DIB definitions
// NONEWIC No new Image Compressor types are defined
// NOBITMAP No extended bitmap info header definition
#ifndef _INC_MMREG
/* use version number to verify compatibility */
#define _INC_MMREG 144 // version * 100 + revision
#ifndef RC_INVOKED
//current chicago line#pragma pack(1) /* Assume byte packing throughout */
#include "pshpack1.h" /* Assume byte packing throughout */
#endif /* RC_INVOKED */
#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus */
#ifndef NOMMIDS
/* manufacturer IDs */
#ifndef MM_MICROSOFT
#define MM_MICROSOFT 1 /* Microsoft Corporation */
#endif
#define MM_CREATIVE 2 /* Creative Labs, Inc */
#define MM_MEDIAVISION 3 /* Media Vision, Inc. */
#define MM_FUJITSU 4 /* Fujitsu Corp. */
#define MM_ARTISOFT 20 /* Artisoft, Inc. */
#define MM_TURTLE_BEACH 21 /* Turtle Beach, Inc. */
#define MM_IBM 22 /* IBM Corporation */
#define MM_VOCALTEC 23 /* Vocaltec LTD. */
#define MM_ROLAND 24 /* Roland */
#define MM_DSP_SOLUTIONS 25 /* DSP Solutions, Inc. */
#define MM_NEC 26 /* NEC */
#define MM_ATI 27 /* ATI */
#define MM_WANGLABS 28 /* Wang Laboratories, Inc */
#define MM_TANDY 29 /* Tandy Corporation */
#define MM_VOYETRA 30 /* Voyetra */
#define MM_ANTEX 31 /* Antex Electronics Corporation */
#define MM_ICL_PS 32 /* ICL Personal Systems */
#define MM_INTEL 33 /* Intel Corporation */
#define MM_GRAVIS 34 /* Advanced Gravis */
#define MM_VAL 35 /* Video Associates Labs, Inc. */
#define MM_INTERACTIVE 36 /* InterActive Inc */
#define MM_YAMAHA 37 /* Yamaha Corporation of America */
#define MM_EVEREX 38 /* Everex Systems, Inc */
#define MM_ECHO 39 /* Echo Speech Corporation */
#define MM_SIERRA 40 /* Sierra Semiconductor Corp */
#define MM_CAT 41 /* Computer Aided Technologies */
#define MM_APPS 42 /* APPS Software International */
#define MM_DSP_GROUP 43 /* DSP Group, Inc */
#define MM_MELABS 44 /* microEngineering Labs */
#define MM_COMPUTER_FRIENDS 45 /* Computer Friends, Inc. */
#define MM_ESS 46 /* ESS Technology */
#define MM_AUDIOFILE 47 /* Audio, Inc. */
#define MM_MOTOROLA 48 /* Motorola, Inc. */
#define MM_CANOPUS 49 /* Canopus, co., Ltd. */
#define MM_EPSON 50 /* Seiko Epson Corporation */
#define MM_TRUEVISION 51 /* Truevision */
#define MM_AZTECH 52 /* Aztech Labs, Inc. */
#define MM_VIDEOLOGIC 53 /* Videologic */
#define MM_SCALACS 54 /* SCALACS */
#define MM_KORG 55 /* Toshihiko Okuhura, Korg Inc. */
#define MM_APT 56 /* Audio Processing Technology */
#define MM_ICS 57 /* Integrated Circuit Systems, Inc. */
#define MM_ITERATEDSYS 58 /* Iterated Systems, Inc. */
#define MM_METHEUS 59 /* Metheus */
#define MM_LOGITECH 60 /* Logitech, Inc. */
#define MM_WINNOV 61 /* Winnov, Inc. */
#define MM_NCR 62 /* NCR Corporation */
#define MM_EXAN 63 /* EXAN */
#define MM_AST 64 /* AST Research Inc. */
#define MM_WILLOWPOND 65 /* Willow Pond Corporation */
#define MM_SONICFOUNDRY 66 /* Sonic Foundry */
#define MM_VITEC 67 /* Vitec Multimedia */
#define MM_MOSCOM 68 /* MOSCOM Corporation */
#define MM_SILICONSOFT 69 /* Silicon Soft, Inc. */
#define MM_SUPERMAC 73 /* Supermac */
#define MM_AUDIOPT 74 /* Audio Processing Technology */
#define MM_SPEECHCOMP 76 /* Speech Compression */
#define MM_DOLBY 78 /* Dolby Laboratories */
#define MM_OKI 79 /* OKI */
#define MM_AURAVISION 80 /* AuraVision Corporation */
#define MM_OLIVETTI 81 /* Olivetti */
#define MM_IOMAGIC 82 /* I/O Magic Corporation */
#define MM_MATSUSHITA 83 /* Matsushita Electric Industrial Co., LTD. */
#define MM_CONTROLRES 84 /* Control Resources Limited */
#define MM_XEBEC 85 /* Xebec Multimedia Solutions Limited */
#define MM_NEWMEDIA 86 /* New Media Corporation */
#define MM_NMS 87 /* Natural MicroSystems */
#define MM_LYRRUS 88 /* Lyrrus Inc. */
#define MM_COMPUSIC 89 /* Compusic */
#define MM_OPTI 90 /* OPTi Computers Inc. */
#define MM_DIALOGIC 93 /* Dialogic Corporation */
/* MM_MICROSOFT product IDs */
#ifndef MM_MIDI_MAPPER
#define MM_MIDI_MAPPER 1 /* Midi Mapper */
#define MM_WAVE_MAPPER 2 /* Wave Mapper */
#define MM_SNDBLST_MIDIOUT 3 /* Sound Blaster MIDI output port */
#define MM_SNDBLST_MIDIIN 4 /* Sound Blaster MIDI input port */
#define MM_SNDBLST_SYNTH 5 /* Sound Blaster internal synth */
#define MM_SNDBLST_WAVEOUT 6 /* Sound Blaster waveform output */
#define MM_SNDBLST_WAVEIN 7 /* Sound Blaster waveform input */
#define MM_ADLIB 9 /* Ad Lib Compatible synth */
#define MM_MPU401_MIDIOUT 10 /* MPU 401 compatible MIDI output port */
#define MM_MPU401_MIDIIN 11 /* MPU 401 compatible MIDI input port */
#define MM_PC_JOYSTICK 12 /* Joystick adapter */
#endif
#define MM_PCSPEAKER_WAVEOUT 13 /* PC speaker waveform output */
#define MM_MSFT_WSS_WAVEIN 14 /* MS Audio Board waveform input */
#define MM_MSFT_WSS_WAVEOUT 15 /* MS Audio Board waveform output */
#define MM_MSFT_WSS_FMSYNTH_STEREO 16 /* MS Audio Board Stereo FM synth */
#define MM_MSFT_WSS_MIXER 17 /* MS Audio Board Mixer Driver */
#define MM_MSFT_WSS_OEM_WAVEIN 18 /* MS OEM Audio Board waveform input */
#define MM_MSFT_WSS_OEM_WAVEOUT 19 /* MS OEM Audio Board waveform output */
#define MM_MSFT_WSS_OEM_FMSYNTH_STEREO 20 /* MS OEM Audio Board Stereo FM Synth */
#define MM_MSFT_WSS_AUX 21 /* MS Audio Board Aux. Port */
#define MM_MSFT_WSS_OEM_AUX 22 /* MS OEM Audio Aux Port */
#define MM_MSFT_GENERIC_WAVEIN 23 /* MS Vanilla driver waveform input */
#define MM_MSFT_GENERIC_WAVEOUT 24 /* MS Vanilla driver wavefrom output */
#define MM_MSFT_GENERIC_MIDIIN 25 /* MS Vanilla driver MIDI in */
#define MM_MSFT_GENERIC_MIDIOUT 26 /* MS Vanilla driver MIDI external out */
#define MM_MSFT_GENERIC_MIDISYNTH 27 /* MS Vanilla driver MIDI synthesizer */
#define MM_MSFT_GENERIC_AUX_LINE 28 /* MS Vanilla driver aux (line in) */
#define MM_MSFT_GENERIC_AUX_MIC 29 /* MS Vanilla driver aux (mic) */
#define MM_MSFT_GENERIC_AUX_CD 30 /* MS Vanilla driver aux (CD) */
#define MM_MSFT_WSS_OEM_MIXER 31 /* MS OEM Audio Board Mixer Driver */
#define MM_MSFT_MSACM 32 /* MS Audio Compression Manager */
#define MM_MSFT_ACM_MSADPCM 33 /* MS ADPCM Codec */
#define MM_MSFT_ACM_IMAADPCM 34 /* IMA ADPCM Codec */
#define MM_MSFT_ACM_MSFILTER 35 /* MS Filter */
#define MM_MSFT_ACM_GSM610 36 /* GSM 610 codec */
#define MM_MSFT_ACM_G711 37 /* G.711 codec */
#define MM_MSFT_ACM_PCM 38 /* PCM converter */
// Microsoft Windows Sound System drivers
#define MM_WSS_SB16_WAVEIN 39 /* Sound Blaster 16 waveform input */
#define MM_WSS_SB16_WAVEOUT 40 /* Sound Blaster 16 waveform output */
#define MM_WSS_SB16_MIDIIN 41 /* Sound Blaster 16 midi-in */
#define MM_WSS_SB16_MIDIOUT 42 /* Sound Blaster 16 midi out */
#define MM_WSS_SB16_SYNTH 43 /* Sound Blaster 16 FM Synthesis */
#define MM_WSS_SB16_AUX_LINE 44 /* Sound Blaster 16 aux (line in) */
#define MM_WSS_SB16_AUX_CD 45 /* Sound Blaster 16 aux (CD) */
#define MM_WSS_SB16_MIXER 46 /* Sound Blaster 16 mixer device */
#define MM_WSS_SBPRO_WAVEIN 47 /* Sound Blaster Pro waveform input */
#define MM_WSS_SBPRO_WAVEOUT 48 /* Sound Blaster Pro waveform output */
#define MM_WSS_SBPRO_MIDIIN 49 /* Sound Blaster Pro midi in */
#define MM_WSS_SBPRO_MIDIOUT 50 /* Sound Blaster Pro midi out */
#define MM_WSS_SBPRO_SYNTH 51 /* Sound Blaster Pro FM synthesis */
#define MM_WSS_SBPRO_AUX_LINE 52 /* Sound Blaster Pro aux (line in ) */
#define MM_WSS_SBPRO_AUX_CD 53 /* Sound Blaster Pro aux (CD) */
#define MM_WSS_SBPRO_MIXER 54 /* Sound Blaster Pro mixer */
#define MM_MSFT_WSS_NT_WAVEIN 55 /* WSS NT wave in */
#define MM_MSFT_WSS_NT_WAVEOUT 56 /* WSS NT wave out */
#define MM_MSFT_WSS_NT_FMSYNTH_STEREO 57 /* WSS NT FM synth */
#define MM_MSFT_WSS_NT_MIXER 58 /* WSS NT mixer */
#define MM_MSFT_WSS_NT_AUX 59 /* WSS NT aux */
#define MM_MSFT_SB16_WAVEIN 60 /* Sound Blaster 16 waveform input */
#define MM_MSFT_SB16_WAVEOUT 61 /* Sound Blaster 16 waveform output */
#define MM_MSFT_SB16_MIDIIN 62 /* Sound Blaster 16 midi-in */
#define MM_MSFT_SB16_MIDIOUT 63 /* Sound Blaster 16 midi out */
#define MM_MSFT_SB16_SYNTH 64 /* Sound Blaster 16 FM Synthesis */
#define MM_MSFT_SB16_AUX_LINE 65 /* Sound Blaster 16 aux (line in) */
#define MM_MSFT_SB16_AUX_CD 66 /* Sound Blaster 16 aux (CD) */
#define MM_MSFT_SB16_MIXER 67 /* Sound Blaster 16 mixer device */
#define MM_MSFT_SBPRO_WAVEIN 68 /* Sound Blaster Pro waveform input */
#define MM_MSFT_SBPRO_WAVEOUT 69 /* Sound Blaster Pro waveform output */
#define MM_MSFT_SBPRO_MIDIIN 70 /* Sound Blaster Pro midi in */
#define MM_MSFT_SBPRO_MIDIOUT 71 /* Sound Blaster Pro midi out */
#define MM_MSFT_SBPRO_SYNTH 72 /* Sound Blaster Pro FM synthesis */
#define MM_MSFT_SBPRO_AUX_LINE 73 /* Sound Blaster Pro aux (line in ) */
#define MM_MSFT_SBPRO_AUX_CD 74 /* Sound Blaster Pro aux (CD) */
#define MM_MSFT_SBPRO_MIXER 75 /* Sound Blaster Pro mixer */
#define MM_MSFT_MSOPL_SYNTH 76 /* Yamaha OPL2/OPL3 compatible FM synthesis */
/* MM_CREATIVE product IDs */
#define MM_CREATIVE_SB15_WAVEIN 1 /* SB (r) 1.5 waveform input */
#define MM_CREATIVE_SB20_WAVEIN 2
#define MM_CREATIVE_SBPRO_WAVEIN 3
#define MM_CREATIVE_SBP16_WAVEIN 4
#define MM_CREATIVE_SB15_WAVEOUT 101
#define MM_CREATIVE_SB20_WAVEOUT 102
#define MM_CREATIVE_SBPRO_WAVEOUT 103
#define MM_CREATIVE_SBP16_WAVEOUT 104
#define MM_CREATIVE_MIDIOUT 201 /* SB (r) */
#define MM_CREATIVE_MIDIIN 202 /* SB (r) */
#define MM_CREATIVE_FMSYNTH_MONO 301 /* SB (r) */
#define MM_CREATIVE_FMSYNTH_STEREO 302 /* SB Pro (r) stereo synthesizer */
#define MM_CREATIVE_AUX_CD 401 /* SB Pro (r) aux (CD) */
#define MM_CREATIVE_AUX_LINE 402 /* SB Pro (r) aux (Line in ) */
#define MM_CREATIVE_AUX_MIC 403 /* SB Pro (r) aux (mic) */
#define MM_CREATIVE_AUX_MASTER 404
#define MM_CREATIVE_AUX_PCSPK 405
#define MM_CREATIVE_AUX_WAVE 406
#define MM_CREATIVE_AUX_MIDI 407
#define MM_CREATIVE_SBPRO_MIXER 408
#define MM_CREATIVE_SB16_MIXER 409
/* MM_MEDIAVISION product IDs */
// Pro Audio Spectrum
#define MM_MEDIAVISION_PROAUDIO 0x10
#define MM_PROAUD_MIDIOUT (MM_MEDIAVISION_PROAUDIO+1)
#define MM_PROAUD_MIDIIN (MM_MEDIAVISION_PROAUDIO+2)
#define MM_PROAUD_SYNTH (MM_MEDIAVISION_PROAUDIO+3)
#define MM_PROAUD_WAVEOUT (MM_MEDIAVISION_PROAUDIO+4)
#define MM_PROAUD_WAVEIN (MM_MEDIAVISION_PROAUDIO+5)
#define MM_PROAUD_MIXER (MM_MEDIAVISION_PROAUDIO+6)
#define MM_PROAUD_AUX (MM_MEDIAVISION_PROAUDIO+7)
// Thunder Board
#define MM_MEDIAVISION_THUNDER 0x20
#define MM_THUNDER_SYNTH (MM_MEDIAVISION_THUNDER+3)
#define MM_THUNDER_WAVEOUT (MM_MEDIAVISION_THUNDER+4)
#define MM_THUNDER_WAVEIN (MM_MEDIAVISION_THUNDER+5)
#define MM_THUNDER_AUX (MM_MEDIAVISION_THUNDER+7)
// Audio Port
#define MM_MEDIAVISION_TPORT 0x40
#define MM_TPORT_WAVEOUT (MM_MEDIAVISION_TPORT+1)
#define MM_TPORT_WAVEIN (MM_MEDIAVISION_TPORT+2)
#define MM_TPORT_SYNTH (MM_MEDIAVISION_TPORT+3)
// Pro Audio Spectrum Plus
#define MM_MEDIAVISION_PROAUDIO_PLUS 0x50
#define MM_PROAUD_PLUS_MIDIOUT (MM_MEDIAVISION_PROAUDIO_PLUS+1)
#define MM_PROAUD_PLUS_MIDIIN (MM_MEDIAVISION_PROAUDIO_PLUS+2)
#define MM_PROAUD_PLUS_SYNTH (MM_MEDIAVISION_PROAUDIO_PLUS+3)
#define MM_PROAUD_PLUS_WAVEOUT (MM_MEDIAVISION_PROAUDIO_PLUS+4)
#define MM_PROAUD_PLUS_WAVEIN (MM_MEDIAVISION_PROAUDIO_PLUS+5)
#define MM_PROAUD_PLUS_MIXER (MM_MEDIAVISION_PROAUDIO_PLUS+6)
#define MM_PROAUD_PLUS_AUX (MM_MEDIAVISION_PROAUDIO_PLUS+7)
// Pro Audio Spectrum 16
#define MM_MEDIAVISION_PROAUDIO_16 0x60
#define MM_PROAUD_16_MIDIOUT (MM_MEDIAVISION_PROAUDIO_16+1)
#define MM_PROAUD_16_MIDIIN (MM_MEDIAVISION_PROAUDIO_16+2)
#define MM_PROAUD_16_SYNTH (MM_MEDIAVISION_PROAUDIO_16+3)
#define MM_PROAUD_16_WAVEOUT (MM_MEDIAVISION_PROAUDIO_16+4)
#define MM_PROAUD_16_WAVEIN (MM_MEDIAVISION_PROAUDIO_16+5)
#define MM_PROAUD_16_MIXER (MM_MEDIAVISION_PROAUDIO_16+6)
#define MM_PROAUD_16_AUX (MM_MEDIAVISION_PROAUDIO_16+7)
// Pro Audio Studio 16
#define MM_MEDIAVISION_PROSTUDIO_16 0x60
#define MM_STUDIO_16_MIDIOUT (MM_MEDIAVISION_PROSTUDIO_16+1)
#define MM_STUDIO_16_MIDIIN (MM_MEDIAVISION_PROSTUDIO_16+2)
#define MM_STUDIO_16_SYNTH (MM_MEDIAVISION_PROSTUDIO_16+3)
#define MM_STUDIO_16_WAVEOUT (MM_MEDIAVISION_PROSTUDIO_16+4)
#define MM_STUDIO_16_WAVEIN (MM_MEDIAVISION_PROSTUDIO_16+5)
#define MM_STUDIO_16_MIXER (MM_MEDIAVISION_PROSTUDIO_16+6)
#define MM_STUDIO_16_AUX (MM_MEDIAVISION_PROSTUDIO_16+7)
// CDPC
#define MM_MEDIAVISION_CDPC 0x70
#define MM_CDPC_MIDIOUT (MM_MEDIAVISION_CDPC+1)
#define MM_CDPC_MIDIIN (MM_MEDIAVISION_CDPC+2)
#define MM_CDPC_SYNTH (MM_MEDIAVISION_CDPC+3)
#define MM_CDPC_WAVEOUT (MM_MEDIAVISION_CDPC+4)
#define MM_CDPC_WAVEIN (MM_MEDIAVISION_CDPC+5)
#define MM_CDPC_MIXER (MM_MEDIAVISION_CDPC+6)
#define MM_CDPC_AUX (MM_MEDIAVISION_CDPC+7)
// Opus MV 1208 Chipsent
#define MM_MEDIAVISION_OPUS1208 0x80
#define MM_OPUS401_MIDIOUT (MM_MEDIAVISION_OPUS1208+1)
#define MM_OPUS401_MIDIIN (MM_MEDIAVISION_OPUS1208+2)
#define MM_OPUS1208_SYNTH (MM_MEDIAVISION_OPUS1208+3)
#define MM_OPUS1208_WAVEOUT (MM_MEDIAVISION_OPUS1208+4)
#define MM_OPUS1208_WAVEIN (MM_MEDIAVISION_OPUS1208+5)
#define MM_OPUS1208_MIXER (MM_MEDIAVISION_OPUS1208+6)
#define MM_OPUS1208_AUX (MM_MEDIAVISION_OPUS1208+7)
// Opus MV 1216 chipset
#define MM_MEDIAVISION_OPUS1216 0x90
#define MM_OPUS1216_MIDIOUT (MM_MEDIAVISION_OPUS1216+1)
#define MM_OPUS1216_MIDIIN (MM_MEDIAVISION_OPUS1216+2)
#define MM_OPUS1216_SYNTH (MM_MEDIAVISION_OPUS1216+3)
#define MM_OPUS1216_WAVEOUT (MM_MEDIAVISION_OPUS1216+4)
#define MM_OPUS1216_WAVEIN (MM_MEDIAVISION_OPUS1216+5)
#define MM_OPUS1216_MIXER (MM_MEDIAVISION_OPUS1216+6)
#define MM_OPUS1216_AUX (MM_MEDIAVISION_OPUS1216+7)
/* MM_ARTISOFT product IDs */
#define MM_ARTISOFT_SBWAVEIN 1 /* Artisoft sounding Board waveform input */
#define MM_ARTISOFT_SBWAVEOUT 2 /* Artisoft sounding Board waveform output */
/* MM_IBM product IDs */
#define MM_MMOTION_WAVEAUX 1 /* IBM M-Motion Auxiliary Device */
#define MM_MMOTION_WAVEOUT 2 /* IBM M-Motion Waveform output */
#define MM_MMOTION_WAVEIN 3 /* IBM M-Motion Waveform Input */
#define MM_IBM_PCMCIA_WAVEIN 11 /* IBM waveform input */
#define MM_IBM_PCMCIA_WAVEOUT 12 /* IBM Waveform output */
#define MM_IBM_PCMCIA_SYNTH 13 /* IBM Midi Synthesis */
#define MM_IBM_PCMCIA_MIDIIN 14 /* IBM external MIDI in */
#define MM_IBM_PCMCIA_MIDIOUT 15 /* IBM external MIDI out */
#define MM_IBM_PCMCIA_AUX 16 /* IBM auxiliary control */
/* MM_VOCALTEC product IDs */
#define MM_VOCALTEC_WAVEOUT 1
#define MM_VOCALTEC_WAVEIN 2
/* MM_ROLAND product IDs */
#define MM_ROLAND_MPU401_MIDIOUT 15
#define MM_ROLAND_MPU401_MIDIIN 16
#define MM_ROLAND_SMPU_MIDIOUTA 17
#define MM_ROLAND_SMPU_MIDIOUTB 18
#define MM_ROLAND_SMPU_MIDIINA 19
#define MM_ROLAND_SMPU_MIDIINB 20
#define MM_ROLAND_SC7_MIDIOUT 21
#define MM_ROLAND_SC7_MIDIIN 22
#define MM_ROLAND_SERIAL_MIDIOUT 23
#define MM_ROLAND_SERIAL_MIDIIN 24
/* MM_DSP_SOLUTIONS product IDs */
#define MM_DSP_SOLUTIONS_WAVEOUT 1
#define MM_DSP_SOLUTIONS_WAVEIN 2
#define MM_DSP_SOLUTIONS_SYNTH 3
#define MM_DSP_SOLUTIONS_AUX 4
/* MM_WANGLABS product IDs */
#define MM_WANGLABS_WAVEIN1 1 /* Input audio wave on CPU board models: Exec 4010, 4030, 3450; PC 251/25c, pc 461/25s , pc 461/33c */
#define MM_WANGLABS_WAVEOUT1 2
/* MM_TANDY product IDs */
#define MM_TANDY_VISWAVEIN 1
#define MM_TANDY_VISWAVEOUT 2
#define MM_TANDY_VISBIOSSYNTH 3
#define MM_TANDY_SENS_MMAWAVEIN 4
#define MM_TANDY_SENS_MMAWAVEOUT 5
#define MM_TANDY_SENS_MMAMIDIIN 6
#define MM_TANDY_SENS_MMAMIDIOUT 7
#define MM_TANDY_SENS_VISWAVEOUT 8
#define MM_TANDY_PSSJWAVEIN 9
#define MM_TANDY_PSSJWAVEOUT 10
/* product IDs */
#define MM_INTELOPD_WAVEIN 1 /* HID2 WaveAudio Driver */
#define MM_INTELOPD_WAVEOUT 101 /* HID2 */
#define MM_INTELOPD_AUX 401 /* HID2 for mixing */
/* MM_INTERACTIVE product IDs */
#define MM_INTERACTIVE_WAVEIN 0x45
#define MM_INTERACTIVE_WAVEOUT 0x45
/* MM_YAMAHA product IDs */
#define MM_YAMAHA_GSS_SYNTH 0x01
#define MM_YAMAHA_GSS_WAVEOUT 0x02
#define MM_YAMAHA_GSS_WAVEIN 0x03
#define MM_YAMAHA_GSS_MIDIOUT 0x04
#define MM_YAMAHA_GSS_MIDIIN 0x05
#define MM_YAMAHA_GSS_AUX 0x06
/* MM_EVEREX product IDs */
#define MM_EVEREX_CARRIER 0x01
/* MM_ECHO product IDs */
#define MM_ECHO_SYNTH 0x01
#define MM_ECHO_WAVEOUT 0x02
#define MM_ECHO_WAVEIN 0x03
#define MM_ECHO_MIDIOUT 0x04
#define MM_ECHO_MIDIIN 0x05
#define MM_ECHO_AUX 0x06
/* MM_SIERRA product IDs */
#define MM_SIERRA_ARIA_MIDIOUT 0x14
#define MM_SIERRA_ARIA_MIDIIN 0x15
#define MM_SIERRA_ARIA_SYNTH 0x16
#define MM_SIERRA_ARIA_WAVEOUT 0x17
#define MM_SIERRA_ARIA_WAVEIN 0x18
#define MM_SIERRA_ARIA_AUX 0x19
#define MM_SIERRA_ARIA_AUX2 0x20
/* MM_CAT product IDs */
#define MM_CAT_WAVEOUT 1
/* MM_DSP_GROUP product IDs */
#define MM_DSP_GROUP_TRUESPEECH 0x01
/* MM_MELABS product IDs */
#define MM_MELABS_MIDI2GO 0x01
/* MM_ESS product IDs */
#define MM_ESS_AMWAVEOUT 0x01
#define MM_ESS_AMWAVEIN 0x02
#define MM_ESS_AMAUX 0x03
#define MM_ESS_AMSYNTH 0x04
#define MM_ESS_AMMIDIOUT 0x05
#define MM_ESS_AMMIDIIN 0x06
/* product IDs */
#define MM_EPS_FMSND 1
/* MM_TRUEVISION product IDs */
#define MM_TRUEVISION_WAVEIN1 1
#define MM_TRUEVISION_WAVEOUT1 2
/* MM_AZTECH product IDs */
#define MM_AZTECH_MIDIOUT 3
#define MM_AZTECH_MIDIIN 4
#define MM_AZTECH_WAVEIN 17
#define MM_AZTECH_WAVEOUT 18
#define MM_AZTECH_FMSYNTH 20
#define MM_AZTECH_PRO16_WAVEIN 33
#define MM_AZTECH_PRO16_WAVEOUT 34
#define MM_AZTECH_PRO16_FMSYNTH 38
#define MM_AZTECH_DSP16_WAVEIN 65
#define MM_AZTECH_DSP16_WAVEOUT 66
#define MM_AZTECH_DSP16_FMSYNTH 68
#define MM_AZTECH_DSP16_WAVESYNTH 70
#define MM_AZTECH_AUX_CD 401
#define MM_AZTECH_AUX_LINE 402
#define MM_AZTECH_AUX_MIC 403
/* MM_VIDEOLOGIC product IDs */
#define MM_VIDEOLOGIC_MSWAVEIN 1
#define MM_VIDEOLOGIC_MSWAVEOUT 2
/* MM_KORG product IDs */
#define MM_KORG_PCIF_MIDIOUT 1
#define MM_KORG_PCIF_MIDIIN 2
/* MM_APT product IDs */
#define MM_APT_ACE100CD 1
/* MM_ICS product IDs */
#define MM_ICS_WAVEDECK_WAVEOUT 1 /* MS WSS compatible card and driver */
#define MM_ICS_WAVEDECK_WAVEIN 2
#define MM_ICS_WAVEDECK_MIXER 3
#define MM_ICS_WAVEDECK_AUX 4
#define MM_ICS_WAVEDECK_SYNTH 5
/* MM_ITERATEDSYS product IDs */
#define MM_ITERATEDSYS_FUFCODEC 1
/* MM_METHEUS product IDs */
#define MM_METHEUS_ZIPPER 1
/* MM_WINNOV product IDs */
#define MM_WINNOV_CAVIAR_WAVEIN 1
#define MM_WINNOV_CAVIAR_WAVEOUT 2
#define MM_WINNOV_CAVIAR_VIDC 3
#define MM_WINNOV_CAVIAR_CHAMPAGNE 4 /* Fourcc is CHAM */
#define MM_WINNOV_CAVIAR_YUV8 5 /* Fourcc is YUV8 */
/* MM_NCR product IDs */
#define MM_NCR_BA_WAVEIN 1
#define MM_NCR_BA_WAVEOUT 2
#define MM_NCR_BA_SYNTH 3
#define MM_NCR_BA_AUX 4
#define MM_NCR_BA_MIXER 5
/* MM_VITEC product IDs */
#define MM_VITEC_VMAKER 1
#define MM_VITEC_VMPRO 2
/* MM_MOSCOM product IDs */
#define MM_MOSCOM_VPC2400 1 /* Four Port Voice Processing / Voice Recognition Board */
/* MM_SILICONSOFT product IDs */
#define MM_SILICONSOFT_SC1_WAVEIN 1 /* Waveform in , high sample rate */
#define MM_SILICONSOFT_SC1_WAVEOUT 2 /* Waveform out , high sample rate */
#define MM_SILICONSOFT_SC2_WAVEIN 3 /* Waveform in 2 channels, high sample rate */
#define MM_SILICONSOFT_SC2_WAVEOUT 4 /* Waveform out 2 channels, high sample rate */
#define MM_SILICONSOFT_SOUNDJR2_WAVEOUT 5 /* Waveform out, self powered, efficient */
#define MM_SILICONSOFT_SOUNDJR2PR_WAVEIN 6 /* Waveform in, self powered, efficient */
#define MM_SILICONSOFT_SOUNDJR2PR_WAVEOUT 7 /* Waveform out 2 channels, self powered, efficient */
#define MM_SILICONSOFT_SOUNDJR3_WAVEOUT 8 /* Waveform in 2 channels, self powered, efficient */
/* MM_OLIVETTI product IDs */
#define MM_OLIVETTI_WAVEIN 1
#define MM_OLIVETTI_WAVEOUT 2
#define MM_OLIVETTI_MIXER 3
#define MM_OLIVETTI_AUX 4
#define MM_OLIVETTI_MIDIIN 5
#define MM_OLIVETTI_MIDIOUT 6
#define MM_OLIVETTI_SYNTH 7
#define MM_OLIVETTI_JOYSTICK 8
#define MM_OLIVETTI_ACM_GSM 9
#define MM_OLIVETTI_ACM_ADPCM 10
#define MM_OLIVETTI_ACM_CELP 11
#define MM_OLIVETTI_ACM_SBC 12
#define MM_OLIVETTI_ACM_OPR 13
/* MM_IOMAGIC product IDs */
/* The I/O Magic Tempo is a PCMCIA Type 2 audio card featuring wave audio
record and playback, FM synthesizer, and MIDI output. The I/O Magic
Tempo WaveOut device supports mono and stereo PCM playback at rates
of 7350, 11025, 22050, and 44100 samples */
#define MM_IOMAGIC_TEMPO_WAVEOUT 1
#define MM_IOMAGIC_TEMPO_WAVEIN 2
#define MM_IOMAGIC_TEMPO_SYNTH 3
#define MM_IOMAGIC_TEMPO_MIDIOUT 4
#define MM_IOMAGIC_TEMPO_MXDOUT 5
#define MM_IOMAGIC_TEMPO_AUXOUT 6
/* MM_MATSUSHITA product IDs */
#define MM_MATSUSHITA_WAVEIN 1
#define MM_MATSUSHITA_WAVEOUT 2
#define MM_MATSUSHITA_FMSYNTH_STEREO 3
#define MM_MATSUSHITA_MIXER 4
#define MM_MATSUSHITA_AUX 5
/* MM_NEWMEDIA product IDs */
#define MM_NEWMEDIA_WAVJAMMER 1 /* WSS Compatible sound card. */
/* MM_LYRRUS product IDs */
/* Bridge is a MIDI driver that allows the the Lyrrus G-VOX hardware to
communicate with Windows base transcription and sequencer applications.
The driver also provides a mechanism for the user to configure the system
to their personal playing style. */
#define MM_LYRRUS_BRIDGE_GUITAR 1
/* MM_OPTI product IDs */
#define MM_OPTI_M16_FMSYNTH_STEREO 0x0001
#define MM_OPTI_M16_MIDIIN 0x0002
#define MM_OPTI_M16_MIDIOUT 0x0003
#define MM_OPTI_M16_WAVEIN 0x0004
#define MM_OPTI_M16_WAVEOUT 0x0005
#define MM_OPTI_M16_MIXER 0x0006
#define MM_OPTI_M16_AUX 0x0007
#define MM_OPTI_P16_FMSYNTH_STEREO 0x0010
#define MM_OPTI_P16_MIDIIN 0x0011
#define MM_OPTI_P16_MIDIOUT 0x0012
#define MM_OPTI_P16_WAVEIN 0x0013
#define MM_OPTI_P16_WAVEOUT 0x0014
#define MM_OPTI_P16_MIXER 0x0015
#define MM_OPTI_P16_AUX 0x0016
#define MM_OPTI_M32_WAVEIN 0x0020
#define MM_OPTI_M32_WAVEOUT 0x0021
#define MM_OPTI_M32_MIDIIN 0x0022
#define MM_OPTI_M32_MIDIOUT 0x0023
#define MM_OPTI_M32_SYNTH_STEREO 0x0024
#define MM_OPTI_M32_MIXER 0x0025
#define MM_OPTI_M32_AUX 0x0026
#endif // !NOMMIDS
/*////////////////////////////////////////////////////////////////////////// */
/* INFO LIST CHUNKS (from the Multimedia Programmer's Reference
plus new ones)
*/
#define RIFFINFO_IARL mmioFOURCC ('I', 'A', 'R', 'L') /*Archival location */
#define RIFFINFO_IART mmioFOURCC ('I', 'A', 'R', 'T') /*Artist */
#define RIFFINFO_ICMS mmioFOURCC ('I', 'C', 'M', 'S') /*Commissioned */
#define RIFFINFO_ICMT mmioFOURCC ('I', 'C', 'M', 'T') /*Comments */
#define RIFFINFO_ICOP mmioFOURCC ('I', 'C', 'O', 'P') /*Copyright */
#define RIFFINFO_ICRD mmioFOURCC ('I', 'C', 'R', 'D') /*Creation date of subject */
#define RIFFINFO_ICRP mmioFOURCC ('I', 'C', 'R', 'P') /*Cropped */
#define RIFFINFO_IDIM mmioFOURCC ('I', 'D', 'I', 'M') /*Dimensions */
#define RIFFINFO_IDPI mmioFOURCC ('I', 'D', 'P', 'I') /*Dots per inch */
#define RIFFINFO_IENG mmioFOURCC ('I', 'E', 'N', 'G') /*Engineer */
#define RIFFINFO_IGNR mmioFOURCC ('I', 'G', 'N', 'R') /*Genre */
#define RIFFINFO_IKEY mmioFOURCC ('I', 'K', 'E', 'Y') /*Keywords */
#define RIFFINFO_ILGT mmioFOURCC ('I', 'L', 'G', 'T') /*Lightness settings */
#define RIFFINFO_IMED mmioFOURCC ('I', 'M', 'E', 'D') /*Medium */
#define RIFFINFO_INAM mmioFOURCC ('I', 'N', 'A', 'M') /*Name of subject */
#define RIFFINFO_IPLT mmioFOURCC ('I', 'P', 'L', 'T') /*Palette Settings. No. of colors requested. */
#define RIFFINFO_IPRD mmioFOURCC ('I', 'P', 'R', 'D') /*Product */
#define RIFFINFO_ISBJ mmioFOURCC ('I', 'S', 'B', 'J') /*Subject description */
#define RIFFINFO_ISFT mmioFOURCC ('I', 'S', 'F', 'T') /*Software. Name of package used to create file. */
#define RIFFINFO_ISHP mmioFOURCC ('I', 'S', 'H', 'P') /*Sharpness. */
#define RIFFINFO_ISRC mmioFOURCC ('I', 'S', 'R', 'C') /*Source. */
#define RIFFINFO_ISRF mmioFOURCC ('I', 'S', 'R', 'F') /*Source Form. ie slide, paper */
#define RIFFINFO_ITCH mmioFOURCC ('I', 'T', 'C', 'H') /*Technician who digitized the subject. */
/* New INFO Chunks as of August 30, 1993: */
#define RIFFINFO_ISMP mmioFOURCC ('I', 'S', 'M', 'P') /*SMPTE time code */
/* ISMP: SMPTE time code of digitization start point expressed as a NULL terminated
text string "HH:MM:SS:FF". If performing MCI capture in AVICAP, this
chunk will be automatically set based on the MCI start time.
*/
#define RIFFINFO_IDIT mmioFOURCC ('I', 'D', 'I', 'T') /*Digitization Time */
/* IDIT: "Digitization Time" Specifies the time and date that the digitization commenced.
The digitization time is contained in an ASCII string which
contains exactly 26 characters and is in the format
"Wed Jan 02 02:03:55 1990\n\0".
The ctime(), asctime(), functions can be used to create strings
in this format. This chunk is automatically added to the capture
file based on the current system time at the moment capture is initiated.
*/
/*Template line for new additions*/
/*#define RIFFINFO_I mmioFOURCC ('I', '', '', '') */
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
#ifndef NONEWWAVE
/* WAVE form wFormatTag IDs */
#define WAVE_FORMAT_UNKNOWN 0x0000 /* Microsoft Corporation */
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
#define WAVE_FORMAT_IBM_CVSD 0x0005 /* IBM Corporation */
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
#define WAVE_FORMAT_OKI_ADPCM 0x0010 /* OKI */
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
#define WAVE_FORMAT_IMA_ADPCM (WAVE_FORMAT_DVI_ADPCM) /* Intel Corporation */
#define WAVE_FORMAT_MEDIASPACE_ADPCM 0x0012 /* Videologic */
#define WAVE_FORMAT_SIERRA_ADPCM 0x0013 /* Sierra Semiconductor Corp */
#define WAVE_FORMAT_G723_ADPCM 0x0014 /* Antex Electronics Corporation */
#define WAVE_FORMAT_DIGISTD 0x0015 /* DSP Solutions, Inc. */
#define WAVE_FORMAT_DIGIFIX 0x0016 /* DSP Solutions, Inc. */
#define WAVE_FORMAT_DIALOGIC_OKI_ADPCM 0x0017 /* Dialogic Corporation */
#define WAVE_FORMAT_YAMAHA_ADPCM 0x0020 /* Yamaha Corporation of America */
#define WAVE_FORMAT_SONARC 0x0021 /* Speech Compression */
#define WAVE_FORMAT_DSPGROUP_TRUESPEECH 0x0022 /* DSP Group, Inc */
#define WAVE_FORMAT_ECHOSC1 0x0023 /* Echo Speech Corporation */
#define WAVE_FORMAT_AUDIOFILE_AF36 0x0024 /* */
#define WAVE_FORMAT_APTX 0x0025 /* Audio Processing Technology */
#define WAVE_FORMAT_AUDIOFILE_AF10 0x0026 /* */
#define WAVE_FORMAT_DOLBY_AC2 0x0030 /* Dolby Laboratories */
#define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */
#define WAVE_FORMAT_ANTEX_ADPCME 0x0033 /* Antex Electronics Corporation */
#define WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034 /* Control Resources Limited */
#define WAVE_FORMAT_DIGIREAL 0x0035 /* DSP Solutions, Inc. */
#define WAVE_FORMAT_DIGIADPCM 0x0036 /* DSP Solutions, Inc. */
#define WAVE_FORMAT_CONTROL_RES_CR10 0x0037 /* Control Resources Limited */
#define WAVE_FORMAT_NMS_VBXADPCM 0x0038 /* Natural MicroSystems */
#define WAVE_FORMAT_G721_ADPCM 0x0040 /* Antex Electronics Corporation */
#define WAVE_FORMAT_MPEG 0x0050 /* Microsoft Corporation */
#define WAVE_FORMAT_CREATIVE_ADPCM 0x0200 /* Creative Labs, Inc */
#define WAVE_FORMAT_CREATIVE_FASTSPEECH8 0x0202 /* Creative Labs, Inc */
#define WAVE_FORMAT_CREATIVE_FASTSPEECH10 0x0203 /* Creative Labs, Inc */
#define WAVE_FORMAT_FM_TOWNS_SND 0x0300 /* Fujitsu Corp. */
#define WAVE_FORMAT_OLIGSM 0x1000 /* Ing C. Olivetti & C., S.p.A. */
#define WAVE_FORMAT_OLIADPCM 0x1001 /* Ing C. Olivetti & C., S.p.A. */
#define WAVE_FORMAT_OLICELP 0x1002 /* Ing C. Olivetti & C., S.p.A. */
#define WAVE_FORMAT_OLISBC 0x1003 /* Ing C. Olivetti & C., S.p.A. */
#define WAVE_FORMAT_OLIOPR 0x1004 /* Ing C. Olivetti & C., S.p.A. */
//
// the WAVE_FORMAT_DEVELOPMENT format tag can be used during the
// development phase of a new wave format. Before shipping, you MUST
// acquire an official format tag from Microsoft.
//
#define WAVE_FORMAT_DEVELOPMENT (0xFFFF)
#endif /* NONEWWAVE */
#ifndef WAVE_FORMAT_PCM
/* general waveform format structure (information common to all formats) */
typedef struct waveformat_tag {
WORD wFormatTag; /* format type */
WORD nChannels; /* number of channels (i.e. mono, stereo...) */
DWORD nSamplesPerSec; /* sample rate */
DWORD nAvgBytesPerSec; /* for buffer estimation */
WORD nBlockAlign; /* block size of data */
} WAVEFORMAT;
typedef WAVEFORMAT *PWAVEFORMAT;
typedef WAVEFORMAT NEAR *NPWAVEFORMAT;
typedef WAVEFORMAT FAR *LPWAVEFORMAT;
/* flags for wFormatTag field of WAVEFORMAT */
#define WAVE_FORMAT_PCM 1
/* specific waveform format structure for PCM data */
typedef struct pcmwaveformat_tag {
WAVEFORMAT wf;
WORD wBitsPerSample;
} PCMWAVEFORMAT;
typedef PCMWAVEFORMAT *PPCMWAVEFORMAT;
typedef PCMWAVEFORMAT NEAR *NPPCMWAVEFORMAT;
typedef PCMWAVEFORMAT FAR *LPPCMWAVEFORMAT;
#endif /* WAVE_FORMAT_PCM */
/* general extended waveform format structure
Use this for all NON PCM formats
(information common to all formats)
*/
#ifndef _WAVEFORMATEX_
#define _WAVEFORMATEX_
typedef struct tWAVEFORMATEX
{
WORD wFormatTag; /* format type */
WORD nChannels; /* number of channels (i.e. mono, stereo...) */
DWORD nSamplesPerSec; /* sample rate */
DWORD nAvgBytesPerSec; /* for buffer estimation */
WORD nBlockAlign; /* block size of data */
WORD wBitsPerSample; /* Number of bits per sample of mono data */
WORD cbSize; /* The count in bytes of the size of
extra information (after cbSize) */
} WAVEFORMATEX;
typedef WAVEFORMATEX *PWAVEFORMATEX;
typedef WAVEFORMATEX NEAR *NPWAVEFORMATEX;
typedef WAVEFORMATEX FAR *LPWAVEFORMATEX;
#endif /* _WAVEFORMATEX_ */
#ifndef NONEWWAVE
/* Define data for MS ADPCM */
typedef struct adpcmcoef_tag {
short iCoef1;
short iCoef2;
} ADPCMCOEFSET;
typedef ADPCMCOEFSET *PADPCMCOEFSET;
typedef ADPCMCOEFSET NEAR *NPADPCMCOEFSET;
typedef ADPCMCOEFSET FAR *LPADPCMCOEFSET;
/*
* this pragma disables the warning issued by the Microsoft C compiler
* when using a zero size array as place holder when compiling for
* C++ or with -W4.
*
*/
#ifdef _MSC_VER
#pragma warning(disable:4200)
#endif
typedef struct adpcmwaveformat_tag {
WAVEFORMATEX wfx;
WORD wSamplesPerBlock;
WORD wNumCoef;
ADPCMCOEFSET aCoef[];
} ADPCMWAVEFORMAT;
typedef ADPCMWAVEFORMAT *PADPCMWAVEFORMAT;
typedef ADPCMWAVEFORMAT NEAR *NPADPCMWAVEFORMAT;
typedef ADPCMWAVEFORMAT FAR *LPADPCMWAVEFORMAT;
#ifdef _MSC_VER
#pragma warning(default:4200)
#endif
//
// Intel's DVI ADPCM structure definitions
//
// for WAVE_FORMAT_DVI_ADPCM (0x0011)
//
//
typedef struct dvi_adpcmwaveformat_tag {
WAVEFORMATEX wfx;
WORD wSamplesPerBlock;
} DVIADPCMWAVEFORMAT;
typedef DVIADPCMWAVEFORMAT *PDVIADPCMWAVEFORMAT;
typedef DVIADPCMWAVEFORMAT NEAR *NPDVIADPCMWAVEFORMAT;
typedef DVIADPCMWAVEFORMAT FAR *LPDVIADPCMWAVEFORMAT;
//
// IMA endorsed ADPCM structure definitions--note that this is exactly
// the same format as Intel's DVI ADPCM.
//
// for WAVE_FORMAT_IMA_ADPCM (0x0011)
//
//
typedef struct ima_adpcmwaveformat_tag {
WAVEFORMATEX wfx;
WORD wSamplesPerBlock;
} IMAADPCMWAVEFORMAT;
typedef IMAADPCMWAVEFORMAT *PIMAADPCMWAVEFORMAT;
typedef IMAADPCMWAVEFORMAT NEAR *NPIMAADPCMWAVEFORMAT;
typedef IMAADPCMWAVEFORMAT FAR *LPIMAADPCMWAVEFORMAT;
/*
//VideoLogic's Media Space ADPCM Structure definitions
// for WAVE_FORMAT_MEDIASPACE_ADPCM (0x0012)
//
//
*/
typedef struct mediaspace_adpcmwaveformat_tag {
WAVEFORMATEX wfx;
WORD wRevision;
} MEDIASPACEADPCMWAVEFORMAT;
typedef MEDIASPACEADPCMWAVEFORMAT *PMEDIASPACEADPCMWAVEFORMAT;
typedef MEDIASPACEADPCMWAVEFORMAT NEAR *NPMEDIASPACEADPCMWAVEFORMAT;
typedef MEDIASPACEADPCMWAVEFORMAT FAR *LPMEDIASPACEADPCMWAVEFORMAT;
//
// Sierra Semiconductor
//
// for WAVE_FORMAT_SIERRA_ADPCM (0x0013)
//
//
typedef struct sierra_adpcmwaveformat_tag {
WAVEFORMATEX wfx;
WORD wRevision;
} SIERRAADPCMWAVEFORMAT;
typedef SIERRAADPCMWAVEFORMAT *PSIERRAADPCMWAVEFORMAT;
typedef SIERRAADPCMWAVEFORMAT NEAR *NPSIERRAADPCMWAVEFORMAT;
typedef SIERRAADPCMWAVEFORMAT FAR *LPSIERRAADPCMWAVEFORMAT;
//
// Antex Electronics structure definitions
//
// for WAVE_FORMAT_G723_ADPCM (0x0014)
//
//
typedef struct g723_adpcmwaveformat_tag {
WAVEFORMATEX wfx;
WORD cbExtraSize;
WORD nAuxBlockSize;
} G723_ADPCMWAVEFORMAT;
typedef G723_ADPCMWAVEFORMAT *PG723_ADPCMWAVEFORMAT;
typedef G723_ADPCMWAVEFORMAT NEAR *NPG723_ADPCMWAVEFORMAT;
typedef G723_ADPCMWAVEFORMAT FAR *LPG723_ADPCMWAVEFORMAT;
//
// DSP Solutions (formerly DIGISPEECH) structure definitions
//
// for WAVE_FORMAT_DIGISTD (0x0015)
//
//
typedef struct digistdwaveformat_tag {
WAVEFORMATEX wfx;
} DIGISTDWAVEFORMAT;
typedef DIGISTDWAVEFORMAT *PDIGISTDWAVEFORMAT;
typedef DIGISTDWAVEFORMAT NEAR *NPDIGISTDWAVEFORMAT;
typedef DIGISTDWAVEFORMAT FAR *LPDIGISTDWAVEFORMAT;
//
// DSP Solutions (formerly DIGISPEECH) structure definitions
//
// for WAVE_FORMAT_DIGIFIX (0x0016)
//
//
typedef struct digifixwaveformat_tag {
WAVEFORMATEX wfx;
} DIGIFIXWAVEFORMAT;
typedef DIGIFIXWAVEFORMAT *PDIGIFIXWAVEFORMAT;
typedef DIGIFIXWAVEFORMAT NEAR *NPDIGIFIXWAVEFORMAT;
typedef DIGIFIXWAVEFORMAT FAR *LPDIGIFIXWAVEFORMAT;
//
// Dialogic Corporation
// WAVEFORMAT_DIALOGIC_OKI_ADPCM (0x0017)
//
typedef struct creative_fastspeechformat_tag{
WAVEFORMATEX ewf;
}DIALOGICOKIADPCMWAVEFORMAT;
typedef DIALOGICOKIADPCMWAVEFORMAT *PDIALOGICOKIADPCMWAVEFORMAT;
typedef DIALOGICOKIADPCMWAVEFORMAT NEAR *NPDIALOGICOKIADPCMWAVEFORMAT;
typedef DIALOGICOKIADPCMWAVEFORMAT FAR *LPDIALOGICOKIADPCMWAVEFORMAT;
//
// Yamaha Compression's ADPCM structure definitions
//
// for WAVE_FORMAT_YAMAHA_ADPCM (0x0020)
//
//
typedef struct yamaha_adpmcwaveformat_tag {
WAVEFORMATEX wfx;
} YAMAHA_ADPCMWAVEFORMAT;
typedef YAMAHA_ADPCMWAVEFORMAT *PYAMAHA_ADPCMWAVEFORMAT;
typedef YAMAHA_ADPCMWAVEFORMAT NEAR *NPYAMAHA_ADPCMWAVEFORMAT;
typedef YAMAHA_ADPCMWAVEFORMAT FAR *LPYAMAHA_ADPCMWAVEFORMAT;
//
// Speech Compression's Sonarc structure definitions
//
// for WAVE_FORMAT_SONARC (0x0021)
//
//
typedef struct sonarcwaveformat_tag {
WAVEFORMATEX wfx;
WORD wCompType;
} SONARCWAVEFORMAT;
typedef SONARCWAVEFORMAT *PSONARCWAVEFORMAT;
typedef SONARCWAVEFORMAT NEAR *NPSONARCWAVEFORMAT;
typedef SONARCWAVEFORMAT FAR *LPSONARCWAVEFORMAT;
//
// DSP Groups's TRUESPEECH structure definitions
//
// for WAVE_FORMAT_DSPGROUP_TRUESPEECH (0x0022)
//
//
typedef struct truespeechwaveformat_tag {
WAVEFORMATEX wfx;
WORD wRevision;
WORD nSamplesPerBlock;
BYTE abReserved[28];
} TRUESPEECHWAVEFORMAT;
typedef TRUESPEECHWAVEFORMAT *PTRUESPEECHWAVEFORMAT;
typedef TRUESPEECHWAVEFORMAT NEAR *NPTRUESPEECHWAVEFORMAT;
typedef TRUESPEECHWAVEFORMAT FAR *LPTRUESPEECHWAVEFORMAT;
//
// Echo Speech Corp structure definitions
//
// for WAVE_FORMAT_ECHOSC1 (0x0023)
//
//
typedef struct echosc1waveformat_tag {
WAVEFORMATEX wfx;
} ECHOSC1WAVEFORMAT;
typedef ECHOSC1WAVEFORMAT *PECHOSC1WAVEFORMAT;
typedef ECHOSC1WAVEFORMAT NEAR *NPECHOSC1WAVEFORMAT;
typedef ECHOSC1WAVEFORMAT FAR *LPECHOSC1WAVEFORMAT;
//
// Audiofile Inc.structure definitions
//
// for WAVE_FORMAT_AUDIOFILE_AF36 (0x0024)
//
//
typedef struct audiofile_af36waveformat_tag {
WAVEFORMATEX wfx;
} AUDIOFILE_AF36WAVEFORMAT;
typedef AUDIOFILE_AF36WAVEFORMAT *PAUDIOFILE_AF36WAVEFORMAT;
typedef AUDIOFILE_AF36WAVEFORMAT NEAR *NPAUDIOFILE_AF36WAVEFORMAT;
typedef AUDIOFILE_AF36WAVEFORMAT FAR *LPAUDIOFILE_AF36WAVEFORMAT;
//
// Audio Processing Technology structure definitions
//
// for WAVE_FORMAT_APTX (0x0025)
//
//
typedef struct aptxwaveformat_tag {
WAVEFORMATEX wfx;
} APTXWAVEFORMAT;
typedef APTXWAVEFORMAT *PAPTXWAVEFORMAT;
typedef APTXWAVEFORMAT NEAR *NPAPTXWAVEFORMAT;
typedef APTXWAVEFORMAT FAR *LPAPTXWAVEFORMAT;
//
// Audiofile Inc.structure definitions
//
// for WAVE_FORMAT_AUDIOFILE_AF10 (0x0026)
//
//
typedef struct audiofile_af10waveformat_tag {
WAVEFORMATEX wfx;
} AUDIOFILE_AF10WAVEFORMAT;
typedef AUDIOFILE_AF10WAVEFORMAT *PAUDIOFILE_AF10WAVEFORMAT;
typedef AUDIOFILE_AF10WAVEFORMAT NEAR *NPAUDIOFILE_AF10WAVEFORMAT;
typedef AUDIOFILE_AF10WAVEFORMAT FAR *LPAUDIOFILE_AF10WAVEFORMAT;
//
/* Dolby's AC-2 wave format structure definition
WAVE_FORMAT_DOLBY_AC2 (0x0030)*/
//
typedef struct dolbyac2waveformat_tag {
WAVEFORMATEX wfx;
WORD nAuxBitsCode;
} DOLBYAC2WAVEFORMAT;
/*Microsoft's */
// WAVE_FORMAT_GSM 610 0x0031
//
typedef struct gsm610waveformat_tag {
WAVEFORMATEX wfx;
WORD wSamplesPerBlock;
} GSM610WAVEFORMAT;
typedef GSM610WAVEFORMAT *PGSM610WAVEFORMAT;
typedef GSM610WAVEFORMAT NEAR *NPGSM610WAVEFORMAT;
typedef GSM610WAVEFORMAT FAR *LPGSM610WAVEFORMAT;
//
// Antex Electronics Corp
//
// for WAVE_FORMAT_ADPCME (0x0033)
//
//
typedef struct adpcmewaveformat_tag {
WAVEFORMATEX wfx;
WORD wSamplesPerBlock;
} ADPCMEWAVEFORMAT;
typedef ADPCMEWAVEFORMAT *PADPCMEWAVEFORMAT;
typedef ADPCMEWAVEFORMAT NEAR *NPADPCMEWAVEFORMAT;
typedef ADPCMEWAVEFORMAT FAR *LPADPCMEWAVEFORMAT;
/* Control Resources Limited */
// WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034
//
typedef struct contres_vqlpcwaveformat_tag {
WAVEFORMATEX wfx;
WORD wSamplesPerBlock;
} CONTRESVQLPCWAVEFORMAT;
typedef CONTRESVQLPCWAVEFORMAT *PCONTRESVQLPCWAVEFORMAT;
typedef CONTRESVQLPCWAVEFORMAT NEAR *NPCONTRESVQLPCWAVEFORMAT;
typedef CONTRESVQLPCWAVEFORMAT FAR *LPCONTRESVQLPCWAVEFORMAT;
//
//
//
// for WAVE_FORMAT_DIGIREAL (0x0035)
//
//
typedef struct digirealwaveformat_tag {
WAVEFORMATEX wfx;
WORD wSamplesPerBlock;
} DIGIREALWAVEFORMAT;
typedef DIGIREALWAVEFORMAT *PDIGIREALWAVEFORMAT;
typedef DIGIREALWAVEFORMAT NEAR *NPDIGIREALWAVEFORMAT;
typedef DIGIREALWAVEFORMAT FAR *LPDIGIREALWAVEFORMAT;
//
// DSP Solutions
//
// for WAVE_FORMAT_DIGIADPCM (0x0036)
//
//
typedef struct digiadpcmmwaveformat_tag {
WAVEFORMATEX wfx;
WORD wSamplesPerBlock;
} DIGIADPCMWAVEFORMAT;
typedef DIGIADPCMWAVEFORMAT *PDIGIADPCMWAVEFORMAT;
typedef DIGIADPCMWAVEFORMAT NEAR *NPDIGIADPCMWAVEFORMAT;
typedef DIGIADPCMWAVEFORMAT FAR *LPDIGIADPCMWAVEFORMAT;
/* Control Resources Limited */
// WAVE_FORMAT_CONTROL_RES_CR10 0x0037
//
typedef struct contres_cr10waveformat_tag {
WAVEFORMATEX wfx;
WORD wSamplesPerBlock;
} CONTRESCR10WAVEFORMAT;
typedef CONTRESCR10WAVEFORMAT *PCONTRESCR10WAVEFORMAT;
typedef CONTRESCR10WAVEFORMAT NEAR *NPCONTRESCR10WAVEFORMAT;
typedef CONTRESCR10WAVEFORMAT FAR *LPCONTRESCR10WAVEFORMAT;
//
// Natural Microsystems
//
// for WAVE_FORMAT_NMS_VBXADPCM (0x0038)
//
//
typedef struct nms_vbxadpcmmwaveformat_tag {
WAVEFORMATEX wfx;
WORD wSamplesPerBlock;
} NMS_VBXADPCMWAVEFORMAT;
typedef NMS_VBXADPCMWAVEFORMAT *PNMS_VBXADPCMWAVEFORMAT;
typedef NMS_VBXADPCMWAVEFORMAT NEAR *NPNMS_VBXADPCMWAVEFORMAT;
typedef NMS_VBXADPCMWAVEFORMAT FAR *LPNMS_VBXADPCMWAVEFORMAT;
//
// Antex Electronics structure definitions
//
// for WAVE_FORMAT_G721_ADPCM (0x0040)
//
//
typedef struct g721_adpcmwaveformat_tag {
WAVEFORMATEX wfx;
WORD nAuxBlockSize;
} G721_ADPCMWAVEFORMAT;
typedef G721_ADPCMWAVEFORMAT *PG721_ADPCMWAVEFORMAT;
typedef G721_ADPCMWAVEFORMAT NEAR *NPG721_ADPCMWAVEFORMAT;
typedef G721_ADPCMWAVEFORMAT FAR *LPG721_ADPCMWAVEFORMAT;
//
//
// Microsoft MPEG audio WAV definition
//
/* MPEG-1 audio wave format (audio layer only). (0x0050) */
typedef struct mpeg1waveformat_tag {
WAVEFORMATEX wfx;
WORD fwHeadLayer;
DWORD dwHeadBitrate;
WORD fwHeadMode;
WORD fwHeadModeExt;
WORD wHeadEmphasis;
WORD fwHeadFlags;
DWORD dwPTSLow;
DWORD dwPTSHigh;
} MPEG1WAVEFORMAT;
typedef MPEG1WAVEFORMAT *PMPEG1WAVEFORMAT;
typedef MPEG1WAVEFORMAT NEAR *NPMPEG1WAVEFORMAT;
typedef MPEG1WAVEFORMAT FAR *LPMPEG1WAVEFORMAT;
#define ACM_MPEG_LAYER1 (0x0001)
#define ACM_MPEG_LAYER2 (0x0002)
#define ACM_MPEG_LAYER3 (0x0004)
#define ACM_MPEG_STEREO (0x0001)
#define ACM_MPEG_JOINTSTEREO (0x0002)
#define ACM_MPEG_DUALCHANNEL (0x0004)
#define ACM_MPEG_SINGLECHANNEL (0x0008)
#define ACM_MPEG_PRIVATEBIT (0x0001)
#define ACM_MPEG_COPYRIGHT (0x0002)
#define ACM_MPEG_ORIGINALHOME (0x0004)
#define ACM_MPEG_PROTECTIONBIT (0x0008)
#define ACM_MPEG_ID_MPEG1 (0x0010)
//
// Creative's ADPCM structure definitions
//
// for WAVE_FORMAT_CREATIVE_ADPCM (0x0200)
//
//
typedef struct creative_adpcmwaveformat_tag {
WAVEFORMATEX wfx;
WORD wRevision;
} CREATIVEADPCMWAVEFORMAT;
typedef CREATIVEADPCMWAVEFORMAT *PCREATIVEADPCMWAVEFORMAT;
typedef CREATIVEADPCMWAVEFORMAT NEAR *NPCREATIVEADPCMWAVEFORMAT;
typedef CREATIVEADPCMWAVEFORMAT FAR *LPCREATIVEADPCMWAVEFORMAT;
//
// Creative FASTSPEECH
// WAVEFORMAT_CREATIVE_FASTSPEECH8 (0x0202)
//
typedef struct creative_fastspeech8format_tag {
WAVEFORMATEX wfx;
WORD wRevision;
} CREATIVEFASTSPEECH8WAVEFORMAT;
typedef CREATIVEFASTSPEECH8WAVEFORMAT *PCREATIVEFASTSPEECH8WAVEFORMAT;
typedef CREATIVEFASTSPEECH8WAVEFORMAT NEAR *NPCREATIVEFASTSPEECH8WAVEFORMAT;
typedef CREATIVEFASTSPEECH8WAVEFORMAT FAR *LPCREATIVEFASTSPEECH8WAVEFORMAT;
//
// Creative FASTSPEECH
// WAVEFORMAT_CREATIVE_FASTSPEECH10 (0x0203)
//
typedef struct creative_fastspeech10format_tag {
WAVEFORMATEX wfx;
WORD wRevision;
} CREATIVEFASTSPEECH10WAVEFORMAT;
typedef CREATIVEFASTSPEECH10WAVEFORMAT *PCREATIVEFASTSPEECH10WAVEFORMAT;
typedef CREATIVEFASTSPEECH10WAVEFORMAT NEAR *NPCREATIVEFASTSPEECH10WAVEFORMAT;
typedef CREATIVEFASTSPEECH10WAVEFORMAT FAR *LPCREATIVEFASTSPEECH10WAVEFORMAT;
//
// Fujitsu FM Towns 'SND' structure
//
// for WAVE_FORMAT_FMMTOWNS_SND (0x0300)
//
//
typedef struct fmtowns_snd_waveformat_tag {
WAVEFORMATEX wfx;
WORD wRevision;
} FMTOWNS_SND_WAVEFORMAT;
typedef FMTOWNS_SND_WAVEFORMAT *PFMTOWNS_SND_WAVEFORMAT;
typedef FMTOWNS_SND_WAVEFORMAT NEAR *NPFMTOWNS_SND_WAVEFORMAT;
typedef FMTOWNS_SND_WAVEFORMAT FAR *LPFMTOWNS_SND_WAVEFORMAT;
//
// Olivetti structure
//
// for WAVE_FORMAT_OLIGSM (0x1000)
//
//
typedef struct oligsmwaveformat_tag {
WAVEFORMATEX wfx;
} OLIGSMWAVEFORMAT;
typedef OLIGSMWAVEFORMAT *POLIGSMWAVEFORMAT;
typedef OLIGSMWAVEFORMAT NEAR *NPOLIGSMWAVEFORMAT;
typedef OLIGSMWAVEFORMAT FAR *LPOLIGSMWAVEFORMAT;
//
// Olivetti structure
//
// for WAVE_FORMAT_OLIADPCM (0x1001)
//
//
typedef struct oliadpcmwaveformat_tag {
WAVEFORMATEX wfx;
} OLIADPCMWAVEFORMAT;
typedef OLIADPCMWAVEFORMAT *POLIADPCMWAVEFORMAT;
typedef OLIADPCMWAVEFORMAT NEAR *NPOLIADPCMWAVEFORMAT ;
typedef OLIADPCMWAVEFORMAT FAR *LPOLIADPCMWAVEFORMAT;
//
// Olivetti structure
//
// for WAVE_FORMAT_OLICELP (0x1002)
//
//
typedef struct olicelpwaveformat_tag {
WAVEFORMATEX wfx;
} OLICELPWAVEFORMAT;
typedef OLICELPWAVEFORMAT *POLICELPWAVEFORMAT;
typedef OLICELPWAVEFORMAT NEAR *NPOLICELPWAVEFORMAT ;
typedef OLICELPWAVEFORMAT FAR *LPOLICELPWAVEFORMAT;
//
// Olivetti structure
//
// for WAVE_FORMAT_OLISBC (0x1003)
//
//
typedef struct olisbcwaveformat_tag {
WAVEFORMATEX wfx;
} OLISBCWAVEFORMAT;
typedef OLISBCWAVEFORMAT *POLISBCWAVEFORMAT;
typedef OLISBCWAVEFORMAT NEAR *NPOLISBCWAVEFORMAT ;
typedef OLISBCWAVEFORMAT FAR *LPOLISBCWAVEFORMAT;
//
// Olivetti structure
//
// for WAVE_FORMAT_OLIOPR (0x1004)
//
//
typedef struct olioprwaveformat_tag {
WAVEFORMATEX wfx;
} OLIOPRWAVEFORMAT;
typedef OLIOPRWAVEFORMAT *POLIOPRWAVEFORMAT;
typedef OLIOPRWAVEFORMAT NEAR *NPOLIOPRWAVEFORMAT ;
typedef OLIOPRWAVEFORMAT FAR *LPOLIOPRWAVEFORMAT;
//==========================================================================;
//
// ACM Wave Filters
//
//
//==========================================================================;
#ifndef _ACM_WAVEFILTER
#define _ACM_WAVEFILTER
#define WAVE_FILTER_UNKNOWN 0x0000
#define WAVE_FILTER_DEVELOPMENT (0xFFFF)
typedef struct wavefilter_tag {
DWORD cbStruct; /* Size of the filter in bytes */
DWORD dwFilterTag; /* filter type */
DWORD fdwFilter; /* Flags for the filter (Universal Dfns) */
DWORD dwReserved[5]; /* Reserved for system use */
} WAVEFILTER;
typedef WAVEFILTER *PWAVEFILTER;
typedef WAVEFILTER NEAR *NPWAVEFILTER;
typedef WAVEFILTER FAR *LPWAVEFILTER;
#endif /* _ACM_WAVEFILTER */
#ifndef WAVE_FILTER_VOLUME
#define WAVE_FILTER_VOLUME 0x0001
typedef struct wavefilter_volume_tag {
WAVEFILTER wfltr;
DWORD dwVolume;
} VOLUMEWAVEFILTER;
typedef VOLUMEWAVEFILTER *PVOLUMEWAVEFILTER;
typedef VOLUMEWAVEFILTER NEAR *NPVOLUMEWAVEFILTER;
typedef VOLUMEWAVEFILTER FAR *LPVOLUMEWAVEFILTER;
#endif /* WAVE_FILTER_VOLUME */
#ifndef WAVE_FILTER_ECHO
#define WAVE_FILTER_ECHO 0x0002
typedef struct wavefilter_echo_tag {
WAVEFILTER wfltr;
DWORD dwVolume;
DWORD dwDelay;
} ECHOWAVEFILTER;
typedef ECHOWAVEFILTER *PECHOWAVEFILTER;
typedef ECHOWAVEFILTER NEAR *NPECHOWAVEFILTER;
typedef ECHOWAVEFILTER FAR *LPECHOWAVEFILTER;
#endif /* WAVEFILTER_ECHO */
/*//////////////////////////////////////////////////////////////////////////
//
// New RIFF WAVE Chunks
//
*/
#define RIFFWAVE_inst mmioFOURCC('i','n','s','t')
struct tag_s_RIFFWAVE_inst {
BYTE bUnshiftedNote;
char chFineTune;
char chGain;
BYTE bLowNote;
BYTE bHighNote;
BYTE bLowVelocity;
BYTE bHighVelocity;
};
typedef struct tag_s_RIFFWAVE_inst s_RIFFWAVE_inst;
#endif
/*//////////////////////////////////////////////////////////////////////////
//
// New RIFF Forms
//
*/
#ifndef NONEWRIFF
/* RIFF AVI */
//
// AVI file format is specified in a seperate file (AVIFMT.H),
// which is available in the VfW and Chicago SDK
//
/* RIFF CPPO */
#define RIFFCPPO mmioFOURCC('C','P','P','O')
#define RIFFCPPO_objr mmioFOURCC('o','b','j','r')
#define RIFFCPPO_obji mmioFOURCC('o','b','j','i')
#define RIFFCPPO_clsr mmioFOURCC('c','l','s','r')
#define RIFFCPPO_clsi mmioFOURCC('c','l','s','i')
#define RIFFCPPO_mbr mmioFOURCC('m','b','r',' ')
#define RIFFCPPO_char mmioFOURCC('c','h','a','r')
#define RIFFCPPO_byte mmioFOURCC('b','y','t','e')
#define RIFFCPPO_int mmioFOURCC('i','n','t',' ')
#define RIFFCPPO_word mmioFOURCC('w','o','r','d')
#define RIFFCPPO_long mmioFOURCC('l','o','n','g')
#define RIFFCPPO_dwrd mmioFOURCC('d','w','r','d')
#define RIFFCPPO_flt mmioFOURCC('f','l','t',' ')
#define RIFFCPPO_dbl mmioFOURCC('d','b','l',' ')
#define RIFFCPPO_str mmioFOURCC('s','t','r',' ')
#endif
/*
//////////////////////////////////////////////////////////////////////////
//
// DIB Compression Defines
//
*/
#ifndef BI_BITFIELDS
#define BI_BITFIELDS 3
#endif
#ifndef QUERYDIBSUPPORT
#define QUERYDIBSUPPORT 3073
#define QDI_SETDIBITS 0x0001
#define QDI_GETDIBITS 0x0002
#define QDI_DIBTOSCREEN 0x0004
#define QDI_STRETCHDIB 0x0008
#endif
#ifndef NOBITMAP
/* Structure definitions */
typedef struct tagEXBMINFOHEADER {
BITMAPINFOHEADER bmi;
/* extended BITMAPINFOHEADER fields */
DWORD biExtDataOffset;
/* Other stuff will go here */
/* ... */
/* Format-specific information */
/* biExtDataOffset points here */
} EXBMINFOHEADER;
#endif //NOBITMAP
/* New DIB Compression Defines */
#define BICOMP_IBMULTIMOTION mmioFOURCC('U', 'L', 'T', 'I')
#define BICOMP_IBMPHOTOMOTION mmioFOURCC('P', 'H', 'M', 'O')
#define BICOMP_CREATIVEYUV mmioFOURCC('c', 'y', 'u', 'v')
#ifndef NOJPEGDIB
/* New DIB Compression Defines */
#define JPEG_DIB mmioFOURCC('J','P','E','G') /* Still image JPEG DIB biCompression */
#define MJPG_DIB mmioFOURCC('M','J','P','G') /* Motion JPEG DIB biCompression */
/* JPEGProcess Definitions */
#define JPEG_PROCESS_BASELINE 0 /* Baseline DCT */
/* AVI File format extensions */
#define AVIIF_CONTROLFRAME 0x00000200L /* This is a control frame */
/* JIF Marker byte pairs in JPEG Interchange Format sequence */
#define JIFMK_SOF0 0xFFC0 /* SOF Huff - Baseline DCT*/
#define JIFMK_SOF1 0xFFC1 /* SOF Huff - Extended sequential DCT*/
#define JIFMK_SOF2 0xFFC2 /* SOF Huff - Progressive DCT*/
#define JIFMK_SOF3 0xFFC3 /* SOF Huff - Spatial (sequential) lossless*/
#define JIFMK_SOF5 0xFFC5 /* SOF Huff - Differential sequential DCT*/
#define JIFMK_SOF6 0xFFC6 /* SOF Huff - Differential progressive DCT*/
#define JIFMK_SOF7 0xFFC7 /* SOF Huff - Differential spatial*/
#define JIFMK_JPG 0xFFC8 /* SOF Arith - Reserved for JPEG extensions*/
#define JIFMK_SOF9 0xFFC9 /* SOF Arith - Extended sequential DCT*/
#define JIFMK_SOF10 0xFFCA /* SOF Arith - Progressive DCT*/
#define JIFMK_SOF11 0xFFCB /* SOF Arith - Spatial (sequential) lossless*/
#define JIFMK_SOF13 0xFFCD /* SOF Arith - Differential sequential DCT*/
#define JIFMK_SOF14 0xFFCE /* SOF Arith - Differential progressive DCT*/
#define JIFMK_SOF15 0xFFCF /* SOF Arith - Differential spatial*/
#define JIFMK_DHT 0xFFC4 /* Define Huffman Table(s) */
#define JIFMK_DAC 0xFFCC /* Define Arithmetic coding conditioning(s) */
#define JIFMK_RST0 0xFFD0 /* Restart with modulo 8 count 0 */
#define JIFMK_RST1 0xFFD1 /* Restart with modulo 8 count 1 */
#define JIFMK_RST2 0xFFD2 /* Restart with modulo 8 count 2 */
#define JIFMK_RST3 0xFFD3 /* Restart with modulo 8 count 3 */
#define JIFMK_RST4 0xFFD4 /* Restart with modulo 8 count 4 */
#define JIFMK_RST5 0xFFD5 /* Restart with modulo 8 count 5 */
#define JIFMK_RST6 0xFFD6 /* Restart with modulo 8 count 6 */
#define JIFMK_RST7 0xFFD7 /* Restart with modulo 8 count 7 */
#define JIFMK_SOI 0xFFD8 /* Start of Image */
#define JIFMK_EOI 0xFFD9 /* End of Image */
#define JIFMK_SOS 0xFFDA /* Start of Scan */
#define JIFMK_DQT 0xFFDB /* Define quantization Table(s) */
#define JIFMK_DNL 0xFFDC /* Define Number of Lines */
#define JIFMK_DRI 0xFFDD /* Define Restart Interval */
#define JIFMK_DHP 0xFFDE /* Define Hierarchical progression */
#define JIFMK_EXP 0xFFDF /* Expand Reference Component(s) */
#define JIFMK_APP0 0xFFE0 /* Application Field 0*/
#define JIFMK_APP1 0xFFE1 /* Application Field 1*/
#define JIFMK_APP2 0xFFE2 /* Application Field 2*/
#define JIFMK_APP3 0xFFE3 /* Application Field 3*/
#define JIFMK_APP4 0xFFE4 /* Application Field 4*/
#define JIFMK_APP5 0xFFE5 /* Application Field 5*/
#define JIFMK_APP6 0xFFE6 /* Application Field 6*/
#define JIFMK_APP7 0xFFE7 /* Application Field 7*/
#define JIFMK_JPG0 0xFFF0 /* Reserved for JPEG extensions */
#define JIFMK_JPG1 0xFFF1 /* Reserved for JPEG extensions */
#define JIFMK_JPG2 0xFFF2 /* Reserved for JPEG extensions */
#define JIFMK_JPG3 0xFFF3 /* Reserved for JPEG extensions */
#define JIFMK_JPG4 0xFFF4 /* Reserved for JPEG extensions */
#define JIFMK_JPG5 0xFFF5 /* Reserved for JPEG extensions */
#define JIFMK_JPG6 0xFFF6 /* Reserved for JPEG extensions */
#define JIFMK_JPG7 0xFFF7 /* Reserved for JPEG extensions */
#define JIFMK_JPG8 0xFFF8 /* Reserved for JPEG extensions */
#define JIFMK_JPG9 0xFFF9 /* Reserved for JPEG extensions */
#define JIFMK_JPG10 0xFFFA /* Reserved for JPEG extensions */
#define JIFMK_JPG11 0xFFFB /* Reserved for JPEG extensions */
#define JIFMK_JPG12 0xFFFC /* Reserved for JPEG extensions */
#define JIFMK_JPG13 0xFFFD /* Reserved for JPEG extensions */
#define JIFMK_COM 0xFFFE /* Comment */
#define JIFMK_TEM 0xFF01 /* for temp private use arith code */
#define JIFMK_RES 0xFF02 /* Reserved */
#define JIFMK_00 0xFF00 /* Zero stuffed byte - entropy data */
#define JIFMK_FF 0xFFFF /* Fill byte */
/* JPEGColorSpaceID Definitions */
#define JPEG_Y 1 /* Y only component of YCbCr */
#define JPEG_YCbCr 2 /* YCbCr as define by CCIR 601 */
#define JPEG_RGB 3 /* 3 component RGB */
/* Structure definitions */
typedef struct tagJPEGINFOHEADER {
/* compression-specific fields */
/* these fields are defined for 'JPEG' and 'MJPG' */
DWORD JPEGSize;
DWORD JPEGProcess;
/* Process specific fields */
DWORD JPEGColorSpaceID;
DWORD JPEGBitsPerSample;
DWORD JPEGHSubSampling;
DWORD JPEGVSubSampling;
} JPEGINFOHEADER;
#ifdef MJPGDHTSEG_STORAGE
/* Default DHT Segment */
MJPGHDTSEG_STORAGE BYTE MJPGDHTSeg[0x1A4] = {
/* JPEG DHT Segment for YCrCb omitted from MJPG data */
0xFF,0xC4,0x01,0xA2,
0x00,0x00,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x01,0x00,0x03,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
0x08,0x09,0x0A,0x0B,0x10,0x00,0x02,0x01,0x03,0x03,0x02,0x04,0x03,0x05,0x05,0x04,0x04,0x00,
0x00,0x01,0x7D,0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,0x21,0x31,0x41,0x06,0x13,0x51,0x61,
0x07,0x22,0x71,0x14,0x32,0x81,0x91,0xA1,0x08,0x23,0x42,0xB1,0xC1,0x15,0x52,0xD1,0xF0,0x24,
0x33,0x62,0x72,0x82,0x09,0x0A,0x16,0x17,0x18,0x19,0x1A,0x25,0x26,0x27,0x28,0x29,0x2A,0x34,
0x35,0x36,0x37,0x38,0x39,0x3A,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x53,0x54,0x55,0x56,
0x57,0x58,0x59,0x5A,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x73,0x74,0x75,0x76,0x77,0x78,
0x79,0x7A,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,
0x9A,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,
0xBA,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,
0xDA,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,
0xF8,0xF9,0xFA,0x11,0x00,0x02,0x01,0x02,0x04,0x04,0x03,0x04,0x07,0x05,0x04,0x04,0x00,0x01,
0x02,0x77,0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,
0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,0xA1,0xB1,0xC1,0x09,0x23,0x33,0x52,0xF0,0x15,0x62,
0x72,0xD1,0x0A,0x16,0x24,0x34,0xE1,0x25,0xF1,0x17,0x18,0x19,0x1A,0x26,0x27,0x28,0x29,0x2A,
0x35,0x36,0x37,0x38,0x39,0x3A,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x53,0x54,0x55,0x56,
0x57,0x58,0x59,0x5A,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x73,0x74,0x75,0x76,0x77,0x78,
0x79,0x7A,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
0x99,0x9A,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,
0xB9,0xBA,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,
0xD9,0xDA,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,
0xF9,0xFA
};
/* End DHT default */
#endif
/* End JPEG */
#endif
/*//////////////////////////////////////////////////////////////////////////
//
// Defined IC types
*/
#ifndef NONEWIC
#ifndef ICTYPE_VIDEO
#define ICTYPE_VIDEO mmioFOURCC('v', 'i', 'd', 'c')
#define ICTYPE_AUDIO mmioFOURCC('a', 'u', 'd', 'c')
#endif
#endif
/*
// Misc. FOURCC registration
*/
/* Sierra Semiconductor: RDSP- Confidential RIFF file format
// for the storage and downloading of DSP
// code for Audio and communications devices.
*/
#define FOURCC_RDSP mmioFOURCC('R', 'D', 'S', 'P')
#ifndef MMNOMIXER
#define MIXERCONTROL_CONTROLTYPE_SRS_MTS (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 6)
#define MIXERCONTROL_CONTROLTYPE_SRS_ONOFF (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 7)
#define MIXERCONTROL_CONTROLTYPE_SRS_SYNTHSELECT (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 8)
#endif
#ifndef RC_INVOKED
//current chicago line#pragma pack() /* Revert to default packing */
#include "poppack.h" /* Revert to default packing */
#endif /* RC_INVOKED */
#ifdef __cplusplus
} /* End of extern "C" { */
#endif /* __cplusplus */
#endif /* _INC_MMREG */
|