-
Notifications
You must be signed in to change notification settings - Fork 29
/
mmreg.h
executable file
·3810 lines (3336 loc) · 172 KB
/
mmreg.h
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
#include <winapifamily.h>
//*@@@+++@@@@******************************************************************
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// Multimedia Registration
//
//*@@@---@@@@******************************************************************
//
// 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
#if !defined(__midl)
#ifndef _INC_MMREG
/* use version number to verify compatibility */
#define _INC_MMREG 158 // version * 100 + revision
#if _MSC_VER > 1000
#pragma once
#endif
#if !defined( RC_INVOKED ) && defined( _MSC_VER )
#if (_MSC_VER <= 800)
#pragma pack(1)
#else
#include "pshpack1.h" /* Assume byte packing throughout */
#endif
#endif /* RC_INVOKED */
#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#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_PRAGMATRAX 5 /* PRAGMATRAX Software */
#define MM_CYRIX 6 /* Cyrix Corporation */
#define MM_PHILIPS_SPEECH_PROCESSING 7 /* Philips Speech Processing */
#define MM_NETXL 8 /* NetXL, Inc. */
#define MM_ZYXEL 9 /* ZyXEL Communications, Inc. */
#define MM_BECUBED 10 /* BeCubed Software Inc. */
#define MM_AARDVARK 11 /* Aardvark Computer Systems, Inc. */
#define MM_BINTEC 12 /* Bin Tec Communications GmbH */
#define MM_HEWLETT_PACKARD 13 /* Hewlett-Packard Company */
#define MM_ACULAB 14 /* Aculab plc */
#define MM_FAITH 15 /* Faith,Inc. */
#define MM_MITEL 16 /* Mitel Corporation */
#define MM_QUANTUM3D 17 /* Quantum3D, Inc. */
#define MM_SNI 18 /* Siemens-Nixdorf */
#define MM_EMU 19 /* E-mu Systems, Inc. */
#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 Technologies Inc. */
#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 /* 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_TERRATEC 70 /* TerraTec Electronic GmbH */
#define MM_MEDIASONIC 71 /* MediaSonic Ltd. */
#define MM_SANYO 72 /* SANYO Electric Co., Ltd. */
#define MM_SUPERMAC 73 /* Supermac */
#define MM_AUDIOPT 74 /* Audio Processing Technology */
#define MM_NOGATECH 75 /* NOGATECH Ltd. */
#define MM_SPEECHCOMP 76 /* Speech Compression */
#define MM_AHEAD 77 /* Ahead, Inc. */
#define MM_DOLBY 78 /* Dolby Laboratories */
#define MM_OKI 79 /* OKI */
#define MM_AURAVISION 80 /* AuraVision Corporation */
#define MM_OLIVETTI 81 /* Ing C. Olivetti & C., S.p.A. */
#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_ADLACC 91 /* Adlib Accessories Inc. */
#define MM_COMPAQ 92 /* Compaq Computer Corp. */
#define MM_DIALOGIC 93 /* Dialogic Corporation */
#define MM_INSOFT 94 /* InSoft, Inc. */
#define MM_MPTUS 95 /* M.P. Technologies, Inc. */
#define MM_WEITEK 96 /* Weitek */
#define MM_LERNOUT_AND_HAUSPIE 97 /* Lernout & Hauspie */
#define MM_QCIAR 98 /* Quanta Computer Inc. */
#define MM_APPLE 99 /* Apple Computer, Inc. */
#define MM_DIGITAL 100 /* Digital Equipment Corporation */
#define MM_MOTU 101 /* Mark of the Unicorn */
#define MM_WORKBIT 102 /* Workbit Corporation */
#define MM_OSITECH 103 /* Ositech Communications Inc. */
#define MM_MIRO 104 /* miro Computer Products AG */
#define MM_CIRRUSLOGIC 105 /* Cirrus Logic */
#define MM_ISOLUTION 106 /* ISOLUTION B.V. */
#define MM_HORIZONS 107 /* Horizons Technology, Inc. */
#define MM_CONCEPTS 108 /* Computer Concepts Ltd. */
#define MM_VTG 109 /* Voice Technologies Group, Inc. */
#define MM_RADIUS 110 /* Radius */
#define MM_ROCKWELL 111 /* Rockwell International */
#define MM_XYZ 112 /* Co. XYZ for testing */
#define MM_OPCODE 113 /* Opcode Systems */
#define MM_VOXWARE 114 /* Voxware Inc. */
#define MM_NORTHERN_TELECOM 115 /* Northern Telecom Limited */
#define MM_APICOM 116 /* APICOM */
#define MM_GRANDE 117 /* Grande Software */
#define MM_ADDX 118 /* ADDX */
#define MM_WILDCAT 119 /* Wildcat Canyon Software */
#define MM_RHETOREX 120 /* Rhetorex Inc. */
#define MM_BROOKTREE 121 /* Brooktree Corporation */
#define MM_ENSONIQ 125 /* ENSONIQ Corporation */
#define MM_FAST 126 /* FAST Multimedia AG */
#define MM_NVIDIA 127 /* NVidia Corporation */
#define MM_OKSORI 128 /* OKSORI Co., Ltd. */
#define MM_DIACOUSTICS 129 /* DiAcoustics, Inc. */
#define MM_GULBRANSEN 130 /* Gulbransen, Inc. */
#define MM_KAY_ELEMETRICS 131 /* Kay Elemetrics, Inc. */
#define MM_CRYSTAL 132 /* Crystal Semiconductor Corporation */
#define MM_SPLASH_STUDIOS 133 /* Splash Studios */
#define MM_QUARTERDECK 134 /* Quarterdeck Corporation */
#define MM_TDK 135 /* TDK Corporation */
#define MM_DIGITAL_AUDIO_LABS 136 /* Digital Audio Labs, Inc. */
#define MM_SEERSYS 137 /* Seer Systems, Inc. */
#define MM_PICTURETEL 138 /* PictureTel Corporation */
#define MM_ATT_MICROELECTRONICS 139 /* AT&T Microelectronics */
#define MM_OSPREY 140 /* Osprey Technologies, Inc. */
#define MM_MEDIATRIX 141 /* Mediatrix Peripherals */
#define MM_SOUNDESIGNS 142 /* SounDesignS M.C.S. Ltd. */
#define MM_ALDIGITAL 143 /* A.L. Digital Ltd. */
#define MM_SPECTRUM_SIGNAL_PROCESSING 144 /* Spectrum Signal Processing, Inc. */
#define MM_ECS 145 /* Electronic Courseware Systems, Inc. */
#define MM_AMD 146 /* AMD */
#define MM_COREDYNAMICS 147 /* Core Dynamics */
#define MM_CANAM 148 /* CANAM Computers */
#define MM_SOFTSOUND 149 /* Softsound, Ltd. */
#define MM_NORRIS 150 /* Norris Communications, Inc. */
#define MM_DDD 151 /* Danka Data Devices */
#define MM_EUPHONICS 152 /* EuPhonics */
#define MM_PRECEPT 153 /* Precept Software, Inc. */
#define MM_CRYSTAL_NET 154 /* Crystal Net Corporation */
#define MM_CHROMATIC 155 /* Chromatic Research, Inc. */
#define MM_VOICEINFO 156 /* Voice Information Systems, Inc. */
#define MM_VIENNASYS 157 /* Vienna Systems */
#define MM_CONNECTIX 158 /* Connectix Corporation */
#define MM_GADGETLABS 159 /* Gadget Labs LLC */
#define MM_FRONTIER 160 /* Frontier Design Group LLC */
#define MM_VIONA 161 /* Viona Development GmbH */
#define MM_CASIO 162 /* Casio Computer Co., LTD */
#define MM_DIAMONDMM 163 /* Diamond Multimedia */
#define MM_S3 164 /* S3 */
#define MM_DVISION 165 /* D-Vision Systems, Inc. */
#define MM_NETSCAPE 166 /* Netscape Communications */
#define MM_SOUNDSPACE 167 /* Soundspace Audio */
#define MM_VANKOEVERING 168 /* VanKoevering Company */
#define MM_QTEAM 169 /* Q-Team */
#define MM_ZEFIRO 170 /* Zefiro Acoustics */
#define MM_STUDER 171 /* Studer Professional Audio AG */
#define MM_FRAUNHOFER_IIS 172 /* Fraunhofer IIS */
#define MM_QUICKNET 173 /* Quicknet Technologies */
#define MM_ALARIS 174 /* Alaris, Inc. */
#define MM_SICRESOURCE 175 /* SIC Resource Inc. */
#define MM_NEOMAGIC 176 /* NeoMagic Corporation */
#define MM_MERGING_TECHNOLOGIES 177 /* Merging Technologies S.A. */
#define MM_XIRLINK 178 /* Xirlink, Inc. */
#define MM_COLORGRAPH 179 /* Colorgraph (UK) Ltd */
#define MM_OTI 180 /* Oak Technology, Inc. */
#define MM_AUREAL 181 /* Aureal Semiconductor */
#define MM_VIVO 182 /* Vivo Software */
#define MM_SHARP 183 /* Sharp */
#define MM_LUCENT 184 /* Lucent Technologies */
#define MM_ATT 185 /* AT&T Labs, Inc. */
#define MM_SUNCOM 186 /* Sun Communications, Inc. */
#define MM_SORVIS 187 /* Sorenson Vision */
#define MM_INVISION 188 /* InVision Interactive */
#define MM_BERKOM 189 /* Deutsche Telekom Berkom GmbH */
#define MM_MARIAN 190 /* Marian GbR Leipzig */
#define MM_DPSINC 191 /* Digital Processing Systems, Inc. */
#define MM_BCB 192 /* BCB Holdings Inc. */
#define MM_MOTIONPIXELS 193 /* Motion Pixels */
#define MM_QDESIGN 194 /* QDesign Corporation */
#define MM_NMP 195 /* Nokia Mobile Phones */
#define MM_DATAFUSION 196 /* DataFusion Systems (Pty) (Ltd) */
#define MM_DUCK 197 /* The Duck Corporation */
#define MM_FTR 198 /* Future Technology Resources Pty Ltd */
#define MM_BERCOS 199 /* BERCOS GmbH */
#define MM_ONLIVE 200 /* OnLive! Technologies, Inc. */
#define MM_SIEMENS_SBC 201 /* Siemens Business Communications Systems */
#define MM_TERALOGIC 202 /* TeraLogic, Inc. */
#define MM_PHONET 203 /* PhoNet Communications Ltd. */
#define MM_WINBOND 204 /* Winbond Electronics Corp */
#define MM_VIRTUALMUSIC 205 /* Virtual Music, Inc. */
#define MM_ENET 206 /* e-Net, Inc. */
#define MM_GUILLEMOT 207 /* Guillemot International */
#define MM_EMAGIC 208 /* Emagic Soft- und Hardware GmbH */
#define MM_MWM 209 /* MWM Acoustics LLC */
#define MM_PACIFICRESEARCH 210 /* Pacific Research and Engineering Corporation */
#define MM_SIPROLAB 211 /* Sipro Lab Telecom Inc. */
#define MM_LYNX 212 /* Lynx Studio Technology, Inc. */
#define MM_SPECTRUM_PRODUCTIONS 213 /* Spectrum Productions */
#define MM_DICTAPHONE 214 /* Dictaphone Corporation */
#define MM_QUALCOMM 215 /* QUALCOMM, Inc. */
#define MM_RZS 216 /* Ring Zero Systems, Inc */
#define MM_AUDIOSCIENCE 217 /* AudioScience Inc. */
#define MM_PINNACLE 218 /* Pinnacle Systems, Inc. */
#define MM_EES 219 /* EES Technik fuer Musik GmbH */
#define MM_HAFTMANN 220 /* haftmann#software */
#define MM_LUCID 221 /* Lucid Technology, Symetrix Inc. */
#define MM_HEADSPACE 222 /* Headspace, Inc */
#define MM_UNISYS 223 /* UNISYS CORPORATION */
#define MM_LUMINOSITI 224 /* Luminositi, Inc. */
#define MM_ACTIVEVOICE 225 /* ACTIVE VOICE CORPORATION */
#define MM_DTS 226 /* Digital Theater Systems, Inc. */
#define MM_DIGIGRAM 227 /* DIGIGRAM */
#define MM_SOFTLAB_NSK 228 /* Softlab-Nsk */
#define MM_FORTEMEDIA 229 /* ForteMedia, Inc */
#define MM_SONORUS 230 /* Sonorus, Inc. */
#define MM_ARRAY 231 /* Array Microsystems, Inc. */
#define MM_DATARAN 232 /* Data Translation, Inc. */
#define MM_I_LINK 233 /* I-link Worldwide */
#define MM_SELSIUS_SYSTEMS 234 /* Selsius Systems Inc. */
#define MM_ADMOS 235 /* AdMOS Technology, Inc. */
#define MM_LEXICON 236 /* Lexicon Inc. */
#define MM_SGI 237 /* Silicon Graphics Inc. */
#define MM_IPI 238 /* Interactive Product Inc. */
#define MM_ICE 239 /* IC Ensemble, Inc. */
#define MM_VQST 240 /* ViewQuest Technologies Inc. */
#define MM_ETEK 241 /* eTEK Labs Inc. */
#define MM_CS 242 /* Consistent Software */
#define MM_ALESIS 243 /* Alesis Studio Electronics */
#define MM_INTERNET 244 /* INTERNET Corporation */
#define MM_SONY 245 /* Sony Corporation */
#define MM_HYPERACTIVE 246 /* Hyperactive Audio Systems, Inc. */
#define MM_UHER_INFORMATIC 247 /* UHER informatic GmbH */
#define MM_SYDEC_NV 248 /* Sydec NV */
#define MM_FLEXION 249 /* Flexion Systems Ltd. */
#define MM_VIA 250 /* Via Technologies, Inc. */
#define MM_MICRONAS 251 /* Micronas Semiconductors, Inc. */
#define MM_ANALOGDEVICES 252 /* Analog Devices, Inc. */
#define MM_HP 253 /* Hewlett Packard Company */
#define MM_MATROX_DIV 254 /* Matrox */
#define MM_QUICKAUDIO 255 /* Quick Audio, GbR */
#define MM_YOUCOM 256 /* You/Com Audiocommunicatie BV */
#define MM_RICHMOND 257 /* Richmond Sound Design Ltd. */
#define MM_IODD 258 /* I-O Data Device, Inc. */
#define MM_ICCC 259 /* ICCC A/S */
#define MM_3COM 260 /* 3COM Corporation */
#define MM_MALDEN 261 /* Malden Electronics Ltd. */
#define MM_3DFX 262 /* 3Dfx Interactive, Inc. */
#define MM_MINDMAKER 263 /* Mindmaker, Inc. */
#define MM_TELEKOL 264 /* Telekol Corp. */
#define MM_ST_MICROELECTRONICS 265 /* ST Microelectronics */
#define MM_ALGOVISION 266 /* Algo Vision Systems GmbH */
#define MM_UNMAPPED 0xffff /* extensible MID mapping */
#define MM_PID_UNMAPPED MM_UNMAPPED /* extensible PID mapping */
#ifdef GUID_DEFINED
#if !defined(INIT_MMREG_MID)
//{d5a47fa7-6d98-11d1-a21a-00a0c9223196}
#define INIT_MMREG_MID(guid, id)\
{\
(guid)->Data1 = 0xd5a47fa7 + (USHORT)(id);\
(guid)->Data2 = 0x6d98;\
(guid)->Data3 = 0x11d1;\
(guid)->Data4[0] = 0xa2;\
(guid)->Data4[1] = 0x1a;\
(guid)->Data4[2] = 0x00;\
(guid)->Data4[3] = 0xa0;\
(guid)->Data4[4] = 0xc9;\
(guid)->Data4[5] = 0x22;\
(guid)->Data4[6] = 0x31;\
(guid)->Data4[7] = 0x96;\
}
#define EXTRACT_MMREG_MID(guid)\
(USHORT)((guid)->Data1 - 0xd5a47fa7)
#define DEFINE_MMREG_MID_GUID(id)\
0xd5a47fa7+(USHORT)(id), 0x6d98, 0x11d1, 0xa2, 0x1a, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96
#define IS_COMPATIBLE_MMREG_MID(guid)\
(((guid)->Data1 >= 0xd5a47fa7) &&\
((guid)->Data1 < 0xd5a47fa7 + 0xffff) &&\
((guid)->Data2 == 0x6d98) &&\
((guid)->Data3 == 0x11d1) &&\
((guid)->Data4[0] == 0xa2) &&\
((guid)->Data4[1] == 0x1a) &&\
((guid)->Data4[2] == 0x00) &&\
((guid)->Data4[3] == 0xa0) &&\
((guid)->Data4[4] == 0xc9) &&\
((guid)->Data4[5] == 0x22) &&\
((guid)->Data4[6] == 0x31) &&\
((guid)->Data4[7] == 0x96))
#endif // !defined(INIT_MMREG_MID)
#if !defined(INIT_MMREG_PID)
//{e36dc2ac-6d9a-11d1-a21a-00a0c9223196}
#define INIT_MMREG_PID(guid, id)\
{\
(guid)->Data1 = 0xe36dc2ac + (USHORT)(id);\
(guid)->Data2 = 0x6d9a;\
(guid)->Data3 = 0x11d1;\
(guid)->Data4[0] = 0xa2;\
(guid)->Data4[1] = 0x1a;\
(guid)->Data4[2] = 0x00;\
(guid)->Data4[3] = 0xa0;\
(guid)->Data4[4] = 0xc9;\
(guid)->Data4[5] = 0x22;\
(guid)->Data4[6] = 0x31;\
(guid)->Data4[7] = 0x96;\
}
#define EXTRACT_MMREG_PID(guid)\
(USHORT)((guid)->Data1 - 0xe36dc2ac)
#define DEFINE_MMREG_PID_GUID(id)\
0xe36dc2ac+(USHORT)(id), 0x6d9a, 0x11d1, 0xa2, 0x1a, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96
#define IS_COMPATIBLE_MMREG_PID(guid)\
(((guid)->Data1 >= 0xe36dc2ac) &&\
((guid)->Data1 < 0xe36dc2ac + 0xffff) &&\
((guid)->Data2 == 0x6d9a) &&\
((guid)->Data3 == 0x11d1) &&\
((guid)->Data4[0] == 0xa2) &&\
((guid)->Data4[1] == 0x1a) &&\
((guid)->Data4[2] == 0x00) &&\
((guid)->Data4[3] == 0xa0) &&\
((guid)->Data4[4] == 0xc9) &&\
((guid)->Data4[5] == 0x22) &&\
((guid)->Data4[6] == 0x31) &&\
((guid)->Data4[7] == 0x96))
#endif // !defined(INIT_MMREG_PID)
#endif // GUID_DEFINED
/* 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 */
#define MM_MSFT_VMDMS_LINE_WAVEIN 80 /* Voice Modem Serial Line Wave Input */
#define MM_MSFT_VMDMS_LINE_WAVEOUT 81 /* Voice Modem Serial Line Wave Output */
#define MM_MSFT_VMDMS_HANDSET_WAVEIN 82 /* Voice Modem Serial Handset Wave Input */
#define MM_MSFT_VMDMS_HANDSET_WAVEOUT 83 /* Voice Modem Serial Handset Wave Output */
#define MM_MSFT_VMDMW_LINE_WAVEIN 84 /* Voice Modem Wrapper Line Wave Input */
#define MM_MSFT_VMDMW_LINE_WAVEOUT 85 /* Voice Modem Wrapper Line Wave Output */
#define MM_MSFT_VMDMW_HANDSET_WAVEIN 86 /* Voice Modem Wrapper Handset Wave Input */
#define MM_MSFT_VMDMW_HANDSET_WAVEOUT 87 /* Voice Modem Wrapper Handset Wave Output */
#define MM_MSFT_VMDMW_MIXER 88 /* Voice Modem Wrapper Mixer */
#define MM_MSFT_VMDM_GAME_WAVEOUT 89 /* Voice Modem Game Compatible Wave Device */
#define MM_MSFT_VMDM_GAME_WAVEIN 90 /* Voice Modem Game Compatible Wave Device */
#define MM_MSFT_ACM_MSNAUDIO 91
#define MM_MSFT_ACM_MSG723 92
#define MM_MSFT_ACM_MSRT24 93
#define MM_MSFT_WDMAUDIO_WAVEOUT 100 /* Generic id for WDM Audio drivers */
#define MM_MSFT_WDMAUDIO_WAVEIN 101 /* Generic id for WDM Audio drivers */
#define MM_MSFT_WDMAUDIO_MIDIOUT 102 /* Generic id for WDM Audio drivers */
#define MM_MSFT_WDMAUDIO_MIDIIN 103 /* Generic id for WDM Audio drivers */
#define MM_MSFT_WDMAUDIO_MIXER 104 /* Generic id for WDM Audio drivers */
#define MM_MSFT_WDMAUDIO_AUX 105 /* Generic id for WDM Audio drivers */
/* 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_PHNBLST_WAVEIN 5
#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_PHNBLST_WAVEOUT 105
#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_MIDI_AWE32 303
#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_CYRIX product IDs */
#define MM_CYRIX_XASYNTH 1
#define MM_CYRIX_XAMIDIIN 2
#define MM_CYRIX_XAMIDIOUT 3
#define MM_CYRIX_XAWAVEIN 4
#define MM_CYRIX_XAWAVEOUT 5
#define MM_CYRIX_XAAUX 6
#define MM_CYRIX_XAMIXER 7
/* MM_PHILIPS_SPEECH_PROCESSING products IDs */
#define MM_PHILIPS_ACM_LPCBB 1
/* MM_NETXL product IDs */
#define MM_NETXL_XLVIDEO 1
/* MM_ZYXEL product IDs */
#define MM_ZYXEL_ACM_ADPCM 1
/* MM_AARDVARK product IDs */
#define MM_AARDVARK_STUDIO12_WAVEOUT 1
#define MM_AARDVARK_STUDIO12_WAVEIN 2
#define MM_AARDVARK_STUDIO88_WAVEOUT 3
#define MM_AARDVARK_STUDIO88_WAVEIN 4
/* MM_BINTEC product IDs */
#define MM_BINTEC_TAPI_WAVE 1
/* MM_HEWLETT_PACKARD product IDs */
#define MM_HEWLETT_PACKARD_CU_CODEC 1
/* MM_MITEL product IDs */
#define MM_MITEL_TALKTO_LINE_WAVEOUT 100
#define MM_MITEL_TALKTO_LINE_WAVEIN 101
#define MM_MITEL_TALKTO_HANDSET_WAVEOUT 102
#define MM_MITEL_TALKTO_HANDSET_WAVEIN 103
#define MM_MITEL_TALKTO_BRIDGED_WAVEOUT 104
#define MM_MITEL_TALKTO_BRIDGED_WAVEIN 105
#define MM_MITEL_MPA_HANDSET_WAVEOUT 200
#define MM_MITEL_MPA_HANDSET_WAVEIN 201
#define MM_MITEL_MPA_HANDSFREE_WAVEOUT 202
#define MM_MITEL_MPA_HANDSFREE_WAVEIN 203
#define MM_MITEL_MPA_LINE1_WAVEOUT 204
#define MM_MITEL_MPA_LINE1_WAVEIN 205
#define MM_MITEL_MPA_LINE2_WAVEOUT 206
#define MM_MITEL_MPA_LINE2_WAVEIN 207
#define MM_MITEL_MEDIAPATH_WAVEOUT 300
#define MM_MITEL_MEDIAPATH_WAVEIN 301
/* MM_SNI product IDs */
#define MM_SNI_ACM_G721 1
/* MM_EMU product IDs */
#define MM_EMU_APSSYNTH 1
#define MM_EMU_APSMIDIIN 2
#define MM_EMU_APSMIDIOUT 3
#define MM_EMU_APSWAVEIN 4
#define MM_EMU_APSWAVEOUT 5
/* 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_TURTLE_BEACH product IDs */
#define MM_TBS_TROPEZ_WAVEIN 37
#define MM_TBS_TROPEZ_WAVEOUT 38
#define MM_TBS_TROPEZ_AUX1 39
#define MM_TBS_TROPEZ_AUX2 40
#define MM_TBS_TROPEZ_LINE 41
/* 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 */
#define MM_IBM_THINKPAD200 17
#define MM_IBM_MWAVE_WAVEIN 18
#define MM_IBM_MWAVE_WAVEOUT 19
#define MM_IBM_MWAVE_MIXER 20
#define MM_IBM_MWAVE_MIDIIN 21
#define MM_IBM_MWAVE_MIDIOUT 22
#define MM_IBM_MWAVE_AUX 23
#define MM_IBM_WC_MIDIOUT 30
#define MM_IBM_WC_WAVEOUT 31
#define MM_IBM_WC_MIXEROUT 33
/* MM_VOCALTEC product IDs */
#define MM_VOCALTEC_WAVEOUT 1
#define MM_VOCALTEC_WAVEIN 2
/* MM_ROLAND product IDs */
#define MM_ROLAND_RAP10_MIDIOUT 10 /* MM_ROLAND_RAP10 */
#define MM_ROLAND_RAP10_MIDIIN 11 /* MM_ROLAND_RAP10 */
#define MM_ROLAND_RAP10_SYNTH 12 /* MM_ROLAND_RAP10 */
#define MM_ROLAND_RAP10_WAVEOUT 13 /* MM_ROLAND_RAP10 */
#define MM_ROLAND_RAP10_WAVEIN 14 /* MM_ROLAND_RAP10 */
#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
#define MM_ROLAND_SCP_MIDIOUT 38
#define MM_ROLAND_SCP_MIDIIN 39
#define MM_ROLAND_SCP_WAVEOUT 40
#define MM_ROLAND_SCP_WAVEIN 41
#define MM_ROLAND_SCP_MIXER 42
#define MM_ROLAND_SCP_AUX 48
/* 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_NEC product IDs */
#define MM_NEC_73_86_SYNTH 5
#define MM_NEC_73_86_WAVEOUT 6
#define MM_NEC_73_86_WAVEIN 7
#define MM_NEC_26_SYNTH 9
#define MM_NEC_MPU401_MIDIOUT 10
#define MM_NEC_MPU401_MIDIIN 11
#define MM_NEC_JOYSTICK 12
/* 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
/* MM_ANTEX product IDs */
#define MM_ANTEX_SX12_WAVEIN 1
#define MM_ANTEX_SX12_WAVEOUT 2
#define MM_ANTEX_SX15_WAVEIN 3
#define MM_ANTEX_SX15_WAVEOUT 4
#define MM_ANTEX_VP625_WAVEIN 5
#define MM_ANTEX_VP625_WAVEOUT 6
#define MM_ANTEX_AUDIOPORT22_WAVEIN 7
#define MM_ANTEX_AUDIOPORT22_WAVEOUT 8
#define MM_ANTEX_AUDIOPORT22_FEEDTHRU 9
/* MM_INTEL product IDs */
#define MM_INTELOPD_WAVEIN 1 /* HID2 WaveAudio Driver */
#define MM_INTELOPD_WAVEOUT 101 /* HID2 */
#define MM_INTELOPD_AUX 401 /* HID2 for mixing */
#define MM_INTEL_NSPMODEMLINEIN 501
#define MM_INTEL_NSPMODEMLINEOUT 502
/* MM_VAL product IDs */
#define MM_VAL_MICROKEY_AP_WAVEIN 1
#define MM_VAL_MICROKEY_AP_WAVEOUT 2
/* 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
#define MM_YAMAHA_SERIAL_MIDIOUT 0x07
#define MM_YAMAHA_SERIAL_MIDIIN 0x08
#define MM_YAMAHA_OPL3SA_WAVEOUT 0x10
#define MM_YAMAHA_OPL3SA_WAVEIN 0x11
#define MM_YAMAHA_OPL3SA_FMSYNTH 0x12
#define MM_YAMAHA_OPL3SA_YSYNTH 0x13
#define MM_YAMAHA_OPL3SA_MIDIOUT 0x14
#define MM_YAMAHA_OPL3SA_MIDIIN 0x15
#define MM_YAMAHA_OPL3SA_MIXER 0x17
#define MM_YAMAHA_OPL3SA_JOYSTICK 0x18
#define MM_YAMAHA_YMF724LEG_MIDIOUT 0x19
#define MM_YAMAHA_YMF724LEG_MIDIIN 0x1a
#define MM_YAMAHA_YMF724_WAVEOUT 0x1b
#define MM_YAMAHA_YMF724_WAVEIN 0x1c
#define MM_YAMAHA_YMF724_MIDIOUT 0x1d
#define MM_YAMAHA_YMF724_AUX 0x1e
#define MM_YAMAHA_YMF724_MIXER 0x1f
#define MM_YAMAHA_YMF724LEG_FMSYNTH 0x20
#define MM_YAMAHA_YMF724LEG_MIXER 0x21
#define MM_YAMAHA_SXG_MIDIOUT 0x22
#define MM_YAMAHA_SXG_WAVEOUT 0x23
#define MM_YAMAHA_SXG_MIXER 0x24
#define MM_YAMAHA_ACXG_WAVEIN 0x25
#define MM_YAMAHA_ACXG_WAVEOUT 0x26
#define MM_YAMAHA_ACXG_MIDIOUT 0x27
#define MM_YAMAHA_ACXG_MIXER 0x28
#define MM_YAMAHA_ACXG_AUX 0x29
/* MM_EVEREX product IDs */
#define MM_EVEREX_CARRIER 1
/* MM_ECHO product IDs */
#define MM_ECHO_SYNTH 1
#define MM_ECHO_WAVEOUT 2
#define MM_ECHO_WAVEIN 3
#define MM_ECHO_MIDIOUT 4
#define MM_ECHO_MIDIIN 5
#define MM_ECHO_AUX 6
/* 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
#define MM_SIERRA_QUARTET_WAVEIN 0x50
#define MM_SIERRA_QUARTET_WAVEOUT 0x51
#define MM_SIERRA_QUARTET_MIDIIN 0x52
#define MM_SIERRA_QUARTET_MIDIOUT 0x53
#define MM_SIERRA_QUARTET_SYNTH 0x54
#define MM_SIERRA_QUARTET_AUX_CD 0x55
#define MM_SIERRA_QUARTET_AUX_LINE 0x56
#define MM_SIERRA_QUARTET_AUX_MODEM 0x57
#define MM_SIERRA_QUARTET_MIXER 0x58
/* MM_CAT product IDs */
#define MM_CAT_WAVEOUT 1
/* MM_DSP_GROUP product IDs */
#define MM_DSP_GROUP_TRUESPEECH 1
/* MM_MELABS product IDs */
#define MM_MELABS_MIDI2GO 1
/* 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
#define MM_ESS_MIXER 0x07
#define MM_ESS_AUX_CD 0x08
#define MM_ESS_MPU401_MIDIOUT 0x09
#define MM_ESS_MPU401_MIDIIN 0x0A
#define MM_ESS_ES488_WAVEOUT 0x10
#define MM_ESS_ES488_WAVEIN 0x11
#define MM_ESS_ES488_MIXER 0x12
#define MM_ESS_ES688_WAVEOUT 0x13
#define MM_ESS_ES688_WAVEIN 0x14
#define MM_ESS_ES688_MIXER 0x15
#define MM_ESS_ES1488_WAVEOUT 0x16
#define MM_ESS_ES1488_WAVEIN 0x17
#define MM_ESS_ES1488_MIXER 0x18
#define MM_ESS_ES1688_WAVEOUT 0x19
#define MM_ESS_ES1688_WAVEIN 0x1A
#define MM_ESS_ES1688_MIXER 0x1B
#define MM_ESS_ES1788_WAVEOUT 0x1C
#define MM_ESS_ES1788_WAVEIN 0x1D
#define MM_ESS_ES1788_MIXER 0x1E
#define MM_ESS_ES1888_WAVEOUT 0x1F
#define MM_ESS_ES1888_WAVEIN 0x20
#define MM_ESS_ES1888_MIXER 0x21
#define MM_ESS_ES1868_WAVEOUT 0x22
#define MM_ESS_ES1868_WAVEIN 0x23
#define MM_ESS_ES1868_MIXER 0x24
#define MM_ESS_ES1878_WAVEOUT 0x25
#define MM_ESS_ES1878_WAVEIN 0x26
#define MM_ESS_ES1878_MIXER 0x27
/* MM_CANOPUS product IDs */
#define MM_CANOPUS_ACM_DVREX 1
/* MM_EPSON 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_MIXER 21
#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_NOVA16_WAVEIN 71
#define MM_AZTECH_NOVA16_WAVEOUT 72
#define MM_AZTECH_NOVA16_MIXER 73
#define MM_AZTECH_WASH16_WAVEIN 74
#define MM_AZTECH_WASH16_WAVEOUT 75
#define MM_AZTECH_WASH16_MIXER 76
#define MM_AZTECH_AUX_CD 401
#define MM_AZTECH_AUX_LINE 402
#define MM_AZTECH_AUX_MIC 403
#define MM_AZTECH_AUX 404
/* 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
#define MM_KORG_1212IO_MSWAVEIN 3
#define MM_KORG_1212IO_MSWAVEOUT 4
/* 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
#define MM_ICS_WAVEDEC_SB_WAVEOUT 6
#define MM_ICS_WAVEDEC_SB_WAVEIN 7
#define MM_ICS_WAVEDEC_SB_FM_MIDIOUT 8
#define MM_ICS_WAVEDEC_SB_MPU401_MIDIOUT 9
#define MM_ICS_WAVEDEC_SB_MPU401_MIDIIN 10
#define MM_ICS_WAVEDEC_SB_MIXER 11
#define MM_ICS_WAVEDEC_SB_AUX 12
#define MM_ICS_2115_LITE_MIDIOUT 13
#define MM_ICS_2120_LITE_MIDIOUT 14
/* 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_AST product IDs */
#define MM_AST_MODEMWAVE_WAVEIN 13
#define MM_AST_MODEMWAVE_WAVEOUT 14
/* MM_WILLOWPOND product IDs */
#define MM_WILLOWPOND_FMSYNTH_STEREO 20
#define MM_WILLOWPOND_MPU401 21
#define MM_WILLOWPOND_SNDPORT_WAVEIN 100
#define MM_WILLOWPOND_SNDPORT_WAVEOUT 101
#define MM_WILLOWPOND_SNDPORT_MIXER 102
#define MM_WILLOWPOND_SNDPORT_AUX 103
#define MM_WILLOWPOND_PH_WAVEIN 104
#define MM_WILLOWPOND_PH_WAVEOUT 105
#define MM_WILLOWPOND_PH_MIXER 106
#define MM_WILLOWPOND_PH_AUX 107
#define MM_WILLOPOND_SNDCOMM_WAVEIN 108
#define MM_WILLOWPOND_SNDCOMM_WAVEOUT 109
#define MM_WILLOWPOND_SNDCOMM_MIXER 110