home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 June / PCFJune.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / mmreg.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  145.3 KB  |  3,233 lines

  1. /*++
  2.  
  3. Copyright (C) Microsoft Corporation, 1991 - 1999
  4.  
  5. Module Name:
  6.  
  7.     mmreg.h
  8.  
  9. Abstract:
  10.  
  11.     Multimedia Registration
  12.  
  13. Revision History:
  14.  
  15. --*/
  16.  
  17. // Define the following to skip definitions
  18. //
  19. // NOMMIDS      Multimedia IDs are not defined
  20. // NONEWWAVE    No new waveform types are defined except WAVEFORMATEX
  21. // NONEWRIFF    No new RIFF forms are defined
  22. // NOJPEGDIB    No JPEG DIB definitions
  23. // NONEWIC      No new Image Compressor types are defined
  24. // NOBITMAP     No extended bitmap info header definition
  25.  
  26. #ifndef _INC_MMREG
  27. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  28. /* use version number to verify compatibility */
  29. #define _INC_MMREG     157      // version * 100 + revision
  30.  
  31. #if _MSC_VER > 1000
  32. #pragma once
  33. #endif
  34.  
  35. #if !defined( RC_INVOKED ) && defined( _MSC_VER )
  36. #if (_MSC_VER <= 800)
  37. #pragma pack(1)
  38. #else
  39. #include "pshpack1.h"   /* Assume byte packing throughout */
  40. #endif
  41. #endif  /* RC_INVOKED */
  42.  
  43. #ifdef __cplusplus
  44. extern "C" {            /* Assume C declarations for C++ */
  45. #endif  /* __cplusplus */
  46.  
  47. #ifndef NOMMIDS
  48.  
  49. /* manufacturer IDs */
  50. #ifndef MM_MICROSOFT
  51. #define   MM_MICROSOFT                  1           /* Microsoft Corporation */
  52. #endif
  53.  
  54. #define   MM_CREATIVE                   2           /* Creative Labs, Inc. */
  55. #define   MM_MEDIAVISION                3           /* Media Vision, Inc. */
  56. #define   MM_FUJITSU                    4           /* Fujitsu Corp. */
  57. #define   MM_PRAGMATRAX                 5           /* PRAGMATRAX Software */
  58. #define   MM_CYRIX                      6           /* Cyrix Corporation */
  59. #define   MM_PHILIPS_SPEECH_PROCESSING  7           /* Philips Speech Processing */
  60. #define   MM_NETXL                      8           /* NetXL, Inc. */
  61. #define   MM_ZYXEL                      9           /* ZyXEL Communications, Inc. */
  62. #define   MM_BECUBED                    10          /* BeCubed Software Inc. */
  63. #define   MM_AARDVARK                   11          /* Aardvark Computer Systems, Inc. */
  64. #define   MM_BINTEC                     12          /* Bin Tec Communications GmbH */
  65. #define   MM_HEWLETT_PACKARD            13          /* Hewlett-Packard Company */
  66. #define   MM_ACULAB                     14          /* Aculab plc */
  67. #define   MM_FAITH                      15          /* Faith,Inc. */
  68. #define   MM_MITEL                      16          /* Mitel Corporation */
  69. #define   MM_QUANTUM3D                  17          /* Quantum3D, Inc. */
  70. #define   MM_SNI                        18          /* Siemens-Nixdorf */
  71. #define   MM_EMU                        19          /* E-mu Systems, Inc. */
  72. #define   MM_ARTISOFT                   20          /* Artisoft, Inc. */
  73. #define   MM_TURTLE_BEACH               21          /* Turtle Beach, Inc. */
  74. #define   MM_IBM                        22          /* IBM Corporation */
  75. #define   MM_VOCALTEC                   23          /* Vocaltec Ltd. */
  76. #define   MM_ROLAND                     24          /* Roland */
  77. #define   MM_DSP_SOLUTIONS              25          /* DSP Solutions, Inc. */
  78. #define   MM_NEC                        26          /* NEC */
  79. #define   MM_ATI                        27          /* ATI Technologies Inc. */
  80. #define   MM_WANGLABS                   28          /* Wang Laboratories, Inc. */
  81. #define   MM_TANDY                      29          /* Tandy Corporation */
  82. #define   MM_VOYETRA                    30          /* Voyetra */
  83. #define   MM_ANTEX                      31          /* Antex Electronics Corporation */
  84. #define   MM_ICL_PS                     32          /* ICL Personal Systems */
  85. #define   MM_INTEL                      33          /* Intel Corporation */
  86. #define   MM_GRAVIS                     34          /* Advanced Gravis */
  87. #define   MM_VAL                        35          /* Video Associates Labs, Inc. */
  88. #define   MM_INTERACTIVE                36          /* InterActive Inc. */
  89. #define   MM_YAMAHA                     37          /* Yamaha Corporation of America */
  90. #define   MM_EVEREX                     38          /* Everex Systems, Inc. */
  91. #define   MM_ECHO                       39          /* Echo Speech Corporation */
  92. #define   MM_SIERRA                     40          /* Sierra Semiconductor Corp */
  93. #define   MM_CAT                        41          /* Computer Aided Technologies */
  94. #define   MM_APPS                       42          /* APPS Software International */
  95. #define   MM_DSP_GROUP                  43          /* DSP Group, Inc. */
  96. #define   MM_MELABS                     44          /* microEngineering Labs */
  97. #define   MM_COMPUTER_FRIENDS           45          /* Computer Friends, Inc. */
  98. #define   MM_ESS                        46          /* ESS Technology */
  99. #define   MM_AUDIOFILE                  47          /* Audio, Inc. */
  100. #define   MM_MOTOROLA                   48          /* Motorola, Inc. */
  101. #define   MM_CANOPUS                    49          /* Canopus, co., Ltd. */
  102. #define   MM_EPSON                      50          /* Seiko Epson Corporation */
  103. #define   MM_TRUEVISION                 51          /* Truevision */
  104. #define   MM_AZTECH                     52          /* Aztech Labs, Inc. */
  105. #define   MM_VIDEOLOGIC                 53          /* Videologic */
  106. #define   MM_SCALACS                    54          /* SCALACS */
  107. #define   MM_KORG                       55          /* Korg Inc. */
  108. #define   MM_APT                        56          /* Audio Processing Technology */
  109. #define   MM_ICS                        57          /* Integrated Circuit Systems, Inc. */
  110. #define   MM_ITERATEDSYS                58          /* Iterated Systems, Inc. */
  111. #define   MM_METHEUS                    59          /* Metheus */
  112. #define   MM_LOGITECH                   60          /* Logitech, Inc. */
  113. #define   MM_WINNOV                     61          /* Winnov, Inc. */
  114. #define   MM_NCR                        62          /* NCR Corporation */
  115. #define   MM_EXAN                       63          /* EXAN */
  116. #define   MM_AST                        64          /* AST Research Inc. */
  117. #define   MM_WILLOWPOND                 65          /* Willow Pond Corporation */
  118. #define   MM_SONICFOUNDRY               66          /* Sonic Foundry */
  119. #define   MM_VITEC                      67          /* Vitec Multimedia */
  120. #define   MM_MOSCOM                     68          /* MOSCOM Corporation */
  121. #define   MM_SILICONSOFT                69          /* Silicon Soft, Inc. */
  122. #define   MM_TERRATEC                   70          /* TerraTec Electronic GmbH */
  123. #define   MM_MEDIASONIC                 71          /* MediaSonic Ltd. */
  124. #define   MM_SANYO                      72          /* SANYO Electric Co., Ltd. */
  125. #define   MM_SUPERMAC                   73          /* Supermac */
  126. #define   MM_AUDIOPT                    74          /* Audio Processing Technology */
  127. #define   MM_NOGATECH                   75          /* NOGATECH Ltd. */
  128. #define   MM_SPEECHCOMP                 76          /* Speech Compression */
  129. #define   MM_AHEAD                      77          /* Ahead, Inc. */
  130. #define   MM_DOLBY                      78          /* Dolby Laboratories */
  131. #define   MM_OKI                        79          /* OKI */
  132. #define   MM_AURAVISION                 80          /* AuraVision Corporation */
  133. #define   MM_OLIVETTI                   81          /* Ing C. Olivetti & C., S.p.A. */
  134. #define   MM_IOMAGIC                    82          /* I/O Magic Corporation */
  135. #define   MM_MATSUSHITA                 83          /* Matsushita Electric Industrial Co., Ltd. */
  136. #define   MM_CONTROLRES                 84          /* Control Resources Limited */
  137. #define   MM_XEBEC                      85          /* Xebec Multimedia Solutions Limited */
  138. #define   MM_NEWMEDIA                   86          /* New Media Corporation */
  139. #define   MM_NMS                        87          /* Natural MicroSystems */
  140. #define   MM_LYRRUS                     88          /* Lyrrus Inc. */
  141. #define   MM_COMPUSIC                   89          /* Compusic */
  142. #define   MM_OPTI                       90          /* OPTi Computers Inc. */
  143. #define   MM_ADLACC                     91          /* Adlib Accessories Inc. */
  144. #define   MM_COMPAQ                     92          /* Compaq Computer Corp. */
  145. #define   MM_DIALOGIC                   93          /* Dialogic Corporation */
  146. #define   MM_INSOFT                     94          /* InSoft, Inc. */
  147. #define   MM_MPTUS                      95          /* M.P. Technologies, Inc. */
  148. #define   MM_WEITEK                     96          /* Weitek */
  149. #define   MM_LERNOUT_AND_HAUSPIE        97          /* Lernout & Hauspie */
  150. #define   MM_QCIAR                      98          /* Quanta Computer Inc. */
  151. #define   MM_APPLE                      99          /* Apple Computer, Inc. */
  152. #define   MM_DIGITAL                    100         /* Digital Equipment Corporation */
  153. #define   MM_MOTU                       101         /* Mark of the Unicorn */
  154. #define   MM_WORKBIT                    102         /* Workbit Corporation */
  155. #define   MM_OSITECH                    103         /* Ositech Communications Inc. */
  156. #define   MM_MIRO                       104         /* miro Computer Products AG */
  157. #define   MM_CIRRUSLOGIC                105         /* Cirrus Logic */
  158. #define   MM_ISOLUTION                  106         /* ISOLUTION  B.V. */
  159. #define   MM_HORIZONS                   107         /* Horizons Technology, Inc. */
  160. #define   MM_CONCEPTS                   108         /* Computer Concepts Ltd. */
  161. #define   MM_VTG                        109         /* Voice Technologies Group, Inc. */
  162. #define   MM_RADIUS                     110         /* Radius */
  163. #define   MM_ROCKWELL                   111         /* Rockwell International */
  164. #define   MM_XYZ                        112         /* Co. XYZ for testing */
  165. #define   MM_OPCODE                     113         /* Opcode Systems */
  166. #define   MM_VOXWARE                    114         /* Voxware Inc. */
  167. #define   MM_NORTHERN_TELECOM           115         /* Northern Telecom Limited */
  168. #define   MM_APICOM                     116         /* APICOM */
  169. #define   MM_GRANDE                     117         /* Grande Software */
  170. #define   MM_ADDX                       118         /* ADDX */
  171. #define   MM_WILDCAT                    119         /* Wildcat Canyon Software */
  172. #define   MM_RHETOREX                   120         /* Rhetorex Inc. */
  173. #define   MM_BROOKTREE                  121         /* Brooktree Corporation */
  174. #define   MM_ENSONIQ                    125         /* ENSONIQ Corporation */
  175. #define   MM_FAST                       126         /* FAST Multimedia AG */
  176. #define   MM_NVIDIA                     127         /* NVidia Corporation */
  177. #define   MM_OKSORI                     128         /* OKSORI Co., Ltd. */
  178. #define   MM_DIACOUSTICS                129         /* DiAcoustics, Inc. */
  179. #define   MM_GULBRANSEN                 130         /* Gulbransen, Inc. */
  180. #define   MM_KAY_ELEMETRICS             131         /* Kay Elemetrics, Inc. */
  181. #define   MM_CRYSTAL                    132         /* Crystal Semiconductor Corporation */
  182. #define   MM_SPLASH_STUDIOS             133         /* Splash Studios */
  183. #define   MM_QUARTERDECK                134         /* Quarterdeck Corporation */
  184. #define   MM_TDK                        135         /* TDK Corporation */
  185. #define   MM_DIGITAL_AUDIO_LABS         136         /* Digital Audio Labs, Inc. */
  186. #define   MM_SEERSYS                    137         /* Seer Systems, Inc. */
  187. #define   MM_PICTURETEL                 138         /* PictureTel Corporation */
  188. #define   MM_ATT_MICROELECTRONICS       139         /* AT&T Microelectronics */
  189. #define   MM_OSPREY                     140         /* Osprey Technologies, Inc. */
  190. #define   MM_MEDIATRIX                  141         /* Mediatrix Peripherals */
  191. #define   MM_SOUNDESIGNS                142         /* SounDesignS M.C.S. Ltd. */
  192. #define   MM_ALDIGITAL                  143         /* A.L. Digital Ltd. */
  193. #define   MM_SPECTRUM_SIGNAL_PROCESSING 144         /* Spectrum Signal Processing, Inc. */
  194. #define   MM_ECS                        145         /* Electronic Courseware Systems, Inc. */
  195. #define   MM_AMD                        146         /* AMD */
  196. #define   MM_COREDYNAMICS               147         /* Core Dynamics */
  197. #define   MM_CANAM                      148         /* CANAM Computers */
  198. #define   MM_SOFTSOUND                  149         /* Softsound, Ltd. */
  199. #define   MM_NORRIS                     150         /* Norris Communications, Inc. */
  200. #define   MM_DDD                        151         /* Danka Data Devices */
  201. #define   MM_EUPHONICS                  152         /* EuPhonics */
  202. #define   MM_PRECEPT                    153         /* Precept Software, Inc. */
  203. #define   MM_CRYSTAL_NET                154         /* Crystal Net Corporation */
  204. #define   MM_CHROMATIC                  155         /* Chromatic Research, Inc. */
  205. #define   MM_VOICEINFO                  156         /* Voice Information Systems, Inc. */
  206. #define   MM_VIENNASYS                  157         /* Vienna Systems */
  207. #define   MM_CONNECTIX                  158         /* Connectix Corporation */
  208. #define   MM_GADGETLABS                 159         /* Gadget Labs LLC */
  209. #define   MM_FRONTIER                   160         /* Frontier Design Group LLC */
  210. #define   MM_VIONA                      161         /* Viona Development GmbH */
  211. #define   MM_CASIO                      162         /* Casio Computer Co., LTD */
  212. #define   MM_DIAMONDMM                  163         /* Diamond Multimedia */
  213. #define   MM_S3                         164         /* S3 */
  214. #define   MM_DVISION                    165         /* D-Vision Systems, Inc. */
  215. #define   MM_NETSCAPE                   166         /* Netscape Communications */
  216. #define   MM_SOUNDSPACE                 167         /* Soundspace Audio */
  217. #define   MM_VANKOEVERING               168         /* VanKoevering Company */
  218. #define   MM_QTEAM                      169         /* Q-Team */
  219. #define   MM_ZEFIRO                     170         /* Zefiro Acoustics */
  220. #define   MM_STUDER                     171         /* Studer Professional Audio AG */
  221. #define   MM_FRAUNHOFER_IIS             172         /* Fraunhofer IIS */
  222. #define   MM_QUICKNET                   173         /* Quicknet Technologies */
  223. #define   MM_ALARIS                     174         /* Alaris, Inc. */
  224. #define   MM_SICRESOURCE                175         /* SIC Resource Inc. */
  225. #define   MM_NEOMAGIC                   176         /* NeoMagic Corporation */
  226. #define   MM_MERGING_TECHNOLOGIES       177         /* Merging Technologies S.A. */
  227. #define   MM_XIRLINK                    178         /* Xirlink, Inc. */
  228. #define   MM_COLORGRAPH                 179         /* Colorgraph (UK) Ltd */
  229. #define   MM_OTI                        180         /* Oak Technology, Inc. */
  230. #define   MM_AUREAL                     181         /* Aureal Semiconductor */
  231. #define   MM_VIVO                       182         /* Vivo Software */
  232. #define   MM_SHARP                      183         /* Sharp */
  233. #define   MM_LUCENT                     184         /* Lucent Technologies */
  234. #define   MM_ATT                        185         /* AT&T Labs, Inc. */
  235. #define   MM_SUNCOM                     186         /* Sun Communications, Inc. */
  236. #define   MM_SORVIS                     187         /* Sorenson Vision */
  237. #define   MM_INVISION                   188         /* InVision Interactive */
  238. #define   MM_BERKOM                     189         /* Deutsche Telekom Berkom GmbH */
  239. #define   MM_MARIAN                     190         /* Marian GbR Leipzig */
  240. #define   MM_DPSINC                     191         /* Digital Processing Systems, Inc. */
  241. #define   MM_BCB                        192         /* BCB Holdings Inc. */
  242. #define   MM_MOTIONPIXELS               193         /* Motion Pixels */
  243. #define   MM_QDESIGN                    194         /* QDesign Corporation */
  244. #define   MM_NMP                        195         /* Nokia Mobile Phones */
  245. #define   MM_DATAFUSION                 196         /* DataFusion Systems (Pty) (Ltd) */
  246. #define   MM_DUCK                       197         /* The Duck Corporation */
  247. #define   MM_FTR                        198         /* Future Technology Resources Pty Ltd */
  248. #define   MM_BERCOS                     199         /* BERCOS GmbH */
  249. #define   MM_ONLIVE                     200         /* OnLive! Technologies, Inc. */
  250. #define   MM_SIEMENS_SBC                201         /* Siemens Business Communications Systems */
  251. #define   MM_TERALOGIC                  202         /* TeraLogic, Inc. */
  252. #define   MM_PHONET                     203         /* PhoNet Communications Ltd. */
  253. #define   MM_WINBOND                    204         /* Winbond Electronics Corp */
  254. #define   MM_VIRTUALMUSIC               205         /* Virtual Music, Inc. */
  255. #define   MM_ENET                       206         /* e-Net, Inc. */
  256. #define   MM_GUILLEMOT                  207         /* Guillemot International */
  257. #define   MM_EMAGIC                     208         /* Emagic Soft- und Hardware GmbH */
  258. #define   MM_MWM                        209         /* MWM Acoustics LLC */
  259. #define   MM_PACIFICRESEARCH            210         /* Pacific Research and Engineering Corporation */
  260. #define   MM_SIPROLAB                   211         /* Sipro Lab Telecom Inc. */
  261. #define   MM_LYNX                       212         /* Lynx Studio Technology, Inc. */
  262. #define   MM_SPECTRUM_PRODUCTIONS       213         /* Spectrum Productions */
  263. #define   MM_DICTAPHONE                 214         /* Dictaphone Corporation */
  264. #define   MM_QUALCOMM                   215         /* QUALCOMM, Inc. */
  265. #define   MM_RZS                        216         /* Ring Zero Systems, Inc */
  266. #define   MM_AUDIOSCIENCE               217         /* AudioScience Inc. */
  267. #define   MM_PINNACLE                   218         /* Pinnacle Systems, Inc. */
  268. #define   MM_EES                        219         /* EES Technik fⁿr Musik GmbH */
  269. #define   MM_HAFTMANN                   220         /* haftmann#software */
  270. #define   MM_LUCID                      221         /* Lucid Technology, Symetrix Inc. */
  271. #define   MM_HEADSPACE                  222         /* Headspace, Inc */
  272. #define   MM_UNISYS                     223         /* UNISYS CORPORATION */
  273. #define   MM_LUMINOSITI                 224         /* Luminositi, Inc. */
  274. #define   MM_ACTIVEVOICE                225         /* ACTIVE VOICE CORPORATION */
  275. #define   MM_DTS                        226         /* Digital Theater Systems, Inc. */
  276. #define   MM_DIGIGRAM                   227         /* DIGIGRAM */
  277. #define   MM_SOFTLAB_NSK                228         /* Softlab-Nsk */
  278. #define   MM_FORTEMEDIA                 229         /* ForteMedia, Inc */
  279. #define   MM_SONORUS                    230         /* Sonorus, Inc. */
  280. #define   MM_ARRAY                      231         /* Array Microsystems, Inc. */
  281. #define   MM_DATARAN                    232         /* Data Translation, Inc. */
  282. #define   MM_I_LINK                     233         /* I-link Worldwide */
  283. #define   MM_SELSIUS_SYSTEMS            234         /* Selsius Systems Inc. */
  284. #define   MM_ADMOS                      235         /* AdMOS Technology, Inc. */
  285. #define   MM_LEXICON                    236         /* Lexicon Inc. */
  286. #define   MM_SGI                        237         /* Silicon Graphics Inc. */
  287. #define   MM_IPI                        238         /* Interactive Product Inc. */
  288. #define   MM_ICE                        239         /* IC Ensemble, Inc. */
  289. #define   MM_VQST                       240         /* ViewQuest Technologies Inc. */
  290. #define   MM_ETEK                       241         /* eTEK Labs Inc. */
  291. #define   MM_CS                         242         /* Consistent Software */
  292. #define   MM_ALESIS                     243         /* Alesis Studio Electronics */
  293. #define   MM_INTERNET                   244         /* INTERNET Corporation */
  294. #define   MM_SONY                       245         /* Sony Corporation */
  295. #define   MM_HYPERACTIVE                246         /* Hyperactive Audio Systems, Inc. */
  296. #define   MM_UHER_INFORMATIC            247         /* UHER informatic GmbH */
  297. #define   MM_SYDEC_NV                   248         /* Sydec NV */
  298. #define   MM_FLEXION                    249         /* Flexion Systems Ltd. */
  299. #define   MM_VIA                        250         /* Via Technologies, Inc. */
  300. #define   MM_MICRONAS                   251         /* Micronas Semiconductors, Inc. */
  301. #define   MM_ANALOGDEVICES              252         /* Analog Devices, Inc. */
  302. #define   MM_HP                         253         /* Hewlett Packard Company */
  303. #define   MM_MATROX_DIV                 254         /* Matrox */
  304. #define   MM_QUICKAUDIO                 255         /* Quick Audio, GbR */
  305. #define   MM_YOUCOM                     256         /* You/Com Audiocommunicatie BV */
  306. #define   MM_RICHMOND                   257         /* Richmond Sound Design Ltd. */
  307. #define   MM_IODD                       258         /* I-O Data Device, Inc. */
  308. #define   MM_ICCC                       259         /* ICCC A/S */
  309. #define   MM_3COM                       260         /* 3COM Corporation */
  310. #define   MM_MALDEN                     261         /* Malden Electronics Ltd. */
  311.  
  312. #define   MM_UNMAPPED                   0xffff      /* extensible MID mapping */
  313.  
  314. #define   MM_PID_UNMAPPED               MM_UNMAPPED /* extensible PID mapping */
  315.  
  316. #ifdef GUID_DEFINED
  317. #if !defined(INIT_MMREG_MID)
  318. //{d5a47fa7-6d98-11d1-a21a-00a0c9223196}
  319. #define INIT_MMREG_MID(guid, id)\
  320. {\
  321.     (guid)->Data1 = 0xd5a47fa7 + (USHORT)(id);\
  322.     (guid)->Data2 = 0x6d98;\
  323.     (guid)->Data3 = 0x11d1;\
  324.     (guid)->Data4[0] = 0xa2;\
  325.     (guid)->Data4[1] = 0x1a;\
  326.     (guid)->Data4[2] = 0x00;\
  327.     (guid)->Data4[3] = 0xa0;\
  328.     (guid)->Data4[4] = 0xc9;\
  329.     (guid)->Data4[5] = 0x22;\
  330.     (guid)->Data4[6] = 0x31;\
  331.     (guid)->Data4[7] = 0x96;\
  332. }
  333. #define EXTRACT_MMREG_MID(guid)\
  334.     (USHORT)((guid)->Data1 - 0xd5a47fa7)
  335. #define DEFINE_MMREG_MID_GUID(id)\
  336.     0xd5a47fa7+(USHORT)(id), 0x6d98, 0x11d1, 0xa2, 0x1a, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96
  337.  
  338. #define IS_COMPATIBLE_MMREG_MID(guid)\
  339.     (((guid)->Data1 >= 0xd5a47fa7) &&\
  340.     ((guid)->Data1 < 0xd5a47fa7 + 0xffff) &&\
  341.     ((guid)->Data2 == 0x6d98) &&\
  342.     ((guid)->Data3 == 0x11d1) &&\
  343.     ((guid)->Data4[0] == 0xa2) &&\
  344.     ((guid)->Data4[1] == 0x1a) &&\
  345.     ((guid)->Data4[2] == 0x00) &&\
  346.     ((guid)->Data4[3] == 0xa0) &&\
  347.     ((guid)->Data4[4] == 0xc9) &&\
  348.     ((guid)->Data4[5] == 0x22) &&\
  349.     ((guid)->Data4[6] == 0x31) &&\
  350.     ((guid)->Data4[7] == 0x96))
  351. #endif // !defined(INIT_MMREG_MID)
  352.  
  353. #if !defined(INIT_MMREG_PID)
  354. //{e36dc2ac-6d9a-11d1-a21a-00a0c9223196}
  355. #define INIT_MMREG_PID(guid, id)\
  356. {\
  357.     (guid)->Data1 = 0xe36dc2ac + (USHORT)(id);\
  358.     (guid)->Data2 = 0x6d9a;\
  359.     (guid)->Data3 = 0x11d1;\
  360.     (guid)->Data4[0] = 0xa2;\
  361.     (guid)->Data4[1] = 0x1a;\
  362.     (guid)->Data4[2] = 0x00;\
  363.     (guid)->Data4[3] = 0xa0;\
  364.     (guid)->Data4[4] = 0xc9;\
  365.     (guid)->Data4[5] = 0x22;\
  366.     (guid)->Data4[6] = 0x31;\
  367.     (guid)->Data4[7] = 0x96;\
  368. }
  369. #define EXTRACT_MMREG_PID(guid)\
  370.     (USHORT)((guid)->Data1 - 0xe36dc2ac)
  371. #define DEFINE_MMREG_PID_GUID(id)\
  372.     0xe36dc2ac+(USHORT)(id), 0x6d9a, 0x11d1, 0xa2, 0x1a, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96
  373.  
  374. #define IS_COMPATIBLE_MMREG_PID(guid)\
  375.     (((guid)->Data1 >= 0xe36dc2ac) &&\
  376.     ((guid)->Data1 < 0xe36dc2ac + 0xffff) &&\
  377.     ((guid)->Data2 == 0x6d9a) &&\
  378.     ((guid)->Data3 == 0x11d1) &&\
  379.     ((guid)->Data4[0] == 0xa2) &&\
  380.     ((guid)->Data4[1] == 0x1a) &&\
  381.     ((guid)->Data4[2] == 0x00) &&\
  382.     ((guid)->Data4[3] == 0xa0) &&\
  383.     ((guid)->Data4[4] == 0xc9) &&\
  384.     ((guid)->Data4[5] == 0x22) &&\
  385.     ((guid)->Data4[6] == 0x31) &&\
  386.     ((guid)->Data4[7] == 0x96))
  387. #endif // !defined(INIT_MMREG_PID)
  388. #endif // GUID_DEFINED
  389.  
  390. /* MM_MICROSOFT product IDs */
  391.  
  392. #ifndef MM_MIDI_MAPPER
  393.  
  394. #define  MM_MIDI_MAPPER                     1       /*  Midi Mapper  */
  395. #define  MM_WAVE_MAPPER                     2       /*  Wave Mapper  */
  396. #define  MM_SNDBLST_MIDIOUT                 3       /*  Sound Blaster MIDI output port  */
  397. #define  MM_SNDBLST_MIDIIN                  4       /*  Sound Blaster MIDI input port  */
  398. #define  MM_SNDBLST_SYNTH                   5       /*  Sound Blaster internal synth  */
  399. #define  MM_SNDBLST_WAVEOUT                 6       /*  Sound Blaster waveform output  */
  400. #define  MM_SNDBLST_WAVEIN                  7       /*  Sound Blaster waveform input  */
  401. #define  MM_ADLIB                           9       /*  Ad Lib Compatible synth  */
  402. #define  MM_MPU401_MIDIOUT                  10      /*  MPU 401 compatible MIDI output port  */
  403. #define  MM_MPU401_MIDIIN                   11      /*  MPU 401 compatible MIDI input port  */
  404. #define  MM_PC_JOYSTICK                     12      /*  Joystick adapter  */
  405.  
  406. #endif
  407.  
  408. #define  MM_PCSPEAKER_WAVEOUT               13      /*  PC speaker waveform output  */
  409. #define  MM_MSFT_WSS_WAVEIN                 14      /*  MS Audio Board waveform input  */
  410. #define  MM_MSFT_WSS_WAVEOUT                15      /*  MS Audio Board waveform output  */
  411. #define  MM_MSFT_WSS_FMSYNTH_STEREO         16      /*  MS Audio Board  Stereo FM synth  */
  412. #define  MM_MSFT_WSS_MIXER                  17      /*  MS Audio Board Mixer Driver  */
  413. #define  MM_MSFT_WSS_OEM_WAVEIN             18      /*  MS OEM Audio Board waveform input  */
  414. #define  MM_MSFT_WSS_OEM_WAVEOUT            19      /*  MS OEM Audio Board waveform output  */
  415. #define  MM_MSFT_WSS_OEM_FMSYNTH_STEREO     20      /*  MS OEM Audio Board Stereo FM Synth  */
  416. #define  MM_MSFT_WSS_AUX                    21      /*  MS Audio Board Aux. Port  */
  417. #define  MM_MSFT_WSS_OEM_AUX                22      /*  MS OEM Audio Aux Port  */
  418. #define  MM_MSFT_GENERIC_WAVEIN             23      /*  MS Vanilla driver waveform input  */
  419. #define  MM_MSFT_GENERIC_WAVEOUT            24      /*  MS Vanilla driver wavefrom output  */
  420. #define  MM_MSFT_GENERIC_MIDIIN             25      /*  MS Vanilla driver MIDI in  */
  421. #define  MM_MSFT_GENERIC_MIDIOUT            26      /*  MS Vanilla driver MIDI  external out  */
  422. #define  MM_MSFT_GENERIC_MIDISYNTH          27      /*  MS Vanilla driver MIDI synthesizer  */
  423. #define  MM_MSFT_GENERIC_AUX_LINE           28      /*  MS Vanilla driver aux (line in)  */
  424. #define  MM_MSFT_GENERIC_AUX_MIC            29      /*  MS Vanilla driver aux (mic)  */
  425. #define  MM_MSFT_GENERIC_AUX_CD             30      /*  MS Vanilla driver aux (CD)  */
  426. #define  MM_MSFT_WSS_OEM_MIXER              31      /*  MS OEM Audio Board Mixer Driver  */
  427. #define  MM_MSFT_MSACM                      32      /*  MS Audio Compression Manager  */
  428. #define  MM_MSFT_ACM_MSADPCM                33      /*  MS ADPCM Codec  */
  429. #define  MM_MSFT_ACM_IMAADPCM               34      /*  IMA ADPCM Codec  */
  430. #define  MM_MSFT_ACM_MSFILTER               35      /*  MS Filter  */
  431. #define  MM_MSFT_ACM_GSM610                 36      /*  GSM 610 codec  */
  432. #define  MM_MSFT_ACM_G711                   37      /*  G.711 codec  */
  433. #define  MM_MSFT_ACM_PCM                    38      /*  PCM converter  */
  434.  
  435.    // Microsoft Windows Sound System drivers
  436.  
  437. #define  MM_WSS_SB16_WAVEIN                 39      /*  Sound Blaster 16 waveform input  */
  438. #define  MM_WSS_SB16_WAVEOUT                40      /*  Sound Blaster 16  waveform output  */
  439. #define  MM_WSS_SB16_MIDIIN                 41      /*  Sound Blaster 16 midi-in  */
  440. #define  MM_WSS_SB16_MIDIOUT                42      /*  Sound Blaster 16 midi out  */
  441. #define  MM_WSS_SB16_SYNTH                  43      /*  Sound Blaster 16 FM Synthesis  */
  442. #define  MM_WSS_SB16_AUX_LINE               44      /*  Sound Blaster 16 aux (line in)  */
  443. #define  MM_WSS_SB16_AUX_CD                 45      /*  Sound Blaster 16 aux (CD)  */
  444. #define  MM_WSS_SB16_MIXER                  46      /*  Sound Blaster 16 mixer device  */
  445. #define  MM_WSS_SBPRO_WAVEIN                47      /*  Sound Blaster Pro waveform input  */
  446. #define  MM_WSS_SBPRO_WAVEOUT               48      /*  Sound Blaster Pro waveform output  */
  447. #define  MM_WSS_SBPRO_MIDIIN                49      /*  Sound Blaster Pro midi in  */
  448. #define  MM_WSS_SBPRO_MIDIOUT               50      /*  Sound Blaster Pro midi out  */
  449. #define  MM_WSS_SBPRO_SYNTH                 51      /*  Sound Blaster Pro FM synthesis  */
  450. #define  MM_WSS_SBPRO_AUX_LINE              52      /*  Sound Blaster Pro aux (line in )  */
  451. #define  MM_WSS_SBPRO_AUX_CD                53      /*  Sound Blaster Pro aux (CD)  */
  452. #define  MM_WSS_SBPRO_MIXER                 54      /*  Sound Blaster Pro mixer  */
  453. #define  MM_MSFT_WSS_NT_WAVEIN              55      /*  WSS NT wave in  */
  454. #define  MM_MSFT_WSS_NT_WAVEOUT             56      /*  WSS NT wave out  */
  455. #define  MM_MSFT_WSS_NT_FMSYNTH_STEREO      57      /*  WSS NT FM synth  */
  456. #define  MM_MSFT_WSS_NT_MIXER               58      /*  WSS NT mixer  */
  457. #define  MM_MSFT_WSS_NT_AUX                 59      /*  WSS NT aux  */
  458. #define  MM_MSFT_SB16_WAVEIN                60      /*  Sound Blaster 16 waveform input  */
  459. #define  MM_MSFT_SB16_WAVEOUT               61      /*  Sound Blaster 16  waveform output  */
  460. #define  MM_MSFT_SB16_MIDIIN                62      /*  Sound Blaster 16 midi-in  */
  461. #define  MM_MSFT_SB16_MIDIOUT               63      /*  Sound Blaster 16 midi out  */
  462. #define  MM_MSFT_SB16_SYNTH                 64      /*  Sound Blaster 16 FM Synthesis  */
  463. #define  MM_MSFT_SB16_AUX_LINE              65      /*  Sound Blaster 16 aux (line in)  */
  464. #define  MM_MSFT_SB16_AUX_CD                66      /*  Sound Blaster 16 aux (CD)  */
  465. #define  MM_MSFT_SB16_MIXER                 67      /*  Sound Blaster 16 mixer device  */
  466. #define  MM_MSFT_SBPRO_WAVEIN               68      /*  Sound Blaster Pro waveform input  */
  467. #define  MM_MSFT_SBPRO_WAVEOUT              69      /*  Sound Blaster Pro waveform output  */
  468. #define  MM_MSFT_SBPRO_MIDIIN               70      /*  Sound Blaster Pro midi in  */
  469. #define  MM_MSFT_SBPRO_MIDIOUT              71      /*  Sound Blaster Pro midi out  */
  470. #define  MM_MSFT_SBPRO_SYNTH                72      /*  Sound Blaster Pro FM synthesis  */
  471. #define  MM_MSFT_SBPRO_AUX_LINE             73      /*  Sound Blaster Pro aux (line in)  */
  472. #define  MM_MSFT_SBPRO_AUX_CD               74      /*  Sound Blaster Pro aux (CD)  */
  473. #define  MM_MSFT_SBPRO_MIXER                75      /*  Sound Blaster Pro mixer  */
  474.  
  475. #define  MM_MSFT_MSOPL_SYNTH                76      /*  Yamaha OPL2/OPL3 compatible FM synthesis */
  476.  
  477. #define  MM_MSFT_VMDMS_LINE_WAVEIN          80     /* Voice Modem Serial Line Wave Input */
  478. #define  MM_MSFT_VMDMS_LINE_WAVEOUT         81     /* Voice Modem Serial Line Wave Output */
  479. #define  MM_MSFT_VMDMS_HANDSET_WAVEIN       82     /* Voice Modem Serial Handset Wave Input */
  480. #define  MM_MSFT_VMDMS_HANDSET_WAVEOUT      83     /* Voice Modem Serial Handset Wave Output */
  481. #define  MM_MSFT_VMDMW_LINE_WAVEIN          84     /* Voice Modem Wrapper Line Wave Input */
  482. #define  MM_MSFT_VMDMW_LINE_WAVEOUT         85     /* Voice Modem Wrapper Line Wave Output */
  483. #define  MM_MSFT_VMDMW_HANDSET_WAVEIN       86     /* Voice Modem Wrapper Handset Wave Input */
  484. #define  MM_MSFT_VMDMW_HANDSET_WAVEOUT      87     /* Voice Modem Wrapper Handset Wave Output */
  485. #define  MM_MSFT_VMDMW_MIXER                88     /* Voice Modem Wrapper Mixer */
  486. #define  MM_MSFT_VMDM_GAME_WAVEOUT          89     /* Voice Modem Game Compatible Wave Device */
  487. #define  MM_MSFT_VMDM_GAME_WAVEIN           90     /* Voice Modem Game Compatible Wave Device */
  488.  
  489. #define  MM_MSFT_ACM_MSNAUDIO               91
  490. #define  MM_MSFT_ACM_MSG723                 92
  491. #define  MM_MSFT_ACM_MSRT24                 93
  492.  
  493. #define  MM_MSFT_WDMAUDIO_WAVEOUT           100    /* Generic id for WDM Audio drivers */
  494. #define  MM_MSFT_WDMAUDIO_WAVEIN            101    /* Generic id for WDM Audio drivers */
  495. #define  MM_MSFT_WDMAUDIO_MIDIOUT           102    /* Generic id for WDM Audio drivers */
  496. #define  MM_MSFT_WDMAUDIO_MIDIIN            103    /* Generic id for WDM Audio drivers */
  497. #define  MM_MSFT_WDMAUDIO_MIXER             104    /* Generic id for WDM Audio drivers */
  498. #define  MM_MSFT_WDMAUDIO_AUX               105    /* Generic id for WDM Audio drivers */
  499.  
  500.  
  501. /* MM_CREATIVE product IDs */
  502. #define  MM_CREATIVE_SB15_WAVEIN            1       /*  SB (r) 1.5 waveform input  */
  503. #define  MM_CREATIVE_SB20_WAVEIN            2
  504. #define  MM_CREATIVE_SBPRO_WAVEIN           3
  505. #define  MM_CREATIVE_SBP16_WAVEIN           4
  506. #define  MM_CREATIVE_PHNBLST_WAVEIN         5
  507. #define  MM_CREATIVE_SB15_WAVEOUT           101
  508. #define  MM_CREATIVE_SB20_WAVEOUT           102
  509. #define  MM_CREATIVE_SBPRO_WAVEOUT          103
  510. #define  MM_CREATIVE_SBP16_WAVEOUT          104
  511. #define  MM_CREATIVE_PHNBLST_WAVEOUT        105
  512. #define  MM_CREATIVE_MIDIOUT                201     /*  SB (r)  */
  513. #define  MM_CREATIVE_MIDIIN                 202     /*  SB (r)  */
  514. #define  MM_CREATIVE_FMSYNTH_MONO           301     /*  SB (r)  */
  515. #define  MM_CREATIVE_FMSYNTH_STEREO         302     /*  SB Pro (r) stereo synthesizer  */
  516. #define  MM_CREATIVE_MIDI_AWE32             303
  517. #define  MM_CREATIVE_AUX_CD                 401     /*  SB Pro (r) aux (CD)  */
  518. #define  MM_CREATIVE_AUX_LINE               402     /*  SB Pro (r) aux (Line in )  */
  519. #define  MM_CREATIVE_AUX_MIC                403     /*  SB Pro (r) aux (mic)  */
  520. #define  MM_CREATIVE_AUX_MASTER             404
  521. #define  MM_CREATIVE_AUX_PCSPK              405
  522. #define  MM_CREATIVE_AUX_WAVE               406
  523. #define  MM_CREATIVE_AUX_MIDI               407
  524. #define  MM_CREATIVE_SBPRO_MIXER            408
  525. #define  MM_CREATIVE_SB16_MIXER             409
  526.  
  527. /* MM_MEDIAVISION product IDs */
  528.  
  529. // Pro Audio Spectrum
  530. #define  MM_MEDIAVISION_PROAUDIO            0x10
  531. #define  MM_PROAUD_MIDIOUT                  (MM_MEDIAVISION_PROAUDIO+1)
  532. #define  MM_PROAUD_MIDIIN                   (MM_MEDIAVISION_PROAUDIO+2)
  533. #define  MM_PROAUD_SYNTH                    (MM_MEDIAVISION_PROAUDIO+3)
  534. #define  MM_PROAUD_WAVEOUT                  (MM_MEDIAVISION_PROAUDIO+4)
  535. #define  MM_PROAUD_WAVEIN                   (MM_MEDIAVISION_PROAUDIO+5)
  536. #define  MM_PROAUD_MIXER                    (MM_MEDIAVISION_PROAUDIO+6)
  537. #define  MM_PROAUD_AUX                      (MM_MEDIAVISION_PROAUDIO+7)
  538.  
  539. // Thunder Board
  540. #define  MM_MEDIAVISION_THUNDER             0x20
  541. #define  MM_THUNDER_SYNTH                   (MM_MEDIAVISION_THUNDER+3)
  542. #define  MM_THUNDER_WAVEOUT                 (MM_MEDIAVISION_THUNDER+4)
  543. #define  MM_THUNDER_WAVEIN                  (MM_MEDIAVISION_THUNDER+5)
  544. #define  MM_THUNDER_AUX                     (MM_MEDIAVISION_THUNDER+7)
  545.  
  546. // Audio Port
  547. #define  MM_MEDIAVISION_TPORT               0x40
  548. #define  MM_TPORT_WAVEOUT                   (MM_MEDIAVISION_TPORT+1)
  549. #define  MM_TPORT_WAVEIN                    (MM_MEDIAVISION_TPORT+2)
  550. #define  MM_TPORT_SYNTH                     (MM_MEDIAVISION_TPORT+3)
  551.  
  552. // Pro Audio Spectrum Plus
  553. #define  MM_MEDIAVISION_PROAUDIO_PLUS       0x50
  554. #define  MM_PROAUD_PLUS_MIDIOUT             (MM_MEDIAVISION_PROAUDIO_PLUS+1)
  555. #define  MM_PROAUD_PLUS_MIDIIN              (MM_MEDIAVISION_PROAUDIO_PLUS+2)
  556. #define  MM_PROAUD_PLUS_SYNTH               (MM_MEDIAVISION_PROAUDIO_PLUS+3)
  557. #define  MM_PROAUD_PLUS_WAVEOUT             (MM_MEDIAVISION_PROAUDIO_PLUS+4)
  558. #define  MM_PROAUD_PLUS_WAVEIN              (MM_MEDIAVISION_PROAUDIO_PLUS+5)
  559. #define  MM_PROAUD_PLUS_MIXER               (MM_MEDIAVISION_PROAUDIO_PLUS+6)
  560. #define  MM_PROAUD_PLUS_AUX                 (MM_MEDIAVISION_PROAUDIO_PLUS+7)
  561.  
  562. // Pro Audio Spectrum 16
  563. #define  MM_MEDIAVISION_PROAUDIO_16         0x60
  564. #define  MM_PROAUD_16_MIDIOUT               (MM_MEDIAVISION_PROAUDIO_16+1)
  565. #define  MM_PROAUD_16_MIDIIN                (MM_MEDIAVISION_PROAUDIO_16+2)
  566. #define  MM_PROAUD_16_SYNTH                 (MM_MEDIAVISION_PROAUDIO_16+3)
  567. #define  MM_PROAUD_16_WAVEOUT               (MM_MEDIAVISION_PROAUDIO_16+4)
  568. #define  MM_PROAUD_16_WAVEIN                (MM_MEDIAVISION_PROAUDIO_16+5)
  569. #define  MM_PROAUD_16_MIXER                 (MM_MEDIAVISION_PROAUDIO_16+6)
  570. #define  MM_PROAUD_16_AUX                   (MM_MEDIAVISION_PROAUDIO_16+7)
  571.  
  572. // Pro Audio Studio 16
  573. #define  MM_MEDIAVISION_PROSTUDIO_16        0x60
  574. #define  MM_STUDIO_16_MIDIOUT               (MM_MEDIAVISION_PROSTUDIO_16+1)
  575. #define  MM_STUDIO_16_MIDIIN                (MM_MEDIAVISION_PROSTUDIO_16+2)
  576. #define  MM_STUDIO_16_SYNTH                 (MM_MEDIAVISION_PROSTUDIO_16+3)
  577. #define  MM_STUDIO_16_WAVEOUT               (MM_MEDIAVISION_PROSTUDIO_16+4)
  578. #define  MM_STUDIO_16_WAVEIN                (MM_MEDIAVISION_PROSTUDIO_16+5)
  579. #define  MM_STUDIO_16_MIXER                 (MM_MEDIAVISION_PROSTUDIO_16+6)
  580. #define  MM_STUDIO_16_AUX                   (MM_MEDIAVISION_PROSTUDIO_16+7)
  581.  
  582. // CDPC
  583. #define  MM_MEDIAVISION_CDPC                0x70
  584. #define  MM_CDPC_MIDIOUT                    (MM_MEDIAVISION_CDPC+1)
  585. #define  MM_CDPC_MIDIIN                     (MM_MEDIAVISION_CDPC+2)
  586. #define  MM_CDPC_SYNTH                      (MM_MEDIAVISION_CDPC+3)
  587. #define  MM_CDPC_WAVEOUT                    (MM_MEDIAVISION_CDPC+4)
  588. #define  MM_CDPC_WAVEIN                     (MM_MEDIAVISION_CDPC+5)
  589. #define  MM_CDPC_MIXER                      (MM_MEDIAVISION_CDPC+6)
  590. #define  MM_CDPC_AUX                        (MM_MEDIAVISION_CDPC+7)
  591.  
  592. // Opus MV 1208 Chipsent
  593. #define  MM_MEDIAVISION_OPUS1208            0x80
  594. #define  MM_OPUS401_MIDIOUT                 (MM_MEDIAVISION_OPUS1208+1)
  595. #define  MM_OPUS401_MIDIIN                  (MM_MEDIAVISION_OPUS1208+2)
  596. #define  MM_OPUS1208_SYNTH                  (MM_MEDIAVISION_OPUS1208+3)
  597. #define  MM_OPUS1208_WAVEOUT                (MM_MEDIAVISION_OPUS1208+4)
  598. #define  MM_OPUS1208_WAVEIN                 (MM_MEDIAVISION_OPUS1208+5)
  599. #define  MM_OPUS1208_MIXER                  (MM_MEDIAVISION_OPUS1208+6)
  600. #define  MM_OPUS1208_AUX                    (MM_MEDIAVISION_OPUS1208+7)
  601.  
  602. // Opus MV 1216 chipset
  603. #define  MM_MEDIAVISION_OPUS1216            0x90
  604. #define  MM_OPUS1216_MIDIOUT                (MM_MEDIAVISION_OPUS1216+1)
  605. #define  MM_OPUS1216_MIDIIN                 (MM_MEDIAVISION_OPUS1216+2)
  606. #define  MM_OPUS1216_SYNTH                  (MM_MEDIAVISION_OPUS1216+3)
  607. #define  MM_OPUS1216_WAVEOUT                (MM_MEDIAVISION_OPUS1216+4)
  608. #define  MM_OPUS1216_WAVEIN                 (MM_MEDIAVISION_OPUS1216+5)
  609. #define  MM_OPUS1216_MIXER                  (MM_MEDIAVISION_OPUS1216+6)
  610. #define  MM_OPUS1216_AUX                    (MM_MEDIAVISION_OPUS1216+7)
  611.  
  612. /* MM_CYRIX product IDs */
  613. #define  MM_CYRIX_XASYNTH                   1
  614. #define  MM_CYRIX_XAMIDIIN                  2
  615. #define  MM_CYRIX_XAMIDIOUT                 3
  616. #define  MM_CYRIX_XAWAVEIN                  4
  617. #define  MM_CYRIX_XAWAVEOUT                 5
  618. #define  MM_CYRIX_XAAUX                     6
  619. #define  MM_CYRIX_XAMIXER                   7
  620.  
  621. /* MM_PHILIPS_SPEECH_PROCESSING products IDs */
  622. #define  MM_PHILIPS_ACM_LPCBB               1
  623.  
  624. /* MM_NETXL product IDs */
  625. #define  MM_NETXL_XLVIDEO                   1
  626.  
  627. /* MM_ZYXEL product IDs */
  628. #define  MM_ZYXEL_ACM_ADPCM                 1
  629.  
  630. /* MM_AARDVARK product IDs */
  631. #define  MM_AARDVARK_STUDIO12_WAVEOUT       1
  632. #define  MM_AARDVARK_STUDIO12_WAVEIN        2
  633. #define  MM_AARDVARK_STUDIO88_WAVEOUT       3
  634. #define  MM_AARDVARK_STUDIO88_WAVEIN        4
  635.  
  636. /* MM_BINTEC product IDs */
  637. #define  MM_BINTEC_TAPI_WAVE                1
  638.  
  639. /* MM_HEWLETT_PACKARD product IDs */
  640. #define  MM_HEWLETT_PACKARD_CU_CODEC        1
  641.  
  642. /* MM_MITEL product IDs */
  643. #define  MM_MITEL_TALKTO_LINE_WAVEOUT       100
  644. #define  MM_MITEL_TALKTO_LINE_WAVEIN        101
  645. #define  MM_MITEL_TALKTO_HANDSET_WAVEOUT    102
  646. #define  MM_MITEL_TALKTO_HANDSET_WAVEIN     103
  647. #define  MM_MITEL_TALKTO_BRIDGED_WAVEOUT    104
  648. #define  MM_MITEL_TALKTO_BRIDGED_WAVEIN     105
  649. #define  MM_MITEL_MPA_HANDSET_WAVEOUT       200
  650. #define  MM_MITEL_MPA_HANDSET_WAVEIN        201
  651. #define  MM_MITEL_MPA_HANDSFREE_WAVEOUT     202
  652. #define  MM_MITEL_MPA_HANDSFREE_WAVEIN      203
  653. #define  MM_MITEL_MPA_LINE1_WAVEOUT         204
  654. #define  MM_MITEL_MPA_LINE1_WAVEIN          205
  655. #define  MM_MITEL_MPA_LINE2_WAVEOUT         206
  656. #define  MM_MITEL_MPA_LINE2_WAVEIN          207
  657. #define  MM_MITEL_MEDIAPATH_WAVEOUT         300
  658. #define  MM_MITEL_MEDIAPATH_WAVEIN          301
  659.  
  660. /*  MM_SNI product IDs */
  661. #define  MM_SNI_ACM_G721                    1
  662.  
  663. /* MM_EMU product IDs */
  664. #define  MM_EMU_APSSYNTH                    1
  665. #define  MM_EMU_APSMIDIIN                   2
  666. #define  MM_EMU_APSMIDIOUT                  3
  667. #define  MM_EMU_APSWAVEIN                   4
  668. #define  MM_EMU_APSWAVEOUT                  5
  669.  
  670. /* MM_ARTISOFT product IDs */
  671. #define  MM_ARTISOFT_SBWAVEIN               1       /*  Artisoft sounding Board waveform input  */
  672. #define  MM_ARTISOFT_SBWAVEOUT              2       /*  Artisoft sounding Board waveform output  */
  673.  
  674. /* MM_TURTLE_BEACH product IDs */
  675. #define  MM_TBS_TROPEZ_WAVEIN               37
  676. #define  MM_TBS_TROPEZ_WAVEOUT              38
  677. #define  MM_TBS_TROPEZ_AUX1                 39
  678. #define  MM_TBS_TROPEZ_AUX2                 40
  679. #define  MM_TBS_TROPEZ_LINE                 41
  680.  
  681. /* MM_IBM product IDs */
  682. #define  MM_MMOTION_WAVEAUX                 1       /*  IBM M-Motion Auxiliary Device  */
  683. #define  MM_MMOTION_WAVEOUT                 2       /*  IBM M-Motion Waveform output  */
  684. #define  MM_MMOTION_WAVEIN                  3       /*  IBM M-Motion  Waveform Input  */
  685. #define  MM_IBM_PCMCIA_WAVEIN               11      /*  IBM waveform input  */
  686. #define  MM_IBM_PCMCIA_WAVEOUT              12      /*  IBM Waveform output  */
  687. #define  MM_IBM_PCMCIA_SYNTH                13      /*  IBM Midi Synthesis  */
  688. #define  MM_IBM_PCMCIA_MIDIIN               14      /*  IBM external MIDI in  */
  689. #define  MM_IBM_PCMCIA_MIDIOUT              15      /*  IBM external MIDI out  */
  690. #define  MM_IBM_PCMCIA_AUX                  16      /*  IBM auxiliary control  */
  691. #define  MM_IBM_THINKPAD200                 17
  692. #define  MM_IBM_MWAVE_WAVEIN                18
  693. #define  MM_IBM_MWAVE_WAVEOUT               19
  694. #define  MM_IBM_MWAVE_MIXER                 20
  695. #define  MM_IBM_MWAVE_MIDIIN                21
  696. #define  MM_IBM_MWAVE_MIDIOUT               22
  697. #define  MM_IBM_MWAVE_AUX                   23
  698. #define  MM_IBM_WC_MIDIOUT                  30
  699. #define  MM_IBM_WC_WAVEOUT                  31
  700. #define  MM_IBM_WC_MIXEROUT                 33
  701.  
  702. /* MM_VOCALTEC product IDs */
  703. #define  MM_VOCALTEC_WAVEOUT                1
  704. #define  MM_VOCALTEC_WAVEIN                 2
  705.  
  706. /* MM_ROLAND product IDs */
  707. #define  MM_ROLAND_RAP10_MIDIOUT            10      /* MM_ROLAND_RAP10 */
  708. #define  MM_ROLAND_RAP10_MIDIIN             11      /* MM_ROLAND_RAP10 */
  709. #define  MM_ROLAND_RAP10_SYNTH              12      /* MM_ROLAND_RAP10 */
  710. #define  MM_ROLAND_RAP10_WAVEOUT            13      /* MM_ROLAND_RAP10 */
  711. #define  MM_ROLAND_RAP10_WAVEIN             14      /* MM_ROLAND_RAP10 */
  712. #define  MM_ROLAND_MPU401_MIDIOUT           15
  713. #define  MM_ROLAND_MPU401_MIDIIN            16
  714. #define  MM_ROLAND_SMPU_MIDIOUTA            17
  715. #define  MM_ROLAND_SMPU_MIDIOUTB            18
  716. #define  MM_ROLAND_SMPU_MIDIINA             19
  717. #define  MM_ROLAND_SMPU_MIDIINB             20
  718. #define  MM_ROLAND_SC7_MIDIOUT              21
  719. #define  MM_ROLAND_SC7_MIDIIN               22
  720. #define  MM_ROLAND_SERIAL_MIDIOUT           23
  721. #define  MM_ROLAND_SERIAL_MIDIIN            24
  722. #define  MM_ROLAND_SCP_MIDIOUT              38
  723. #define  MM_ROLAND_SCP_MIDIIN               39
  724. #define  MM_ROLAND_SCP_WAVEOUT              40
  725. #define  MM_ROLAND_SCP_WAVEIN               41
  726. #define  MM_ROLAND_SCP_MIXER                42
  727. #define  MM_ROLAND_SCP_AUX                  48
  728.  
  729. /* MM_DSP_SOLUTIONS product IDs */
  730. #define  MM_DSP_SOLUTIONS_WAVEOUT           1
  731. #define  MM_DSP_SOLUTIONS_WAVEIN            2
  732. #define  MM_DSP_SOLUTIONS_SYNTH             3
  733. #define  MM_DSP_SOLUTIONS_AUX               4
  734.  
  735. /* MM_NEC product IDs */
  736. #define  MM_NEC_73_86_SYNTH                 5
  737. #define  MM_NEC_73_86_WAVEOUT               6
  738. #define  MM_NEC_73_86_WAVEIN                7
  739. #define  MM_NEC_26_SYNTH                    9
  740. #define  MM_NEC_MPU401_MIDIOUT              10
  741. #define  MM_NEC_MPU401_MIDIIN               11
  742. #define  MM_NEC_JOYSTICK                    12
  743.  
  744. /* MM_WANGLABS product IDs */
  745. #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  */
  746. #define  MM_WANGLABS_WAVEOUT1               2
  747.  
  748. /* MM_TANDY product IDs */
  749. #define  MM_TANDY_VISWAVEIN                 1
  750. #define  MM_TANDY_VISWAVEOUT                2
  751. #define  MM_TANDY_VISBIOSSYNTH              3
  752. #define  MM_TANDY_SENS_MMAWAVEIN            4
  753. #define  MM_TANDY_SENS_MMAWAVEOUT           5
  754. #define  MM_TANDY_SENS_MMAMIDIIN            6
  755. #define  MM_TANDY_SENS_MMAMIDIOUT           7
  756. #define  MM_TANDY_SENS_VISWAVEOUT           8
  757. #define  MM_TANDY_PSSJWAVEIN                9
  758. #define  MM_TANDY_PSSJWAVEOUT               10
  759.  
  760. /* MM_ANTEX product IDs */
  761. #define  MM_ANTEX_SX12_WAVEIN               1
  762. #define  MM_ANTEX_SX12_WAVEOUT              2
  763. #define  MM_ANTEX_SX15_WAVEIN               3
  764. #define  MM_ANTEX_SX15_WAVEOUT              4
  765. #define  MM_ANTEX_VP625_WAVEIN              5
  766. #define  MM_ANTEX_VP625_WAVEOUT             6
  767. #define  MM_ANTEX_AUDIOPORT22_WAVEIN        7
  768. #define  MM_ANTEX_AUDIOPORT22_WAVEOUT       8
  769. #define  MM_ANTEX_AUDIOPORT22_FEEDTHRU      9
  770.  
  771. /* MM_INTEL product IDs */
  772. #define  MM_INTELOPD_WAVEIN                 1       /*  HID2 WaveAudio Driver  */
  773. #define  MM_INTELOPD_WAVEOUT                101     /*  HID2  */
  774. #define  MM_INTELOPD_AUX                    401     /*  HID2 for mixing  */
  775. #define  MM_INTEL_NSPMODEMLINEIN            501
  776. #define  MM_INTEL_NSPMODEMLINEOUT           502
  777.  
  778. /* MM_VAL product IDs */
  779. #define  MM_VAL_MICROKEY_AP_WAVEIN          1
  780. #define  MM_VAL_MICROKEY_AP_WAVEOUT         2
  781.  
  782. /* MM_INTERACTIVE product IDs */
  783. #define  MM_INTERACTIVE_WAVEIN              0x45
  784. #define  MM_INTERACTIVE_WAVEOUT             0x45
  785.  
  786. /* MM_YAMAHA product IDs */
  787. #define  MM_YAMAHA_GSS_SYNTH                0x01
  788. #define  MM_YAMAHA_GSS_WAVEOUT              0x02
  789. #define  MM_YAMAHA_GSS_WAVEIN               0x03
  790. #define  MM_YAMAHA_GSS_MIDIOUT              0x04
  791. #define  MM_YAMAHA_GSS_MIDIIN               0x05
  792. #define  MM_YAMAHA_GSS_AUX                  0x06
  793. #define  MM_YAMAHA_SERIAL_MIDIOUT           0x07
  794. #define  MM_YAMAHA_SERIAL_MIDIIN            0x08
  795. #define  MM_YAMAHA_OPL3SA_WAVEOUT           0x10
  796. #define  MM_YAMAHA_OPL3SA_WAVEIN            0x11
  797. #define  MM_YAMAHA_OPL3SA_FMSYNTH           0x12
  798. #define  MM_YAMAHA_OPL3SA_YSYNTH            0x13
  799. #define  MM_YAMAHA_OPL3SA_MIDIOUT           0x14
  800. #define  MM_YAMAHA_OPL3SA_MIDIIN            0x15
  801. #define  MM_YAMAHA_OPL3SA_MIXER             0x17
  802. #define  MM_YAMAHA_OPL3SA_JOYSTICK          0x18
  803. #define  MM_YAMAHA_YMF724LEG_MIDIOUT        0x19
  804. #define  MM_YAMAHA_YMF724LEG_MIDIIN         0x1a
  805. #define  MM_YAMAHA_YMF724_WAVEOUT           0x1b
  806. #define  MM_YAMAHA_YMF724_WAVEIN            0x1c
  807. #define  MM_YAMAHA_YMF724_MIDIOUT           0x1d
  808. #define  MM_YAMAHA_YMF724_AUX               0x1e
  809. #define  MM_YAMAHA_YMF724_MIXER             0x1f
  810. #define  MM_YAMAHA_YMF724LEG_FMSYNTH        0x20
  811. #define  MM_YAMAHA_YMF724LEG_MIXER          0x21
  812. #define  MM_YAMAHA_SXG_MIDIOUT              0x22
  813. #define  MM_YAMAHA_SXG_WAVEOUT              0x23
  814. #define  MM_YAMAHA_SXG_MIXER                0x24
  815.  
  816. /* MM_EVEREX product IDs */
  817. #define  MM_EVEREX_CARRIER                  1
  818.  
  819. /* MM_ECHO product IDs */
  820. #define  MM_ECHO_SYNTH                      1
  821. #define  MM_ECHO_WAVEOUT                    2
  822. #define  MM_ECHO_WAVEIN                     3
  823. #define  MM_ECHO_MIDIOUT                    4
  824. #define  MM_ECHO_MIDIIN                     5
  825. #define  MM_ECHO_AUX                        6
  826.  
  827. /* MM_SIERRA product IDs */
  828. #define  MM_SIERRA_ARIA_MIDIOUT             0x14
  829. #define  MM_SIERRA_ARIA_MIDIIN              0x15
  830. #define  MM_SIERRA_ARIA_SYNTH               0x16
  831. #define  MM_SIERRA_ARIA_WAVEOUT             0x17
  832. #define  MM_SIERRA_ARIA_WAVEIN              0x18
  833. #define  MM_SIERRA_ARIA_AUX                 0x19
  834. #define  MM_SIERRA_ARIA_AUX2                0x20
  835. #define  MM_SIERRA_QUARTET_WAVEIN           0x50
  836. #define  MM_SIERRA_QUARTET_WAVEOUT          0x51
  837. #define  MM_SIERRA_QUARTET_MIDIIN           0x52
  838. #define  MM_SIERRA_QUARTET_MIDIOUT          0x53
  839. #define  MM_SIERRA_QUARTET_SYNTH            0x54
  840. #define  MM_SIERRA_QUARTET_AUX_CD           0x55
  841. #define  MM_SIERRA_QUARTET_AUX_LINE         0x56
  842. #define  MM_SIERRA_QUARTET_AUX_MODEM        0x57
  843. #define  MM_SIERRA_QUARTET_MIXER            0x58
  844.  
  845. /* MM_CAT product IDs */
  846. #define  MM_CAT_WAVEOUT                     1
  847.  
  848. /* MM_DSP_GROUP product IDs */
  849. #define  MM_DSP_GROUP_TRUESPEECH            1
  850.  
  851. /* MM_MELABS product IDs */
  852. #define  MM_MELABS_MIDI2GO                  1
  853.  
  854. /* MM_ESS product IDs */
  855. #define  MM_ESS_AMWAVEOUT                   0x01
  856. #define  MM_ESS_AMWAVEIN                    0x02
  857. #define  MM_ESS_AMAUX                       0x03
  858. #define  MM_ESS_AMSYNTH                     0x04
  859. #define  MM_ESS_AMMIDIOUT                   0x05
  860. #define  MM_ESS_AMMIDIIN                    0x06
  861. #define  MM_ESS_MIXER                       0x07
  862. #define  MM_ESS_AUX_CD                      0x08
  863. #define  MM_ESS_MPU401_MIDIOUT              0x09
  864. #define  MM_ESS_MPU401_MIDIIN               0x0A
  865. #define  MM_ESS_ES488_WAVEOUT               0x10
  866. #define  MM_ESS_ES488_WAVEIN                0x11
  867. #define  MM_ESS_ES488_MIXER                 0x12
  868. #define  MM_ESS_ES688_WAVEOUT               0x13
  869. #define  MM_ESS_ES688_WAVEIN                0x14
  870. #define  MM_ESS_ES688_MIXER                 0x15
  871. #define  MM_ESS_ES1488_WAVEOUT              0x16
  872. #define  MM_ESS_ES1488_WAVEIN               0x17
  873. #define  MM_ESS_ES1488_MIXER                0x18
  874. #define  MM_ESS_ES1688_WAVEOUT              0x19
  875. #define  MM_ESS_ES1688_WAVEIN               0x1A
  876. #define  MM_ESS_ES1688_MIXER                0x1B
  877. #define  MM_ESS_ES1788_WAVEOUT              0x1C
  878. #define  MM_ESS_ES1788_WAVEIN               0x1D
  879. #define  MM_ESS_ES1788_MIXER                0x1E
  880. #define  MM_ESS_ES1888_WAVEOUT              0x1F
  881. #define  MM_ESS_ES1888_WAVEIN               0x20
  882. #define  MM_ESS_ES1888_MIXER                0x21
  883. #define  MM_ESS_ES1868_WAVEOUT              0x22
  884. #define  MM_ESS_ES1868_WAVEIN               0x23
  885. #define  MM_ESS_ES1868_MIXER                0x24
  886. #define  MM_ESS_ES1878_WAVEOUT              0x25
  887. #define  MM_ESS_ES1878_WAVEIN               0x26
  888. #define  MM_ESS_ES1878_MIXER                0x27
  889.  
  890. /* MM_CANOPUS product IDs */
  891. #define  MM_CANOPUS_ACM_DVREX               1
  892.  
  893. /* MM_EPSON product IDs */
  894. #define  MM_EPS_FMSND                       1
  895.  
  896. /* MM_TRUEVISION product IDs */
  897. #define  MM_TRUEVISION_WAVEIN1              1
  898. #define  MM_TRUEVISION_WAVEOUT1             2
  899.  
  900. /* MM_AZTECH product IDs */
  901. #define  MM_AZTECH_MIDIOUT                  3
  902. #define  MM_AZTECH_MIDIIN                   4
  903. #define  MM_AZTECH_WAVEIN                   17
  904. #define  MM_AZTECH_WAVEOUT                  18
  905. #define  MM_AZTECH_FMSYNTH                  20
  906. #define  MM_AZTECH_MIXER                    21
  907. #define  MM_AZTECH_PRO16_WAVEIN             33
  908. #define  MM_AZTECH_PRO16_WAVEOUT            34
  909. #define  MM_AZTECH_PRO16_FMSYNTH            38
  910. #define  MM_AZTECH_DSP16_WAVEIN             65
  911. #define  MM_AZTECH_DSP16_WAVEOUT            66
  912. #define  MM_AZTECH_DSP16_FMSYNTH            68
  913. #define  MM_AZTECH_DSP16_WAVESYNTH          70
  914. #define  MM_AZTECH_NOVA16_WAVEIN            71
  915. #define  MM_AZTECH_NOVA16_WAVEOUT           72
  916. #define  MM_AZTECH_NOVA16_MIXER             73
  917. #define  MM_AZTECH_WASH16_WAVEIN            74
  918. #define  MM_AZTECH_WASH16_WAVEOUT           75
  919. #define  MM_AZTECH_WASH16_MIXER             76
  920. #define  MM_AZTECH_AUX_CD                   401
  921. #define  MM_AZTECH_AUX_LINE                 402
  922. #define  MM_AZTECH_AUX_MIC                  403
  923. #define  MM_AZTECH_AUX                      404
  924.  
  925. /* MM_VIDEOLOGIC product IDs */
  926. #define  MM_VIDEOLOGIC_MSWAVEIN             1
  927. #define  MM_VIDEOLOGIC_MSWAVEOUT            2
  928.  
  929. /* MM_KORG product IDs */
  930. #define  MM_KORG_PCIF_MIDIOUT               1
  931. #define  MM_KORG_PCIF_MIDIIN                2
  932. #define  MM_KORG_1212IO_MSWAVEIN            3
  933. #define  MM_KORG_1212IO_MSWAVEOUT           4
  934.  
  935. /* MM_APT product IDs */
  936. #define  MM_APT_ACE100CD                    1
  937.  
  938. /* MM_ICS product IDs */
  939. #define  MM_ICS_WAVEDECK_WAVEOUT            1       /*  MS WSS compatible card and driver  */
  940. #define  MM_ICS_WAVEDECK_WAVEIN             2
  941. #define  MM_ICS_WAVEDECK_MIXER              3
  942. #define  MM_ICS_WAVEDECK_AUX                4
  943. #define  MM_ICS_WAVEDECK_SYNTH              5
  944. #define  MM_ICS_WAVEDEC_SB_WAVEOUT          6
  945. #define  MM_ICS_WAVEDEC_SB_WAVEIN           7
  946. #define  MM_ICS_WAVEDEC_SB_FM_MIDIOUT       8
  947. #define  MM_ICS_WAVEDEC_SB_MPU401_MIDIOUT   9
  948. #define  MM_ICS_WAVEDEC_SB_MPU401_MIDIIN    10
  949. #define  MM_ICS_WAVEDEC_SB_MIXER            11
  950. #define  MM_ICS_WAVEDEC_SB_AUX              12
  951. #define  MM_ICS_2115_LITE_MIDIOUT           13
  952. #define  MM_ICS_2120_LITE_MIDIOUT           14
  953.  
  954. /* MM_ITERATEDSYS product IDs */
  955. #define  MM_ITERATEDSYS_FUFCODEC            1
  956.  
  957. /* MM_METHEUS product IDs */
  958. #define  MM_METHEUS_ZIPPER                  1
  959.  
  960. /* MM_WINNOV product IDs */
  961. #define  MM_WINNOV_CAVIAR_WAVEIN            1
  962. #define  MM_WINNOV_CAVIAR_WAVEOUT           2
  963. #define  MM_WINNOV_CAVIAR_VIDC              3
  964. #define  MM_WINNOV_CAVIAR_CHAMPAGNE         4       /*  Fourcc is CHAM  */
  965. #define  MM_WINNOV_CAVIAR_YUV8              5       /*  Fourcc is YUV8  */
  966.  
  967. /* MM_NCR product IDs */
  968. #define  MM_NCR_BA_WAVEIN                   1
  969. #define  MM_NCR_BA_WAVEOUT                  2
  970. #define  MM_NCR_BA_SYNTH                    3
  971. #define  MM_NCR_BA_AUX                      4
  972. #define  MM_NCR_BA_MIXER                    5
  973.  
  974. /* MM_AST product IDs */
  975. #define  MM_AST_MODEMWAVE_WAVEIN            13
  976. #define  MM_AST_MODEMWAVE_WAVEOUT           14
  977.  
  978. /* MM_WILLOWPOND product IDs */
  979. #define  MM_WILLOWPOND_FMSYNTH_STEREO       20
  980. #define  MM_WILLOWPOND_MPU401               21
  981. #define  MM_WILLOWPOND_SNDPORT_WAVEIN       100
  982. #define  MM_WILLOWPOND_SNDPORT_WAVEOUT      101
  983. #define  MM_WILLOWPOND_SNDPORT_MIXER        102
  984. #define  MM_WILLOWPOND_SNDPORT_AUX          103
  985. #define  MM_WILLOWPOND_PH_WAVEIN            104
  986. #define  MM_WILLOWPOND_PH_WAVEOUT           105
  987. #define  MM_WILLOWPOND_PH_MIXER             106
  988. #define  MM_WILLOWPOND_PH_AUX               107
  989. #define  MM_WILLOPOND_SNDCOMM_WAVEIN        108
  990. #define  MM_WILLOWPOND_SNDCOMM_WAVEOUT      109
  991. #define  MM_WILLOWPOND_SNDCOMM_MIXER        110
  992. #define  MM_WILLOWPOND_SNDCOMM_AUX          111
  993. #define  MM_WILLOWPOND_GENERIC_WAVEIN       112
  994. #define  MM_WILLOWPOND_GENERIC_WAVEOUT      113
  995. #define  MM_WILLOWPOND_GENERIC_MIXER        114
  996. #define  MM_WILLOWPOND_GENERIC_AUX          115
  997.  
  998. /* MM_VITEC product IDs */
  999. #define  MM_VITEC_VMAKER                    1
  1000. #define  MM_VITEC_VMPRO                     2
  1001.  
  1002. /* MM_MOSCOM product IDs */
  1003. #define  MM_MOSCOM_VPC2400_IN               1       /*  Four Port Voice Processing / Voice Recognition Board  */
  1004. #define  MM_MOSCOM_VPC2400_OUT              2       /*  VPC2400 */
  1005.  
  1006. /* MM_SILICONSOFT product IDs */
  1007. #define  MM_SILICONSOFT_SC1_WAVEIN          1       /*  Waveform in , high sample rate  */
  1008. #define  MM_SILICONSOFT_SC1_WAVEOUT         2       /*  Waveform out , high sample rate  */
  1009. #define  MM_SILICONSOFT_SC2_WAVEIN          3       /*  Waveform in 2 channels, high sample rate  */
  1010. #define  MM_SILICONSOFT_SC2_WAVEOUT         4       /*  Waveform out 2 channels, high sample rate  */
  1011. #define  MM_SILICONSOFT_SOUNDJR2_WAVEOUT    5       /*  Waveform out, self powered, efficient  */
  1012. #define  MM_SILICONSOFT_SOUNDJR2PR_WAVEIN   6       /*  Waveform in, self powered, efficient  */
  1013. #define  MM_SILICONSOFT_SOUNDJR2PR_WAVEOUT  7       /*  Waveform out 2 channels, self powered, efficient  */
  1014. #define  MM_SILICONSOFT_SOUNDJR3_WAVEOUT    8       /*  Waveform in 2 channels, self powered, efficient  */
  1015.  
  1016. /* MM_TERRATEC product IDs */
  1017. #define  MM_TTEWS_WAVEIN                    1
  1018. #define  MM_TTEWS_WAVEOUT                   2
  1019. #define  MM_TTEWS_MIDIIN                    3
  1020. #define  MM_TTEWS_MIDIOUT                   4
  1021. #define  MM_TTEWS_MIDISYNTH                 5
  1022. #define  MM_TTEWS_MIDIMONITOR               6
  1023. #define  MM_TTEWS_VMIDIIN                   7
  1024. #define  MM_TTEWS_VMIDIOUT                  8
  1025. #define  MM_TTEWS_AUX                       9
  1026. #define  MM_TTEWS_MIXER                     10
  1027.  
  1028. /* MM_MEDIASONIC product IDs */
  1029. #define  MM_MEDIASONIC_ACM_G723             1
  1030. #define  MM_MEDIASONIC_ICOM                 2
  1031. #define  MM_ICOM_WAVEIN                     3
  1032. #define  MM_ICOM_WAVEOUT                    4
  1033. #define  MM_ICOM_MIXER                      5
  1034. #define  MM_ICOM_AUX                        6
  1035. #define  MM_ICOM_LINE                       7
  1036.  
  1037. /*  MM_SANYO product IDs */
  1038. #define  MM_SANYO_ACM_LD_ADPCM              1
  1039.  
  1040. /* MM_AHEAD product IDs */
  1041. #define  MM_AHEAD_MULTISOUND                1
  1042. #define  MM_AHEAD_SOUNDBLASTER              2
  1043. #define  MM_AHEAD_PROAUDIO                  3
  1044. #define  MM_AHEAD_GENERIC                   4
  1045.  
  1046. /* MM_OLIVETTI product IDs */
  1047. #define  MM_OLIVETTI_WAVEIN                 1
  1048. #define  MM_OLIVETTI_WAVEOUT                2
  1049. #define  MM_OLIVETTI_MIXER                  3
  1050. #define  MM_OLIVETTI_AUX                    4
  1051. #define  MM_OLIVETTI_MIDIIN                 5
  1052. #define  MM_OLIVETTI_MIDIOUT                6
  1053. #define  MM_OLIVETTI_SYNTH                  7
  1054. #define  MM_OLIVETTI_JOYSTICK               8
  1055. #define  MM_OLIVETTI_ACM_GSM                9
  1056. #define  MM_OLIVETTI_ACM_ADPCM              10
  1057. #define  MM_OLIVETTI_ACM_CELP               11
  1058. #define  MM_OLIVETTI_ACM_SBC                12
  1059. #define  MM_OLIVETTI_ACM_OPR                13
  1060.  
  1061. /* MM_IOMAGIC product IDs */
  1062. #define  MM_IOMAGIC_TEMPO_WAVEOUT           1
  1063. #define  MM_IOMAGIC_TEMPO_WAVEIN            2
  1064. #define  MM_IOMAGIC_TEMPO_SYNTH             3
  1065. #define  MM_IOMAGIC_TEMPO_MIDIOUT           4
  1066. #define  MM_IOMAGIC_TEMPO_MXDOUT            5
  1067. #define  MM_IOMAGIC_TEMPO_AUXOUT            6
  1068.  
  1069. /* MM_MATSUSHITA product IDs */
  1070. #define  MM_MATSUSHITA_WAVEIN               1
  1071. #define  MM_MATSUSHITA_WAVEOUT              2
  1072. #define  MM_MATSUSHITA_FMSYNTH_STEREO       3
  1073. #define  MM_MATSUSHITA_MIXER                4
  1074. #define  MM_MATSUSHITA_AUX                  5
  1075.  
  1076. /* MM_NEWMEDIA product IDs */
  1077. #define  MM_NEWMEDIA_WAVJAMMER              1       /*  WSS Compatible sound card.  */
  1078.  
  1079. /* MM_LYRRUS product IDs */
  1080. #define  MM_LYRRUS_BRIDGE_GUITAR            1
  1081.  
  1082. /* MM_OPTI product IDs */
  1083. #define  MM_OPTI_M16_FMSYNTH_STEREO         0x0001
  1084. #define  MM_OPTI_M16_MIDIIN                 0x0002
  1085. #define  MM_OPTI_M16_MIDIOUT                0x0003
  1086. #define  MM_OPTI_M16_WAVEIN                 0x0004
  1087. #define  MM_OPTI_M16_WAVEOUT                0x0005
  1088. #define  MM_OPTI_M16_MIXER                  0x0006
  1089. #define  MM_OPTI_M16_AUX                    0x0007
  1090. #define  MM_OPTI_P16_FMSYNTH_STEREO         0x0010
  1091. #define  MM_OPTI_P16_MIDIIN                 0x0011
  1092. #define  MM_OPTI_P16_MIDIOUT                0x0012
  1093. #define  MM_OPTI_P16_WAVEIN                 0x0013
  1094. #define  MM_OPTI_P16_WAVEOUT                0x0014
  1095. #define  MM_OPTI_P16_MIXER                  0x0015
  1096. #define  MM_OPTI_P16_AUX                    0x0016
  1097. #define  MM_OPTI_M32_WAVEIN                 0x0020
  1098. #define  MM_OPTI_M32_WAVEOUT                0x0021
  1099. #define  MM_OPTI_M32_MIDIIN                 0x0022
  1100. #define  MM_OPTI_M32_MIDIOUT                0x0023
  1101. #define  MM_OPTI_M32_SYNTH_STEREO           0x0024
  1102. #define  MM_OPTI_M32_MIXER                  0x0025
  1103. #define  MM_OPTI_M32_AUX                    0x0026
  1104.  
  1105. /* MM_COMPAQ product IDs */
  1106. #define  MM_COMPAQ_BB_WAVEIN                1
  1107. #define  MM_COMPAQ_BB_WAVEOUT               2
  1108. #define  MM_COMPAQ_BB_WAVEAUX               3
  1109.  
  1110. /* MM_MPTUS product IDs */
  1111. #define  MM_MPTUS_SPWAVEOUT                 1       /* Sound Pallette */
  1112.  
  1113. /* MM_LERNOUT_AND_HAUSPIE product IDs */
  1114. #define  MM_LERNOUT_ANDHAUSPIE_LHCODECACM   1
  1115.  
  1116. /* MM_DIGITAL product IDs */
  1117. #define  MM_DIGITAL_AV320_WAVEIN            1       /* Digital Audio Video Compression Board */
  1118. #define  MM_DIGITAL_AV320_WAVEOUT           2       /* Digital Audio Video Compression Board */
  1119. #define  MM_DIGITAL_ACM_G723                3
  1120. #define  MM_DIGITAL_ICM_H263                4
  1121. #define  MM_DIGITAL_ICM_H261                5
  1122.  
  1123. /* MM_MOTU product IDs */
  1124. #define  MM_MOTU_MTP_MIDIOUT_ALL            100
  1125. #define  MM_MOTU_MTP_MIDIIN_1               101
  1126. #define  MM_MOTU_MTP_MIDIOUT_1              101
  1127. #define  MM_MOTU_MTP_MIDIIN_2               102
  1128. #define  MM_MOTU_MTP_MIDIOUT_2              102
  1129. #define  MM_MOTU_MTP_MIDIIN_3               103
  1130. #define  MM_MOTU_MTP_MIDIOUT_3              103
  1131. #define  MM_MOTU_MTP_MIDIIN_4               104
  1132. #define  MM_MOTU_MTP_MIDIOUT_4              104
  1133. #define  MM_MOTU_MTP_MIDIIN_5               105
  1134. #define  MM_MOTU_MTP_MIDIOUT_5              105
  1135. #define  MM_MOTU_MTP_MIDIIN_6               106
  1136. #define  MM_MOTU_MTP_MIDIOUT_6              106
  1137. #define  MM_MOTU_MTP_MIDIIN_7               107
  1138. #define  MM_MOTU_MTP_MIDIOUT_7              107
  1139. #define  MM_MOTU_MTP_MIDIIN_8               108
  1140. #define  MM_MOTU_MTP_MIDIOUT_8              108
  1141.  
  1142. #define  MM_MOTU_MTPII_MIDIOUT_ALL          200
  1143. #define  MM_MOTU_MTPII_MIDIIN_SYNC          200
  1144. #define  MM_MOTU_MTPII_MIDIIN_1             201
  1145. #define  MM_MOTU_MTPII_MIDIOUT_1            201
  1146. #define  MM_MOTU_MTPII_MIDIIN_2             202
  1147. #define  MM_MOTU_MTPII_MIDIOUT_2            202
  1148. #define  MM_MOTU_MTPII_MIDIIN_3             203
  1149. #define  MM_MOTU_MTPII_MIDIOUT_3            203
  1150. #define  MM_MOTU_MTPII_MIDIIN_4             204
  1151. #define  MM_MOTU_MTPII_MIDIOUT_4            204
  1152. #define  MM_MOTU_MTPII_MIDIIN_5             205
  1153. #define  MM_MOTU_MTPII_MIDIOUT_5            205
  1154. #define  MM_MOTU_MTPII_MIDIIN_6             206
  1155. #define  MM_MOTU_MTPII_MIDIOUT_6            206
  1156. #define  MM_MOTU_MTPII_MIDIIN_7             207
  1157. #define  MM_MOTU_MTPII_MIDIOUT_7            207
  1158. #define  MM_MOTU_MTPII_MIDIIN_8             208
  1159. #define  MM_MOTU_MTPII_MIDIOUT_8            208
  1160. #define  MM_MOTU_MTPII_NET_MIDIIN_1         209
  1161. #define  MM_MOTU_MTPII_NET_MIDIOUT_1        209
  1162. #define  MM_MOTU_MTPII_NET_MIDIIN_2         210
  1163. #define  MM_MOTU_MTPII_NET_MIDIOUT_2        210
  1164. #define  MM_MOTU_MTPII_NET_MIDIIN_3         211
  1165. #define  MM_MOTU_MTPII_NET_MIDIOUT_3        211
  1166. #define  MM_MOTU_MTPII_NET_MIDIIN_4         212
  1167. #define  MM_MOTU_MTPII_NET_MIDIOUT_4        212
  1168. #define  MM_MOTU_MTPII_NET_MIDIIN_5         213
  1169. #define  MM_MOTU_MTPII_NET_MIDIOUT_5        213
  1170. #define  MM_MOTU_MTPII_NET_MIDIIN_6         214
  1171. #define  MM_MOTU_MTPII_NET_MIDIOUT_6        214
  1172. #define  MM_MOTU_MTPII_NET_MIDIIN_7         215
  1173. #define  MM_MOTU_MTPII_NET_MIDIOUT_7        215
  1174. #define  MM_MOTU_MTPII_NET_MIDIIN_8         216
  1175. #define  MM_MOTU_MTPII_NET_MIDIOUT_8        216
  1176.  
  1177. #define  MM_MOTU_MXP_MIDIIN_MIDIOUT_ALL     300
  1178. #define  MM_MOTU_MXP_MIDIIN_SYNC            300
  1179. #define  MM_MOTU_MXP_MIDIIN_MIDIIN_1        301
  1180. #define  MM_MOTU_MXP_MIDIIN_MIDIOUT_1       301
  1181. #define  MM_MOTU_MXP_MIDIIN_MIDIIN_2        302
  1182. #define  MM_MOTU_MXP_MIDIIN_MIDIOUT_2       302
  1183. #define  MM_MOTU_MXP_MIDIIN_MIDIIN_3        303
  1184. #define  MM_MOTU_MXP_MIDIIN_MIDIOUT_3       303
  1185. #define  MM_MOTU_MXP_MIDIIN_MIDIIN_4        304
  1186. #define  MM_MOTU_MXP_MIDIIN_MIDIOUT_4       304
  1187. #define  MM_MOTU_MXP_MIDIIN_MIDIIN_5        305
  1188. #define  MM_MOTU_MXP_MIDIIN_MIDIOUT_5       305
  1189. #define  MM_MOTU_MXP_MIDIIN_MIDIIN_6        306
  1190. #define  MM_MOTU_MXP_MIDIIN_MIDIOUT_6       306
  1191.  
  1192. #define  MM_MOTU_MXPMPU_MIDIOUT_ALL         400
  1193. #define  MM_MOTU_MXPMPU_MIDIIN_SYNC         400
  1194. #define  MM_MOTU_MXPMPU_MIDIIN_1            401
  1195. #define  MM_MOTU_MXPMPU_MIDIOUT_1           401
  1196. #define  MM_MOTU_MXPMPU_MIDIIN_2            402
  1197. #define  MM_MOTU_MXPMPU_MIDIOUT_2           402
  1198. #define  MM_MOTU_MXPMPU_MIDIIN_3            403
  1199. #define  MM_MOTU_MXPMPU_MIDIOUT_3           403
  1200. #define  MM_MOTU_MXPMPU_MIDIIN_4            404
  1201. #define  MM_MOTU_MXPMPU_MIDIOUT_4           404
  1202. #define  MM_MOTU_MXPMPU_MIDIIN_5            405
  1203. #define  MM_MOTU_MXPMPU_MIDIOUT_5           405
  1204. #define  MM_MOTU_MXPMPU_MIDIIN_6            406
  1205. #define  MM_MOTU_MXPMPU_MIDIOUT_6           406
  1206.  
  1207. #define  MM_MOTU_MXN_MIDIOUT_ALL            500
  1208. #define  MM_MOTU_MXN_MIDIIN_SYNC            500
  1209. #define  MM_MOTU_MXN_MIDIIN_1               501
  1210. #define  MM_MOTU_MXN_MIDIOUT_1              501
  1211. #define  MM_MOTU_MXN_MIDIIN_2               502
  1212. #define  MM_MOTU_MXN_MIDIOUT_2              502
  1213. #define  MM_MOTU_MXN_MIDIIN_3               503
  1214. #define  MM_MOTU_MXN_MIDIOUT_3              503
  1215. #define  MM_MOTU_MXN_MIDIIN_4               504
  1216. #define  MM_MOTU_MXN_MIDIOUT_4              504
  1217.  
  1218. #define  MM_MOTU_FLYER_MIDI_IN_SYNC         600
  1219. #define  MM_MOTU_FLYER_MIDI_IN_A            601
  1220. #define  MM_MOTU_FLYER_MIDI_OUT_A           601
  1221. #define  MM_MOTU_FLYER_MIDI_IN_B            602
  1222. #define  MM_MOTU_FLYER_MIDI_OUT_B           602
  1223.  
  1224. #define  MM_MOTU_PKX_MIDI_IN_SYNC           700
  1225. #define  MM_MOTU_PKX_MIDI_IN_A              701
  1226. #define  MM_MOTU_PKX_MIDI_OUT_A             701
  1227. #define  MM_MOTU_PKX_MIDI_IN_B              702
  1228. #define  MM_MOTU_PKX_MIDI_OUT_B             702
  1229.  
  1230. #define  MM_MOTU_DTX_MIDI_IN_SYNC           800
  1231. #define  MM_MOTU_DTX_MIDI_IN_A              801
  1232. #define  MM_MOTU_DTX_MIDI_OUT_A             801
  1233. #define  MM_MOTU_DTX_MIDI_IN_B              802
  1234. #define  MM_MOTU_DTX_MIDI_OUT_B             802
  1235.  
  1236. #define  MM_MOTU_MTPAV_MIDIOUT_ALL          900
  1237. #define  MM_MOTU_MTPAV_MIDIIN_SYNC          900
  1238. #define  MM_MOTU_MTPAV_MIDIIN_1             901
  1239. #define  MM_MOTU_MTPAV_MIDIOUT_1            901
  1240. #define  MM_MOTU_MTPAV_MIDIIN_2             902
  1241. #define  MM_MOTU_MTPAV_MIDIOUT_2            902
  1242. #define  MM_MOTU_MTPAV_MIDIIN_3             903
  1243. #define  MM_MOTU_MTPAV_MIDIOUT_3            903
  1244. #define  MM_MOTU_MTPAV_MIDIIN_4             904
  1245. #define  MM_MOTU_MTPAV_MIDIOUT_4            904
  1246. #define  MM_MOTU_MTPAV_MIDIIN_5             905
  1247. #define  MM_MOTU_MTPAV_MIDIOUT_5            905
  1248. #define  MM_MOTU_MTPAV_MIDIIN_6             906
  1249. #define  MM_MOTU_MTPAV_MIDIOUT_6            906
  1250. #define  MM_MOTU_MTPAV_MIDIIN_7             907
  1251. #define  MM_MOTU_MTPAV_MIDIOUT_7            907
  1252. #define  MM_MOTU_MTPAV_MIDIIN_8             908
  1253. #define  MM_MOTU_MTPAV_MIDIOUT_8            908
  1254. #define  MM_MOTU_MTPAV_NET_MIDIIN_1         909
  1255. #define  MM_MOTU_MTPAV_NET_MIDIOUT_1        909
  1256. #define  MM_MOTU_MTPAV_NET_MIDIIN_2         910
  1257. #define  MM_MOTU_MTPAV_NET_MIDIOUT_2        910
  1258. #define  MM_MOTU_MTPAV_NET_MIDIIN_3         911
  1259. #define  MM_MOTU_MTPAV_NET_MIDIOUT_3        911
  1260. #define  MM_MOTU_MTPAV_NET_MIDIIN_4         912
  1261. #define  MM_MOTU_MTPAV_NET_MIDIOUT_4        912
  1262. #define  MM_MOTU_MTPAV_NET_MIDIIN_5         913
  1263. #define  MM_MOTU_MTPAV_NET_MIDIOUT_5        913
  1264. #define  MM_MOTU_MTPAV_NET_MIDIIN_6         914
  1265. #define  MM_MOTU_MTPAV_NET_MIDIOUT_6        914
  1266. #define  MM_MOTU_MTPAV_NET_MIDIIN_7         915
  1267. #define  MM_MOTU_MTPAV_NET_MIDIOUT_7        915
  1268. #define  MM_MOTU_MTPAV_NET_MIDIIN_8         916
  1269. #define  MM_MOTU_MTPAV_NET_MIDIOUT_8        916
  1270. #define  MM_MOTU_MTPAV_MIDIIN_ADAT          917
  1271. #define  MM_MOTU_MTPAV_MIDIOUT_ADAT         917
  1272. #define  MM_MOTU_MXPXT_MIDIIN_SYNC          1000
  1273. #define  MM_MOTU_MXPXT_MIDIOUT_ALL          1000
  1274. #define  MM_MOTU_MXPXT_MIDIIN_1             1001
  1275. #define  MM_MOTU_MXPXT_MIDIOUT_1            1001
  1276. #define  MM_MOTU_MXPXT_MIDIOUT_2            1002
  1277. #define  MM_MOTU_MXPXT_MIDIIN_2             1002
  1278. #define  MM_MOTU_MXPXT_MIDIIN_3             1003
  1279. #define  MM_MOTU_MXPXT_MIDIOUT_3            1003
  1280. #define  MM_MOTU_MXPXT_MIDIIN_4             1004
  1281. #define  MM_MOTU_MXPXT_MIDIOUT_4            1004
  1282. #define  MM_MOTU_MXPXT_MIDIIN_5             1005
  1283. #define  MM_MOTU_MXPXT_MIDIOUT_5            1005
  1284. #define  MM_MOTU_MXPXT_MIDIOUT_6            1006
  1285. #define  MM_MOTU_MXPXT_MIDIIN_6             1006
  1286. #define  MM_MOTU_MXPXT_MIDIOUT_7            1007
  1287. #define  MM_MOTU_MXPXT_MIDIIN_7             1007
  1288. #define  MM_MOTU_MXPXT_MIDIOUT_8            1008
  1289. #define  MM_MOTU_MXPXT_MIDIIN_8             1008
  1290.  
  1291. /* MM_WORKBIT product IDs */
  1292. #define  MM_WORKBIT_MIXER                   1      /* Harmony Mixer */
  1293. #define  MM_WORKBIT_WAVEOUT                 2      /* Harmony Mixer */
  1294. #define  MM_WORKBIT_WAVEIN                  3      /* Harmony Mixer */
  1295. #define  MM_WORKBIT_MIDIIN                  4      /* Harmony Mixer */
  1296. #define  MM_WORKBIT_MIDIOUT                 5      /* Harmony Mixer */
  1297. #define  MM_WORKBIT_FMSYNTH                 6      /* Harmony Mixer */
  1298. #define  MM_WORKBIT_AUX                     7      /* Harmony Mixer */
  1299. #define  MM_WORKBIT_JOYSTICK                8
  1300.  
  1301. /* MM_OSITECH product IDs */
  1302. #define  MM_OSITECH_TRUMPCARD               1       /* Trumpcard */
  1303.  
  1304. /* MM_MIRO product IDs */
  1305. #define  MM_MIRO_MOVIEPRO                   1       /* miroMOVIE pro */
  1306. #define  MM_MIRO_VIDEOD1                    2       /* miroVIDEO D1 */
  1307. #define  MM_MIRO_VIDEODC1TV                 3       /* miroVIDEO DC1 tv */
  1308. #define  MM_MIRO_VIDEOTD                    4       /* miroVIDEO 10/20 TD */
  1309. #define  MM_MIRO_DC30_WAVEOUT               5
  1310. #define  MM_MIRO_DC30_WAVEIN                6
  1311. #define  MM_MIRO_DC30_MIX                   7
  1312.  
  1313. /* MM_ISOLUTION product IDs */
  1314. #define  MM_ISOLUTION_PASCAL                1
  1315.  
  1316. /* MM_ROCKWELL product IDs */
  1317. #define  MM_VOICEMIXER                      1
  1318. #define  ROCKWELL_WA1_WAVEIN                100
  1319. #define  ROCKWELL_WA1_WAVEOUT               101
  1320. #define  ROCKWELL_WA1_SYNTH                 102
  1321. #define  ROCKWELL_WA1_MIXER                 103
  1322. #define  ROCKWELL_WA1_MPU401_IN             104
  1323. #define  ROCKWELL_WA1_MPU401_OUT            105
  1324. #define  ROCKWELL_WA2_WAVEIN                200
  1325. #define  ROCKWELL_WA2_WAVEOUT               201
  1326. #define  ROCKWELL_WA2_SYNTH                 202
  1327. #define  ROCKWELL_WA2_MIXER                 203
  1328. #define  ROCKWELL_WA2_MPU401_IN             204
  1329. #define  ROCKWELL_WA2_MPU401_OUT            205
  1330.  
  1331. /* MM_VOXWARE product IDs */
  1332. #define  MM_VOXWARE_CODEC                   1
  1333.  
  1334. /* MM_NORTHERN_TELECOM product IDs */
  1335. #define  MM_NORTEL_MPXAC_WAVEIN             1       /* MPX Audio Card Wave Input Device */
  1336. #define  MM_NORTEL_MPXAC_WAVEOUT            2       /* MPX Audio Card Wave Output Device */
  1337.  
  1338. /* MM_ADDX product IDs */
  1339. #define  MM_ADDX_PCTV_DIGITALMIX            1       /* MM_ADDX_PCTV_DIGITALMIX */
  1340. #define  MM_ADDX_PCTV_WAVEIN                2       /* MM_ADDX_PCTV_WAVEIN */
  1341. #define  MM_ADDX_PCTV_WAVEOUT               3       /* MM_ADDX_PCTV_WAVEOUT */
  1342. #define  MM_ADDX_PCTV_MIXER                 4       /* MM_ADDX_PCTV_MIXER */
  1343. #define  MM_ADDX_PCTV_AUX_CD                5       /* MM_ADDX_PCTV_AUX_CD */
  1344. #define  MM_ADDX_PCTV_AUX_LINE              6       /* MM_ADDX_PCTV_AUX_LINE */
  1345.  
  1346. /* MM_WILDCAT product IDs */
  1347. #define  MM_WILDCAT_AUTOSCOREMIDIIN         1       /* Autoscore */
  1348.  
  1349. /* MM_RHETOREX product IDs */
  1350. #define  MM_RHETOREX_WAVEIN                 1
  1351. #define  MM_RHETOREX_WAVEOUT                2
  1352.  
  1353. /* MM_BROOKTREE product IDs */
  1354. #define  MM_BTV_WAVEIN                      1       /* Brooktree PCM Wave Audio In */
  1355. #define  MM_BTV_WAVEOUT                     2       /* Brooktree PCM Wave Audio Out */
  1356. #define  MM_BTV_MIDIIN                      3       /* Brooktree MIDI In */
  1357. #define  MM_BTV_MIDIOUT                     4       /* Brooktree MIDI out */
  1358. #define  MM_BTV_MIDISYNTH                   5       /* Brooktree MIDI FM synth */
  1359. #define  MM_BTV_AUX_LINE                    6       /* Brooktree Line Input */
  1360. #define  MM_BTV_AUX_MIC                     7       /* Brooktree Microphone Input */
  1361. #define  MM_BTV_AUX_CD                      8       /* Brooktree CD Input */
  1362. #define  MM_BTV_DIGITALIN                   9       /* Brooktree PCM Wave in with subcode information */
  1363. #define  MM_BTV_DIGITALOUT                  10      /* Brooktree PCM Wave out with subcode information */
  1364. #define  MM_BTV_MIDIWAVESTREAM              11      /* Brooktree WaveStream */
  1365. #define  MM_BTV_MIXER                       12      /* Brooktree WSS Mixer driver */
  1366.  
  1367. /* MM_ENSONIQ product IDs */
  1368. #define  MM_ENSONIQ_SOUNDSCAPE              0x10    /* ENSONIQ Soundscape */
  1369. #define  MM_SOUNDSCAPE_WAVEOUT              MM_ENSONIQ_SOUNDSCAPE+1
  1370. #define  MM_SOUNDSCAPE_WAVEOUT_AUX          MM_ENSONIQ_SOUNDSCAPE+2
  1371. #define  MM_SOUNDSCAPE_WAVEIN               MM_ENSONIQ_SOUNDSCAPE+3
  1372. #define  MM_SOUNDSCAPE_MIDIOUT              MM_ENSONIQ_SOUNDSCAPE+4
  1373. #define  MM_SOUNDSCAPE_MIDIIN               MM_ENSONIQ_SOUNDSCAPE+5
  1374. #define  MM_SOUNDSCAPE_SYNTH                MM_ENSONIQ_SOUNDSCAPE+6
  1375. #define  MM_SOUNDSCAPE_MIXER                MM_ENSONIQ_SOUNDSCAPE+7
  1376. #define  MM_SOUNDSCAPE_AUX                  MM_ENSONIQ_SOUNDSCAPE+8
  1377.  
  1378. /* MM_NVIDIA product IDs */
  1379. #define  MM_NVIDIA_WAVEOUT                  1
  1380. #define  MM_NVIDIA_WAVEIN                   2
  1381. #define  MM_NVIDIA_MIDIOUT                  3
  1382. #define  MM_NVIDIA_MIDIIN                   4
  1383. #define  MM_NVIDIA_GAMEPORT                 5
  1384. #define  MM_NVIDIA_MIXER                    6
  1385. #define  MM_NVIDIA_AUX                      7
  1386.  
  1387. /* MM_OKSORI product IDs */
  1388. #define  MM_OKSORI_BASE                     0                      /* Oksori Base */
  1389. #define  MM_OKSORI_OSR8_WAVEOUT             MM_OKSORI_BASE+1       /* Oksori 8bit Wave out */
  1390. #define  MM_OKSORI_OSR8_WAVEIN              MM_OKSORI_BASE+2       /* Oksori 8bit Wave in */
  1391. #define  MM_OKSORI_OSR16_WAVEOUT            MM_OKSORI_BASE+3       /* Oksori 16 bit Wave out */
  1392. #define  MM_OKSORI_OSR16_WAVEIN             MM_OKSORI_BASE+4       /* Oksori 16 bit Wave in */
  1393. #define  MM_OKSORI_FM_OPL4                  MM_OKSORI_BASE+5       /* Oksori FM Synth Yamaha OPL4 */
  1394. #define  MM_OKSORI_MIX_MASTER               MM_OKSORI_BASE+6       /* Oksori DSP Mixer - Master Volume */
  1395. #define  MM_OKSORI_MIX_WAVE                 MM_OKSORI_BASE+7       /* Oksori DSP Mixer - Wave Volume */
  1396. #define  MM_OKSORI_MIX_FM                   MM_OKSORI_BASE+8       /* Oksori DSP Mixer - FM Volume */
  1397. #define  MM_OKSORI_MIX_LINE                 MM_OKSORI_BASE+9       /* Oksori DSP Mixer - Line Volume */
  1398. #define  MM_OKSORI_MIX_CD                   MM_OKSORI_BASE+10      /* Oksori DSP Mixer - CD Volume */
  1399. #define  MM_OKSORI_MIX_MIC                  MM_OKSORI_BASE+11      /* Oksori DSP Mixer - MIC Volume */
  1400. #define  MM_OKSORI_MIX_ECHO                 MM_OKSORI_BASE+12      /* Oksori DSP Mixer - Echo Volume */
  1401. #define  MM_OKSORI_MIX_AUX1                 MM_OKSORI_BASE+13      /* Oksori AD1848 - AUX1 Volume */
  1402. #define  MM_OKSORI_MIX_LINE1                MM_OKSORI_BASE+14      /* Oksori AD1848 - LINE1 Volume */
  1403. #define  MM_OKSORI_EXT_MIC1                 MM_OKSORI_BASE+15      /* Oksori External - One Mic Connect */
  1404. #define  MM_OKSORI_EXT_MIC2                 MM_OKSORI_BASE+16      /* Oksori External - Two Mic Connect */
  1405. #define  MM_OKSORI_MIDIOUT                  MM_OKSORI_BASE+17      /* Oksori MIDI Out Device */
  1406. #define  MM_OKSORI_MIDIIN                   MM_OKSORI_BASE+18      /* Oksori MIDI In Device */
  1407. #define  MM_OKSORI_MPEG_CDVISION            MM_OKSORI_BASE+19      /* Oksori CD-Vision MPEG Decoder */
  1408.  
  1409. /* MM_DIACOUSTICS product IDs */
  1410. #define  MM_DIACOUSTICS_DRUM_ACTION         1       /* Drum Action */
  1411.  
  1412. /* MM_KAY_ELEMETRICS product IDs */
  1413. #define  MM_KAY_ELEMETRICS_CSL              0x4300
  1414. #define  MM_KAY_ELEMETRICS_CSL_DAT          0x4308
  1415. #define  MM_KAY_ELEMETRICS_CSL_4CHANNEL     0x4309
  1416.  
  1417. /* MM_CRYSTAL product IDs */
  1418. #define  MM_CRYSTAL_CS4232_WAVEIN           1
  1419. #define  MM_CRYSTAL_CS4232_WAVEOUT          2
  1420. #define  MM_CRYSTAL_CS4232_WAVEMIXER        3
  1421. #define  MM_CRYSTAL_CS4232_WAVEAUX_AUX1     4
  1422. #define  MM_CRYSTAL_CS4232_WAVEAUX_AUX2     5
  1423. #define  MM_CRYSTAL_CS4232_WAVEAUX_LINE     6
  1424. #define  MM_CRYSTAL_CS4232_WAVEAUX_MONO     7
  1425. #define  MM_CRYSTAL_CS4232_WAVEAUX_MASTER   8
  1426. #define  MM_CRYSTAL_CS4232_MIDIIN           9
  1427. #define  MM_CRYSTAL_CS4232_MIDIOUT          10
  1428. #define  MM_CRYSTAL_CS4232_INPUTGAIN_AUX1   13
  1429. #define  MM_CRYSTAL_CS4232_INPUTGAIN_LOOP   14
  1430. #define  MM_CRYSTAL_SOUND_FUSION_WAVEIN     21
  1431. #define  MM_CRYSTAL_SOUND_FUSION_WAVEOUT    22
  1432. #define  MM_CRYSTAL_SOUND_FUSION_MIXER      23
  1433. #define  MM_CRYSTAL_SOUND_FUSION_MIDIIN     24
  1434. #define  MM_CRYSTAL_SOUND_FUSION_MIDIOUT    25
  1435. #define  MM_CRYSTAL_SOUND_FUSION_JOYSTICK   26
  1436.  
  1437. /* MM_QUARTERDECK product IDs */
  1438. #define  MM_QUARTERDECK_LHWAVEIN            0      /* Quarterdeck L&H Codec Wave In */
  1439. #define  MM_QUARTERDECK_LHWAVEOUT           1      /* Quarterdeck L&H Codec Wave Out */
  1440.  
  1441. /* MM_TDK product IDs */
  1442. #define  MM_TDK_MW_MIDI_SYNTH               1
  1443. #define  MM_TDK_MW_MIDI_IN                  2
  1444. #define  MM_TDK_MW_MIDI_OUT                 3
  1445. #define  MM_TDK_MW_WAVE_IN                  4
  1446. #define  MM_TDK_MW_WAVE_OUT                 5
  1447. #define  MM_TDK_MW_AUX                      6
  1448. #define  MM_TDK_MW_MIXER                    10
  1449. #define  MM_TDK_MW_AUX_MASTER               100
  1450. #define  MM_TDK_MW_AUX_BASS                 101
  1451. #define  MM_TDK_MW_AUX_TREBLE               102
  1452. #define  MM_TDK_MW_AUX_MIDI_VOL             103
  1453. #define  MM_TDK_MW_AUX_WAVE_VOL             104
  1454. #define  MM_TDK_MW_AUX_WAVE_RVB             105
  1455. #define  MM_TDK_MW_AUX_WAVE_CHR             106
  1456. #define  MM_TDK_MW_AUX_VOL                  107
  1457. #define  MM_TDK_MW_AUX_RVB                  108
  1458. #define  MM_TDK_MW_AUX_CHR                  109
  1459.  
  1460. /* MM_DIGITAL_AUDIO_LABS product IDs */
  1461. #define  MM_DIGITAL_AUDIO_LABS_TC           0x01
  1462. #define  MM_DIGITAL_AUDIO_LABS_DOC          0x02
  1463. #define  MM_DIGITAL_AUDIO_LABS_V8           0x10
  1464. #define  MM_DIGITAL_AUDIO_LABS_CPRO         0x11
  1465. #define  MM_DIGITAL_AUDIO_LABS_VP           0x12
  1466. #define  MM_DIGITAL_AUDIO_LABS_CDLX         0x13
  1467. #define  MM_DIGITAL_AUDIO_LABS_CTDIF        0x14
  1468.  
  1469. /* MM_SEERSYS product IDs */
  1470. #define  MM_SEERSYS_SEERSYNTH               1
  1471. #define  MM_SEERSYS_SEERWAVE                2
  1472. #define  MM_SEERSYS_SEERMIX                 3
  1473. #define  MM_SEERSYS_WAVESYNTH               4
  1474. #define  MM_SEERSYS_WAVESYNTH_WG            5
  1475. #define  MM_SEERSYS_REALITY                 6
  1476.  
  1477. /* MM_OSPREY product IDs */
  1478. #define  MM_OSPREY_1000WAVEIN               1
  1479. #define  MM_OSPREY_1000WAVEOUT              2
  1480.  
  1481. /* MM_SOUNDESIGNS product IDs */
  1482. #define  MM_SOUNDESIGNS_WAVEIN              1
  1483. #define  MM_SOUNDESIGNS_WAVEOUT             2
  1484.  
  1485. /* MM_SPECTRUM_SIGNAL_PROCESSING product IDs */
  1486. #define  MM_SSP_SNDFESWAVEIN                1       /* Sound Festa Wave In Device */
  1487. #define  MM_SSP_SNDFESWAVEOUT               2       /* Sound Festa Wave Out Device */
  1488. #define  MM_SSP_SNDFESMIDIIN                3       /* Sound Festa MIDI In Device */
  1489. #define  MM_SSP_SNDFESMIDIOUT               4       /* Sound Festa MIDI Out Device */
  1490. #define  MM_SSP_SNDFESSYNTH                 5       /* Sound Festa MIDI Synth Device */
  1491. #define  MM_SSP_SNDFESMIX                   6       /* Sound Festa Mixer Device */
  1492. #define  MM_SSP_SNDFESAUX                   7       /* Sound Festa Auxilliary Device */
  1493.  
  1494. /* MM_ECS product IDs */
  1495. #define  MM_ECS_AADF_MIDI_IN                10
  1496. #define  MM_ECS_AADF_MIDI_OUT               11
  1497. #define  MM_ECS_AADF_WAVE2MIDI_IN           12
  1498.  
  1499. /* MM_AMD product IDs */
  1500. #define  MM_AMD_INTERWAVE_WAVEIN            1
  1501. #define  MM_AMD_INTERWAVE_WAVEOUT           2
  1502. #define  MM_AMD_INTERWAVE_SYNTH             3
  1503. #define  MM_AMD_INTERWAVE_MIXER1            4
  1504. #define  MM_AMD_INTERWAVE_MIXER2            5
  1505. #define  MM_AMD_INTERWAVE_JOYSTICK          6
  1506. #define  MM_AMD_INTERWAVE_EX_CD             7
  1507. #define  MM_AMD_INTERWAVE_MIDIIN            8
  1508. #define  MM_AMD_INTERWAVE_MIDIOUT           9
  1509. #define  MM_AMD_INTERWAVE_AUX1              10
  1510. #define  MM_AMD_INTERWAVE_AUX2              11
  1511. #define  MM_AMD_INTERWAVE_AUX_MIC           12
  1512. #define  MM_AMD_INTERWAVE_AUX_CD            13
  1513. #define  MM_AMD_INTERWAVE_MONO_IN           14
  1514. #define  MM_AMD_INTERWAVE_MONO_OUT          15
  1515. #define  MM_AMD_INTERWAVE_EX_TELEPHONY      16
  1516. #define  MM_AMD_INTERWAVE_WAVEOUT_BASE      17
  1517. #define  MM_AMD_INTERWAVE_WAVEOUT_TREBLE    18
  1518. #define  MM_AMD_INTERWAVE_STEREO_ENHANCED   19
  1519.  
  1520. /* MM_COREDYNAMICS product IDs */
  1521. #define  MM_COREDYNAMICS_DYNAMIXHR          1       /* DynaMax Hi-Rez */
  1522. #define  MM_COREDYNAMICS_DYNASONIX_SYNTH    2       /* DynaSonix */
  1523. #define  MM_COREDYNAMICS_DYNASONIX_MIDI_IN  3
  1524. #define  MM_COREDYNAMICS_DYNASONIX_MIDI_OUT 4
  1525. #define  MM_COREDYNAMICS_DYNASONIX_WAVE_IN  5
  1526. #define  MM_COREDYNAMICS_DYNASONIX_WAVE_OUT 6
  1527. #define  MM_COREDYNAMICS_DYNASONIX_AUDIO_IN 7
  1528. #define  MM_COREDYNAMICS_DYNASONIX_AUDIO_OUT    8
  1529. #define  MM_COREDYNAMICS_DYNAGRAFX_VGA      9       /* DynaGrfx */
  1530. #define  MM_COREDYNAMICS_DYNAGRAFX_WAVE_IN  10
  1531. #define  MM_COREDYNAMICS_DYNAGRAFX_WAVE_OUT 11
  1532.  
  1533. /* MM_CANAM product IDs */
  1534. #define  MM_CANAM_CBXWAVEOUT                1
  1535. #define  MM_CANAM_CBXWAVEIN                 2
  1536.  
  1537. /* MM_SOFTSOUND product IDs */
  1538. #define  MM_SOFTSOUND_CODEC                 1
  1539.  
  1540. /* MM_NORRIS product IDs */
  1541. #define  MM_NORRIS_VOICELINK                1
  1542.  
  1543. /* MM_DDD product IDs */
  1544. #define  MM_DDD_MIDILINK_MIDIIN             1
  1545. #define  MM_DDD_MIDILINK_MIDIOUT            2
  1546.  
  1547. /* MM_EUPHONICS product IDs */
  1548. #define  MM_EUPHONICS_AUX_CD                1
  1549. #define  MM_EUPHONICS_AUX_LINE              2
  1550. #define  MM_EUPHONICS_AUX_MASTER            3
  1551. #define  MM_EUPHONICS_AUX_MIC               4
  1552. #define  MM_EUPHONICS_AUX_MIDI              5
  1553. #define  MM_EUPHONICS_AUX_WAVE              6
  1554. #define  MM_EUPHONICS_FMSYNTH_MONO          7
  1555. #define  MM_EUPHONICS_FMSYNTH_STEREO        8
  1556. #define  MM_EUPHONICS_MIDIIN                9
  1557. #define  MM_EUPHONICS_MIDIOUT               10
  1558. #define  MM_EUPHONICS_MIXER                 11
  1559. #define  MM_EUPHONICS_WAVEIN                12
  1560. #define  MM_EUPHONICS_WAVEOUT               13
  1561. #define  MM_EUPHONICS_EUSYNTH               14
  1562.  
  1563. /* MM_CRYSTAL_NET product IDs */
  1564. #define  CRYSTAL_NET_SFM_CODEC              1
  1565.  
  1566. /* MM_CHROMATIC product IDs */
  1567. #define  MM_CHROMATIC_M1                    0x0001
  1568. #define  MM_CHROMATIC_M1_WAVEIN             0x0002
  1569. #define  MM_CHROMATIC_M1_WAVEOUT            0x0003
  1570. #define  MM_CHROMATIC_M1_FMSYNTH            0x0004
  1571. #define  MM_CHROMATIC_M1_MIXER              0x0005
  1572. #define  MM_CHROMATIC_M1_AUX                0x0006
  1573. #define  MM_CHROMATIC_M1_AUX_CD             0x0007
  1574. #define  MM_CHROMATIC_M1_MIDIIN             0x0008
  1575. #define  MM_CHROMATIC_M1_MIDIOUT            0x0009
  1576. #define  MM_CHROMATIC_M1_WTSYNTH            0x0010
  1577. #define  MM_CHROMATIC_M1_MPEGWAVEIN         0x0011
  1578. #define  MM_CHROMATIC_M1_MPEGWAVEOUT        0x0012
  1579. #define  MM_CHROMATIC_M2                    0x0013
  1580. #define  MM_CHROMATIC_M2_WAVEIN             0x0014
  1581. #define  MM_CHROMATIC_M2_WAVEOUT            0x0015
  1582. #define  MM_CHROMATIC_M2_FMSYNTH            0x0016
  1583. #define  MM_CHROMATIC_M2_MIXER              0x0017
  1584. #define  MM_CHROMATIC_M2_AUX                0x0018
  1585. #define  MM_CHROMATIC_M2_AUX_CD             0x0019
  1586. #define  MM_CHROMATIC_M2_MIDIIN             0x0020
  1587. #define  MM_CHROMATIC_M2_MIDIOUT            0x0021
  1588. #define  MM_CHROMATIC_M2_WTSYNTH            0x0022
  1589. #define  MM_CHROMATIC_M2_MPEGWAVEIN         0x0023
  1590. #define  MM_CHROMATIC_M2_MPEGWAVEOUT        0x0024
  1591.  
  1592. /* MM_VIENNASYS product IDs */
  1593. #define  MM_VIENNASYS_TSP_WAVE_DRIVER       1
  1594.  
  1595. /* MM_CONNECTIX product IDs */
  1596. #define  MM_CONNECTIX_VIDEC_CODEC           1
  1597.  
  1598. /* MM_GADGETLABS product IDs */
  1599. #define  MM_GADGETLABS_WAVE44_WAVEIN        1
  1600. #define  MM_GADGETLABS_WAVE44_WAVEOUT       2
  1601. #define  MM_GADGETLABS_WAVE42_WAVEIN        3
  1602. #define  MM_GADGETLABS_WAVE42_WAVEOUT       4
  1603. #define  MM_GADGETLABS_WAVE4_MIDIIN         5
  1604. #define  MM_GADGETLABS_WAVE4_MIDIOUT        6
  1605.  
  1606. /* MM_FRONTIER product IDs */
  1607. #define  MM_FRONTIER_WAVECENTER_MIDIIN      1       /* WaveCenter */
  1608. #define  MM_FRONTIER_WAVECENTER_MIDIOUT     2
  1609. #define  MM_FRONTIER_WAVECENTER_WAVEIN      3
  1610. #define  MM_FRONTIER_WAVECENTER_WAVEOUT     4
  1611.  
  1612. /* MM_VIONA product IDs */
  1613. #define  MM_VIONA_QVINPCI_MIXER             1       /* Q-Motion PCI II/Bravado 2000 */
  1614. #define  MM_VIONA_QVINPCI_WAVEIN            2
  1615. #define  MM_VIONAQVINPCI_WAVEOUT            3
  1616. #define  MM_VIONA_BUSTER_MIXER              4       /* Buster */
  1617. #define  MM_VIONA_CINEMASTER_MIXER          5       /* Cinemaster */
  1618. #define  MM_VIONA_CONCERTO_MIXER            6       /* Concerto */
  1619.  
  1620. /* MM_CASIO product IDs */
  1621. #define  MM_CASIO_WP150_MIDIOUT             1       /* wp150 */
  1622. #define  MM_CASIO_WP150_MIDIIN              2
  1623. #define  MM_CASIO_LSG_MIDIOUT               3
  1624.  
  1625. /* MM_DIAMONDMM product IDs */
  1626. #define  MM_DIMD_PLATFORM                   0       /* Freedom Audio */
  1627. #define  MM_DIMD_DIRSOUND                   1
  1628. #define  MM_DIMD_VIRTMPU                    2
  1629. #define  MM_DIMD_VIRTSB                     3
  1630. #define  MM_DIMD_VIRTJOY                    4
  1631. #define  MM_DIMD_WAVEIN                     5
  1632. #define  MM_DIMD_WAVEOUT                    6
  1633. #define  MM_DIMD_MIDIIN                     7
  1634. #define  MM_DIMD_MIDIOUT                    8
  1635. #define  MM_DIMD_AUX_LINE                   9
  1636. #define  MM_DIMD_MIXER                      10
  1637. #define  MM_DIMD_WSS_WAVEIN                 14
  1638. #define  MM_DIMD_WSS_WAVEOUT                15
  1639. #define  MM_DIMD_WSS_MIXER                  17
  1640. #define  MM_DIMD_WSS_AUX                    21
  1641. #define  MM_DIMD_WSS_SYNTH                  76
  1642.  
  1643. /* MM_S3 product IDs */
  1644. #define  MM_S3_WAVEOUT                      1
  1645. #define  MM_S3_WAVEIN                       2
  1646. #define  MM_S3_MIDIOUT                      3
  1647. #define  MM_S3_MIDIIN                       4
  1648. #define  MM_S3_FMSYNTH                      5
  1649. #define  MM_S3_MIXER                        6
  1650. #define  MM_S3_AUX                          7
  1651.  
  1652. /* MM_VANKOEVERING product IDs */
  1653. #define  MM_VKC_MPU401_MIDIIN               0x0100
  1654. #define  MM_VKC_SERIAL_MIDIIN               0x0101
  1655. #define  MM_VKC_MPU401_MIDIOUT              0x0200
  1656. #define  MM_VKC_SERIAL_MIDIOUT              0x0201
  1657.  
  1658. /* MM_ZEFIRO product IDs */
  1659. #define  MM_ZEFIRO_ZA2                      2
  1660.  
  1661. /* MM_FRAUNHOFER_IIS product IDs */
  1662. #define  MM_FHGIIS_MPEGLAYER3               10
  1663.  
  1664. /* MM_QUICKNET product IDs */
  1665. #define  MM_QUICKNET_PJWAVEIN               1
  1666. #define  MM_QUICKNET_PJWAVEOUT              2
  1667.  
  1668. /* MM_SICRESOURCE product IDs */
  1669. #define  MM_SICRESOURCE_SSO3D               2
  1670. #define  MM_SICRESOURCE_SSOW3DI             3
  1671.  
  1672. /* MM_NEOMAGIC product IDs */
  1673. #define  MM_NEOMAGIC_SYNTH                  1
  1674. #define  MM_NEOMAGIC_WAVEOUT                2
  1675. #define  MM_NEOMAGIC_WAVEIN                 3
  1676. #define  MM_NEOMAGIC_MIDIOUT                4
  1677. #define  MM_NEOMAGIC_MIDIIN                 5
  1678. #define  MM_NEOMAGIC_AUX                    6
  1679. #define  MM_NEOMAGIC_MW3DX_WAVEOUT          10
  1680. #define  MM_NEOMAGIC_MW3DX_WAVEIN           11
  1681. #define  MM_NEOMAGIC_MW3DX_MIDIOUT          12
  1682. #define  MM_NEOMAGIC_MW3DX_MIDIIN           13
  1683. #define  MM_NEOMAGIC_MW3DX_FMSYNTH          14
  1684. #define  MM_NEOMAGIC_MW3DX_GMSYNTH          15
  1685. #define  MM_NEOMAGIC_MW3DX_MIXER            16
  1686. #define  MM_NEOMAGIC_MW3DX_AUX              17
  1687. #define  MM_NEOMAGIC_MWAVE_WAVEOUT          20
  1688. #define  MM_NEOMAGIC_MWAVE_WAVEIN           21
  1689. #define  MM_NEOMAGIC_MWAVE_MIDIOUT          22
  1690. #define  MM_NEOMAGIC_MWAVE_MIDIIN           23
  1691. #define  MM_NEOMAGIC_MWAVE_MIXER            24
  1692. #define  MM_NEOMAGIC_MWAVE_AUX              25
  1693.  
  1694. /* MM_MERGING_TECHNOLOGIES product IDs */
  1695. #define  MM_MERGING_MPEGL3                  1
  1696.  
  1697. /* MM_XIRLINK product IDs */
  1698. #define  MM_XIRLINK_VISIONLINK              1
  1699.  
  1700. /* MM_OTI product IDs */
  1701. #define  MM_OTI_611WAVEIN                   5
  1702. #define  MM_OTI_611WAVEOUT                  6
  1703. #define  MM_OTI_611MIXER                    7
  1704. #define  MM_OTI_611MIDIN                    0x12
  1705. #define  MM_OTI_611MIDIOUT                  0x13
  1706.  
  1707. /* MM_AUREAL product IDs */
  1708. #define  MM_AUREAL_AU8820                   16
  1709. #define  MM_AU8820_SYNTH                    17
  1710. #define  MM_AU8820_WAVEOUT                  18
  1711. #define  MM_AU8820_WAVEIN                   19
  1712. #define  MM_AU8820_MIXER                    20
  1713. #define  MM_AU8820_AUX                      21
  1714. #define  MM_AU8820_MIDIOUT                  22
  1715. #define  MM_AU8820_MIDIIN                   23
  1716. #define  MM_AUREAL_AU8830                   32
  1717. #define  MM_AU8830_SYNTH                    33
  1718. #define  MM_AU8830_WAVEOUT                  34
  1719. #define  MM_AU8830_WAVEIN                   35
  1720. #define  MM_AU8830_MIXER                    36
  1721. #define  MM_AU8830_AUX                      37
  1722. #define  MM_AU8830_MIDIOUT                  38
  1723. #define  MM_AU8830_MIDIIN                   39
  1724.  
  1725. /* MM_VIVO product IDs */
  1726. #define  MM_VIVO_AUDIO_CODEC                1
  1727.  
  1728. /* MM_SHARP product IDs */
  1729. #define  MM_SHARP_MDC_MIDI_SYNTH            1
  1730. #define  MM_SHARP_MDC_MIDI_IN               2
  1731. #define  MM_SHARP_MDC_MIDI_OUT              3
  1732. #define  MM_SHARP_MDC_WAVE_IN               4
  1733. #define  MM_SHARP_MDC_WAVE_OUT              5
  1734. #define  MM_SHARP_MDC_AUX                   6
  1735. #define  MM_SHARP_MDC_MIXER                 10
  1736. #define  MM_SHARP_MDC_AUX_MASTER            100
  1737. #define  MM_SHARP_MDC_AUX_BASS              101
  1738. #define  MM_SHARP_MDC_AUX_TREBLE            102
  1739. #define  MM_SHARP_MDC_AUX_MIDI_VOL          103
  1740. #define  MM_SHARP_MDC_AUX_WAVE_VOL          104
  1741. #define  MM_SHARP_MDC_AUX_WAVE_RVB          105
  1742. #define  MM_SHARP_MDC_AUX_WAVE_CHR          106
  1743. #define  MM_SHARP_MDC_AUX_VOL               107
  1744. #define  MM_SHARP_MDC_AUX_RVB               108
  1745. #define  MM_SHARP_MDC_AUX_CHR               109
  1746.  
  1747. /* MM_LUCENT product IDs */
  1748. #define  MM_LUCENT_ACM_G723                 0
  1749.  
  1750. /* MM_ATT product IDs */
  1751. #define  MM_ATT_G729A                       1
  1752.  
  1753. /* MM_MARIAN product IDs */
  1754. #define  MM_MARIAN_ARC44WAVEIN              1
  1755. #define  MM_MARIAN_ARC44WAVEOUT             2
  1756. #define  MM_MARIAN_PRODIF24WAVEIN           3
  1757. #define  MM_MARIAN_PRODIF24WAVEOUT          4
  1758. #define  MM_MARIAN_ARC88WAVEIN              5
  1759. #define  MM_MARIAN_ARC88WAVEOUT             6
  1760.  
  1761. /* MM_BCB product IDs */
  1762. #define  MM_BCB_NETBOARD_10                 1
  1763. #define  MM_BCB_TT75_10                     2
  1764.  
  1765. /* MM_MOTIONPIXELS product IDs */
  1766. #define  MM_MOTIONPIXELS_MVI2               1
  1767.  
  1768. /* MM_QDESIGN product IDs */
  1769. #define  MM_QDESIGN_ACM_MPEG                1
  1770. #define  MM_QDESIGN_ACM_QDESIGN_MUSIC       2
  1771.  
  1772. /* MM_NMP product IDs */
  1773. #define  MM_NMP_CCP_WAVEIN                  1
  1774. #define  MM_NMP_CCP_WAVEOUT                 2
  1775. #define  MM_NMP_ACM_AMR                     10
  1776.  
  1777. /* MM_DATAFUSION product IDs */
  1778. #define  MM_DF_ACM_G726                     1
  1779. #define  MM_DF_ACM_GSM610                   2
  1780.  
  1781. /* MM_BERCOS product IDs */
  1782. #define  MM_BERCOS_WAVEIN                   1
  1783. #define  MM_BERCOS_MIXER                    2
  1784. #define  MM_BERCOS_WAVEOUT                  3
  1785.  
  1786. /* MM_ONLIVE product IDs */
  1787. #define  MM_ONLIVE_MPCODEC                  1
  1788.  
  1789. /* MM_PHONET product IDs */
  1790. #define  MM_PHONET_PP_WAVEOUT               1
  1791. #define  MM_PHONET_PP_WAVEIN                2
  1792. #define  MM_PHONET_PP_MIXER                 3
  1793.  
  1794. /* MM_FTR product IDs */
  1795. #define  MM_FTR_ENCODER_WAVEIN              1
  1796. #define  MM_FTR_ACM                         2
  1797.  
  1798. /* MM_ENET product IDs */
  1799. #define  MM_ENET_T2000_LINEIN               1
  1800. #define  MM_ENET_T2000_LINEOUT              2
  1801. #define  MM_ENET_T2000_HANDSETIN            3
  1802. #define  MM_ENET_T2000_HANDSETOUT           4
  1803.  
  1804. /*  MM_EMAGIC product IDs */
  1805. #define  MM_EMAGIC_UNITOR8                  1
  1806.  
  1807. /*  MM_SIPROLAB product IDs */
  1808. #define  MM_SIPROLAB_ACELPNET               1
  1809.  
  1810. /*  MM_DICTAPHONE product IDs */
  1811. #define  MM_DICTAPHONE_G726                 1       /* G726 ACM codec (g726pcm.acm) */
  1812.  
  1813. /*  MM_RZS product IDs */
  1814. #define  MM_RZS_ACM_TUBGSM                  1      /* GSM 06.10 CODEC */
  1815.  
  1816. /*  MM_EES product IDs */
  1817. #define  MM_EES_PCMIDI14                    1
  1818. #define  MM_EES_PCMIDI14_IN                 2
  1819. #define  MM_EES_PCMIDI14_OUT1               3
  1820. #define  MM_EES_PCMIDI14_OUT2               4
  1821. #define  MM_EES_PCMIDI14_OUT3               5
  1822. #define  MM_EES_PCMIDI14_OUT4               6
  1823.  
  1824. /*  MM_HAFTMANN product IDs */
  1825. #define  MM_HAFTMANN_LPTDAC2                1
  1826.  
  1827. /*  MM_LUCID product IDs */
  1828. #define  MM_LUCID_PCI24WAVEIN               1
  1829. #define  MM_LUCID_PCI24WAVEOUT              2
  1830.  
  1831. /*  MM_HEADSPACE product IDs */
  1832. #define  MM_HEADSPACE_HAESYNTH              1
  1833. #define  MM_HEADSPACE_HAEWAVEOUT            2
  1834. #define  MM_HEADSPACE_HAEWAVEIN             3
  1835. #define  MM_HEADSPACE_HAEMIXER              4
  1836.  
  1837. /*  MM_UNISYS product IDs */
  1838. #define  MM_UNISYS_ACM_NAP                  1
  1839.  
  1840. /*  MM_LUMINOSITI product IDs */
  1841.  
  1842. #define  MM_LUMINOSITI_SCWAVEIN             1
  1843. #define  MM_LUMINOSITI_SCWAVEOUT            2
  1844. #define  MM_LUMINOSITI_SCWAVEMIX            3
  1845.  
  1846. /*  MM_ACTIVEVOICE product IDs */
  1847. #define  MM_ACTIVEVOICE_ACM_VOXADPCM        1
  1848.  
  1849. /*  MM_DTS product IDs */
  1850. #define  MM_DTS_DS                          1
  1851.  
  1852. /*  MM_SOFTLAB_NSK product IDs */
  1853. #define  MM_SOFTLAB_NSK_FRW_WAVEIN          1
  1854. #define  MM_SOFTLAB_NSK_FRW_WAVEOUT         2
  1855. #define  MM_SOFTLAB_NSK_FRW_MIXER           3
  1856. #define  MM_SOFTLAB_NSK_FRW_AUX             4
  1857.  
  1858. /*  MM_FORTEMEDIA product IDs */
  1859. #define  MM_FORTEMEDIA_WAVEIN               1
  1860. #define  MM_FORTEMEDIA_WAVEOUT              2
  1861. #define  MM_FORTEMEDIA_FMSYNC               3
  1862. #define  MM_FORTEMEDIA_MIXER                4
  1863. #define  MM_FORTEMEDIA_AUX                  5
  1864.  
  1865. /*  MM_SONORUS product IDs */
  1866. #define  MM_SONORUS_STUDIO                  1
  1867.  
  1868. /*  MM_I_LINK product IDs */
  1869. #define  MM_I_LINK_VOICE_CODER              1
  1870.  
  1871. /*  MM_SELSIUS_SYSTEMS product IDs */
  1872. #define  MM_SELSIUS_SYSTEMS_RTPWAVEOUT      1
  1873. #define  MM_SELSIUS_SYSTEMS_RTPWAVEIN       2
  1874.  
  1875. /*  MM_ADMOS product IDs */
  1876. #define  MM_ADMOS_FM_SYNTH                  1
  1877. #define  MM_ADMOS_QS3AMIDIOUT               2
  1878. #define  MM_ADMOS_QS3AMIDIIN                3
  1879. #define  MM_ADMOS_QS3AWAVEOUT               4
  1880. #define  MM_ADMOS_QS3AWAVEIN                5
  1881.  
  1882. /* MM_LEXICON product IDs */
  1883. #define  MM_LEXICON_STUDIO_WAVE_OUT         1
  1884. #define  MM_LEXICON_STUDIO_WAVE_IN          2
  1885.  
  1886. /* MM_SGI product IDs */
  1887. #define  MM_SGI_320_WAVEIN                  1
  1888. #define  MM_SGI_320_WAVEOUT                 2
  1889. #define  MM_SGI_320_MIXER                   3
  1890. #define  MM_SGI_540_WAVEIN                  4
  1891. #define  MM_SGI_540_WAVEOUT                 5
  1892. #define  MM_SGI_540_MIXER                   6
  1893. #define  MM_SGI_RAD_ADATMONO1_WAVEIN        7
  1894. #define  MM_SGI_RAD_ADATMONO2_WAVEIN        8
  1895. #define  MM_SGI_RAD_ADATMONO3_WAVEIN        9
  1896. #define  MM_SGI_RAD_ADATMONO4_WAVEIN        10
  1897. #define  MM_SGI_RAD_ADATMONO5_WAVEIN        11
  1898. #define  MM_SGI_RAD_ADATMONO6_WAVEIN        12
  1899. #define  MM_SGI_RAD_ADATMONO7_WAVEIN        13
  1900. #define  MM_SGI_RAD_ADATMONO8_WAVEIN        14
  1901. #define  MM_SGI_RAD_ADATSTEREO12_WAVEIN     15
  1902. #define  MM_SGI_RAD_ADATSTEREO34_WAVEIN     16
  1903. #define  MM_SGI_RAD_ADATSTEREO56_WAVEIN     17
  1904. #define  MM_SGI_RAD_ADATSTEREO78_WAVEIN     18
  1905. #define  MM_SGI_RAD_ADAT8CHAN_WAVEIN        19
  1906. #define  MM_SGI_RAD_ADATMONO1_WAVEOUT       20
  1907. #define  MM_SGI_RAD_ADATMONO2_WAVEOUT       21
  1908. #define  MM_SGI_RAD_ADATMONO3_WAVEOUT       22
  1909. #define  MM_SGI_RAD_ADATMONO4_WAVEOUT       23
  1910. #define  MM_SGI_RAD_ADATMONO5_WAVEOUT       24
  1911. #define  MM_SGI_RAD_ADATMONO6_WAVEOUT       25
  1912. #define  MM_SGI_RAD_ADATMONO7_WAVEOUT       26
  1913. #define  MM_SGI_RAD_ADATMONO8_WAVEOUT       27
  1914. #define  MM_SGI_RAD_ADATSTEREO12_WAVEOUT    28
  1915. #define  MM_SGI_RAD_ADATSTEREO32_WAVEOUT    29
  1916. #define  MM_SGI_RAD_ADATSTEREO56_WAVEOUT    30
  1917. #define  MM_SGI_RAD_ADATSTEREO78_WAVEOUT    31
  1918. #define  MM_SGI_RAD_ADAT8CHAN_WAVEOUT       32
  1919. #define  MM_SGI_RAD_AESMONO1_WAVEIN         33
  1920. #define  MM_SGI_RAD_AESMONO2_WAVEIN         34
  1921. #define  MM_SGI_RAD_AESSTEREO_WAVEIN        35
  1922. #define  MM_SGI_RAD_AESMONO1_WAVEOUT        36
  1923. #define  MM_SGI_RAD_AESMONO2_WAVEOUT        37
  1924. #define  MM_SGI_RAD_AESSTEREO_WAVEOUT       38
  1925.  
  1926. /* MM_IPI product IDs */
  1927. #define  MM_IPI_ACM_HSX                     1
  1928. #define  MM_IPI_ACM_RPELP                   2
  1929. #define  MM_IPI_WF_ASSS                     3
  1930. #define  MM_IPI_AT_WAVEOUT                  4
  1931. #define  MM_IPI_AT_WAVEIN                   5
  1932. #define  MM_IPI_AT_MIXER                    6
  1933.  
  1934. /* MM_ICE product IDs */
  1935. #define  MM_ICE_WAVEOUT                     1
  1936. #define  MM_ICE_WAVEIN                      2
  1937. #define  MM_ICE_MTWAVEOUT                   3
  1938. #define  MM_ICE_MTWAVEIN                    4
  1939. #define  MM_ICE_MIDIOUT1                    5
  1940. #define  MM_ICE_MIDIIN1                     6
  1941. #define  MM_ICE_MIDIOUT2                    7
  1942. #define  MM_ICE_MIDIIN2                     8
  1943. #define  MM_ICE_SYNTH                       9
  1944. #define  MM_ICE_MIXER                       10
  1945. #define  MM_ICE_AUX                         11
  1946.  
  1947. /* MM_VQST product IDs */
  1948. #define  MM_VQST_VQC1                       1
  1949. #define  MM_VQST_VQC2                       2
  1950.  
  1951. /* MM_ETEK product IDs */
  1952. #define  MM_ETEK_KWIKMIDI_MIDIIN            1
  1953. #define  MM_ETEK_KWIKMIDI_MIDIOUT           2
  1954.  
  1955. /* MM_INTERNET product IDs */
  1956. #define  MM_INTERNET_SSW_MIDIOUT            10
  1957. #define  MM_INTERNET_SSW_MIDIIN             11
  1958. #define  MM_INTERNET_SSW_WAVEOUT            12
  1959. #define  MM_INTERNET_SSW_WAVEIN             13
  1960.  
  1961. /* MM_SONY product IDs */
  1962. #define  MM_SONY_ACM_SCX                    1
  1963.  
  1964. /* MM_UHER_INFORMATIC product IDs */
  1965. #define  MM_UH_ACM_ADPCM                    1
  1966.  
  1967. /* MM_SYDEC_NV product IDs */
  1968. #define  MM_SYDEC_NV_WAVEIN                 1
  1969. #define  MM_SYDEC_NV_WAVEOUT                2
  1970.  
  1971. /* MM_FLEXION product IDs */
  1972. #define  MM_FLEXION_X300_WAVEIN             1
  1973. #define  MM_FLEXION_X300_WAVEOUT            2
  1974.  
  1975. /* MM_VIA product IDs */
  1976. #define  MM_VIA_WAVEOUT                     1
  1977. #define  MM_VIA_WAVEIN                      2
  1978. #define  MM_VIA_MIXER                       3
  1979. #define  MM_VIA_AUX                         4
  1980. #define  MM_VIA_MPU401_MIDIOUT              5
  1981. #define  MM_VIA_MPU401_MIDIIN               6
  1982. #define  MM_VIA_SWFM_SYNTH                  7
  1983. #define  MM_VIA_WDM_WAVEOUT                 8
  1984. #define  MM_VIA_WDM_WAVEIN                  9
  1985. #define  MM_VIA_WDM_MIXER                   10
  1986. #define  MM_VIA_WDM_MPU401_MIDIOUT          11
  1987. #define  MM_VIA_WDM_MPU401_MIDIIN           12
  1988.  
  1989. /* MM_MICRONAS product IDs */
  1990. #define  MM_MICRONAS_SC4                    1
  1991. #define  MM_MICRONAS_CLP833                 2
  1992.  
  1993. /* MM_HP product IDs */
  1994. #define  MM_HP_WAVEOUT                      1
  1995. #define  MM_HP_WAVEIN                       2
  1996.  
  1997. /* MM_QUICKAUDIO product IDs */
  1998. #define  MM_QUICKAUDIO_MINIMIDI             1
  1999. #define  MM_QUICKAUDIO_MAXIMIDI             2
  2000.  
  2001. /* MM_ICCC product IDs */
  2002. #define  MM_ICCC_UNA3_WAVEIN                1
  2003. #define  MM_ICCC_UNA3_WAVEOUT               2
  2004. #define  MM_ICCC_UNA3_AUX                   3
  2005. #define  MM_ICCC_UNA3_MIXER                 4
  2006.  
  2007. /* MM_3COM product IDs */
  2008. #define  MM_3COM_CB_MIXER                   1
  2009. #define  MM_3COM_CB_WAVEIN                  2
  2010. #define  MM_3COM_CB_WAVEOUT                 3
  2011.  
  2012. #endif  // !NOMMIDS
  2013.  
  2014. /* ------------------------------------------------------------------------------ */
  2015.  
  2016. /*              INFO LIST CHUNKS (from the Multimedia Programmer's Reference
  2017.                                         plus new ones)
  2018. */
  2019. #define RIFFINFO_IARL      mmioFOURCC ('I', 'A', 'R', 'L')     /*Archival location  */
  2020. #define RIFFINFO_IART      mmioFOURCC ('I', 'A', 'R', 'T')     /*Artist  */
  2021. #define RIFFINFO_ICMS      mmioFOURCC ('I', 'C', 'M', 'S')     /*Commissioned  */
  2022. #define RIFFINFO_ICMT      mmioFOURCC ('I', 'C', 'M', 'T')     /*Comments  */
  2023. #define RIFFINFO_ICOP      mmioFOURCC ('I', 'C', 'O', 'P')     /*Copyright  */
  2024. #define RIFFINFO_ICRD      mmioFOURCC ('I', 'C', 'R', 'D')     /*Creation date of subject  */
  2025. #define RIFFINFO_ICRP      mmioFOURCC ('I', 'C', 'R', 'P')     /*Cropped  */
  2026. #define RIFFINFO_IDIM      mmioFOURCC ('I', 'D', 'I', 'M')     /*Dimensions  */
  2027. #define RIFFINFO_IDPI      mmioFOURCC ('I', 'D', 'P', 'I')     /*Dots per inch  */
  2028. #define RIFFINFO_IENG      mmioFOURCC ('I', 'E', 'N', 'G')     /*Engineer  */
  2029. #define RIFFINFO_IGNR      mmioFOURCC ('I', 'G', 'N', 'R')     /*Genre  */
  2030. #define RIFFINFO_IKEY      mmioFOURCC ('I', 'K', 'E', 'Y')     /*Keywords  */
  2031. #define RIFFINFO_ILGT      mmioFOURCC ('I', 'L', 'G', 'T')     /*Lightness settings  */
  2032. #define RIFFINFO_IMED      mmioFOURCC ('I', 'M', 'E', 'D')     /*Medium  */
  2033. #define RIFFINFO_INAM      mmioFOURCC ('I', 'N', 'A', 'M')     /*Name of subject  */
  2034. #define RIFFINFO_IPLT      mmioFOURCC ('I', 'P', 'L', 'T')     /*Palette Settings. No. of colors requested.   */
  2035. #define RIFFINFO_IPRD      mmioFOURCC ('I', 'P', 'R', 'D')     /*Product  */
  2036. #define RIFFINFO_ISBJ      mmioFOURCC ('I', 'S', 'B', 'J')     /*Subject description  */
  2037. #define RIFFINFO_ISFT      mmioFOURCC ('I', 'S', 'F', 'T')     /*Software. Name of package used to create file.  */
  2038. #define RIFFINFO_ISHP      mmioFOURCC ('I', 'S', 'H', 'P')     /*Sharpness.  */
  2039. #define RIFFINFO_ISRC      mmioFOURCC ('I', 'S', 'R', 'C')     /*Source.   */
  2040. #define RIFFINFO_ISRF      mmioFOURCC ('I', 'S', 'R', 'F')     /*Source Form. ie slide, paper  */
  2041. #define RIFFINFO_ITCH      mmioFOURCC ('I', 'T', 'C', 'H')     /*Technician who digitized the subject.  */
  2042.  
  2043. /* New INFO Chunks as of August 30, 1993: */
  2044. #define RIFFINFO_ISMP      mmioFOURCC ('I', 'S', 'M', 'P')     /*SMPTE time code  */
  2045. /* ISMP: SMPTE time code of digitization start point expressed as a NULL terminated
  2046.                 text string "HH:MM:SS:FF". If performing MCI capture in AVICAP, this
  2047.                 chunk will be automatically set based on the MCI start time.
  2048. */
  2049. #define RIFFINFO_IDIT      mmioFOURCC ('I', 'D', 'I', 'T')     /*Digitization Time  */
  2050. /* IDIT: "Digitization Time" Specifies the time and date that the digitization commenced.
  2051.                 The digitization time is contained in an ASCII string which
  2052.                 contains exactly 26 characters and is in the format
  2053.                 "Wed Jan 02 02:03:55 1990\n\0".
  2054.                 The ctime(), asctime(), functions can be used to create strings
  2055.                 in this format. This chunk is automatically added to the capture
  2056.                 file based on the current system time at the moment capture is initiated.
  2057. */
  2058.  
  2059. /*Template line for new additions*/
  2060. /*#define RIFFINFO_I      mmioFOURCC ('I', '', '', '')        */
  2061.  
  2062. /* ------------------------------------------------------------------------------ */
  2063.  
  2064. #ifndef NONEWWAVE
  2065.  
  2066. /* WAVE form wFormatTag IDs */
  2067. #define  WAVE_FORMAT_UNKNOWN                    0x0000 /* Microsoft Corporation */
  2068. #define  WAVE_FORMAT_ADPCM                      0x0002 /* Microsoft Corporation */
  2069. #define  WAVE_FORMAT_IEEE_FLOAT                 0x0003 /* Microsoft Corporation */
  2070. #define  WAVE_FORMAT_VSELP                      0x0004 /* Compaq Computer Corp. */
  2071. #define  WAVE_FORMAT_IBM_CVSD                   0x0005 /* IBM Corporation */
  2072. #define  WAVE_FORMAT_ALAW                       0x0006 /* Microsoft Corporation */
  2073. #define  WAVE_FORMAT_MULAW                      0x0007 /* Microsoft Corporation */
  2074. #define  WAVE_FORMAT_DTS                        0x0008 /* Microsoft Corporation */
  2075. #define  WAVE_FORMAT_OKI_ADPCM                  0x0010 /* OKI */
  2076. #define  WAVE_FORMAT_DVI_ADPCM                  0x0011 /* Intel Corporation */
  2077. #define  WAVE_FORMAT_IMA_ADPCM                  (WAVE_FORMAT_DVI_ADPCM) /*  Intel Corporation */
  2078. #define  WAVE_FORMAT_MEDIASPACE_ADPCM           0x0012 /* Videologic */
  2079. #define  WAVE_FORMAT_SIERRA_ADPCM               0x0013 /* Sierra Semiconductor Corp */
  2080. #define  WAVE_FORMAT_G723_ADPCM                 0x0014 /* Antex Electronics Corporation */
  2081. #define  WAVE_FORMAT_DIGISTD                    0x0015 /* DSP Solutions, Inc. */
  2082. #define  WAVE_FORMAT_DIGIFIX                    0x0016 /* DSP Solutions, Inc. */
  2083. #define  WAVE_FORMAT_DIALOGIC_OKI_ADPCM         0x0017 /* Dialogic Corporation */
  2084. #define  WAVE_FORMAT_MEDIAVISION_ADPCM          0x0018 /* Media Vision, Inc. */
  2085. #define  WAVE_FORMAT_CU_CODEC                   0x0019 /* Hewlett-Packard Company */
  2086. #define  WAVE_FORMAT_YAMAHA_ADPCM               0x0020 /* Yamaha Corporation of America */
  2087. #define  WAVE_FORMAT_SONARC                     0x0021 /* Speech Compression */
  2088. #define  WAVE_FORMAT_DSPGROUP_TRUESPEECH        0x0022 /* DSP Group, Inc */
  2089. #define  WAVE_FORMAT_ECHOSC1                    0x0023 /* Echo Speech Corporation */
  2090. #define  WAVE_FORMAT_AUDIOFILE_AF36             0x0024 /* Virtual Music, Inc. */
  2091. #define  WAVE_FORMAT_APTX                       0x0025 /* Audio Processing Technology */
  2092. #define  WAVE_FORMAT_AUDIOFILE_AF10             0x0026 /* Virtual Music, Inc. */
  2093. #define  WAVE_FORMAT_PROSODY_1612               0x0027 /* Aculab plc */
  2094. #define  WAVE_FORMAT_LRC                        0x0028 /* Merging Technologies S.A. */
  2095. #define  WAVE_FORMAT_DOLBY_AC2                  0x0030 /* Dolby Laboratories */
  2096. #define  WAVE_FORMAT_GSM610                     0x0031 /* Microsoft Corporation */
  2097. #define  WAVE_FORMAT_MSNAUDIO                   0x0032 /* Microsoft Corporation */
  2098. #define  WAVE_FORMAT_ANTEX_ADPCME               0x0033 /* Antex Electronics Corporation */
  2099. #define  WAVE_FORMAT_CONTROL_RES_VQLPC          0x0034 /* Control Resources Limited */
  2100. #define  WAVE_FORMAT_DIGIREAL                   0x0035 /* DSP Solutions, Inc. */
  2101. #define  WAVE_FORMAT_DIGIADPCM                  0x0036 /* DSP Solutions, Inc. */
  2102. #define  WAVE_FORMAT_CONTROL_RES_CR10           0x0037 /* Control Resources Limited */
  2103. #define  WAVE_FORMAT_NMS_VBXADPCM               0x0038 /* Natural MicroSystems */
  2104. #define  WAVE_FORMAT_CS_IMAADPCM                0x0039 /* Crystal Semiconductor IMA ADPCM */
  2105. #define  WAVE_FORMAT_ECHOSC3                    0x003A /* Echo Speech Corporation */
  2106. #define  WAVE_FORMAT_ROCKWELL_ADPCM             0x003B /* Rockwell International */
  2107. #define  WAVE_FORMAT_ROCKWELL_DIGITALK          0x003C /* Rockwell International */
  2108. #define  WAVE_FORMAT_XEBEC                      0x003D /* Xebec Multimedia Solutions Limited */
  2109. #define  WAVE_FORMAT_G721_ADPCM                 0x0040 /* Antex Electronics Corporation */
  2110. #define  WAVE_FORMAT_G728_CELP                  0x0041 /* Antex Electronics Corporation */
  2111. #define  WAVE_FORMAT_MSG723                     0x0042 /* Microsoft Corporation */
  2112. #define  WAVE_FORMAT_MPEG                       0x0050 /* Microsoft Corporation */
  2113. #define  WAVE_FORMAT_RT24                       0x0052 /* InSoft, Inc. */
  2114. #define  WAVE_FORMAT_PAC                        0x0053 /* InSoft, Inc. */
  2115. #define  WAVE_FORMAT_MPEGLAYER3                 0x0055 /* ISO/MPEG Layer3 Format Tag */
  2116. #define  WAVE_FORMAT_LUCENT_G723                0x0059 /* Lucent Technologies */
  2117. #define  WAVE_FORMAT_CIRRUS                     0x0060 /* Cirrus Logic */
  2118. #define  WAVE_FORMAT_ESPCM                      0x0061 /* ESS Technology */
  2119. #define  WAVE_FORMAT_VOXWARE                    0x0062 /* Voxware Inc */
  2120. #define  WAVE_FORMAT_CANOPUS_ATRAC              0x0063 /* Canopus, co., Ltd. */
  2121. #define  WAVE_FORMAT_G726_ADPCM                 0x0064 /* APICOM */
  2122. #define  WAVE_FORMAT_G722_ADPCM                 0x0065 /* APICOM */
  2123. #define  WAVE_FORMAT_DSAT_DISPLAY               0x0067 /* Microsoft Corporation */
  2124. #define  WAVE_FORMAT_VOXWARE_BYTE_ALIGNED       0x0069 /* Voxware Inc */
  2125. #define  WAVE_FORMAT_VOXWARE_AC8                0x0070 /* Voxware Inc */
  2126. #define  WAVE_FORMAT_VOXWARE_AC10               0x0071 /* Voxware Inc */
  2127. #define  WAVE_FORMAT_VOXWARE_AC16               0x0072 /* Voxware Inc */
  2128. #define  WAVE_FORMAT_VOXWARE_AC20               0x0073 /* Voxware Inc */
  2129. #define  WAVE_FORMAT_VOXWARE_RT24               0x0074 /* Voxware Inc */
  2130. #define  WAVE_FORMAT_VOXWARE_RT29               0x0075 /* Voxware Inc */
  2131. #define  WAVE_FORMAT_VOXWARE_RT29HW             0x0076 /* Voxware Inc */
  2132. #define  WAVE_FORMAT_VOXWARE_VR12               0x0077 /* Voxware Inc */
  2133. #define  WAVE_FORMAT_VOXWARE_VR18               0x0078 /* Voxware Inc */
  2134. #define  WAVE_FORMAT_VOXWARE_TQ40               0x0079 /* Voxware Inc */
  2135. #define  WAVE_FORMAT_SOFTSOUND                  0x0080 /* Softsound, Ltd. */
  2136. #define  WAVE_FORMAT_VOXWARE_TQ60               0x0081 /* Voxware Inc */
  2137. #define  WAVE_FORMAT_MSRT24                     0x0082 /* Microsoft Corporation */
  2138. #define  WAVE_FORMAT_G729A                      0x0083 /* AT&T Labs, Inc. */
  2139. #define  WAVE_FORMAT_MVI_MVI2                   0x0084 /* Motion Pixels */
  2140. #define  WAVE_FORMAT_DF_G726                    0x0085 /* DataFusion Systems (Pty) (Ltd) */
  2141. #define  WAVE_FORMAT_DF_GSM610                  0x0086 /* DataFusion Systems (Pty) (Ltd) */
  2142. #define  WAVE_FORMAT_ISIAUDIO                   0x0088 /* Iterated Systems, Inc. */
  2143. #define  WAVE_FORMAT_ONLIVE                     0x0089 /* OnLive! Technologies, Inc. */
  2144. #define  WAVE_FORMAT_SBC24                      0x0091 /* Siemens Business Communications Sys */
  2145. #define  WAVE_FORMAT_DOLBY_AC3_SPDIF            0x0092 /* Sonic Foundry */
  2146. #define  WAVE_FORMAT_MEDIASONIC_G723            0x0093 /* MediaSonic */
  2147. #define  WAVE_FORMAT_PROSODY_8KBPS              0x0094 /* Aculab plc */
  2148. #define  WAVE_FORMAT_ZYXEL_ADPCM                0x0097 /* ZyXEL Communications, Inc. */
  2149. #define  WAVE_FORMAT_PHILIPS_LPCBB              0x0098 /* Philips Speech Processing */
  2150. #define  WAVE_FORMAT_PACKED                     0x0099 /* Studer Professional Audio AG */
  2151. #define  WAVE_FORMAT_MALDEN_PHONYTALK           0x00A0 /* Malden Electronics Ltd. */
  2152. #define  WAVE_FORMAT_RHETOREX_ADPCM             0x0100 /* Rhetorex Inc. */
  2153. #define  WAVE_FORMAT_IRAT                       0x0101 /* BeCubed Software Inc. */
  2154. #define  WAVE_FORMAT_VIVO_G723                  0x0111 /* Vivo Software */
  2155. #define  WAVE_FORMAT_VIVO_SIREN                 0x0112 /* Vivo Software */
  2156. #define  WAVE_FORMAT_DIGITAL_G723               0x0123 /* Digital Equipment Corporation */
  2157. #define  WAVE_FORMAT_SANYO_LD_ADPCM             0x0125 /* Sanyo Electric Co., Ltd. */
  2158. #define  WAVE_FORMAT_SIPROLAB_ACEPLNET          0x0130 /* Sipro Lab Telecom Inc. */
  2159. #define  WAVE_FORMAT_SIPROLAB_ACELP4800         0x0131 /* Sipro Lab Telecom Inc. */
  2160. #define  WAVE_FORMAT_SIPROLAB_ACELP8V3          0x0132 /* Sipro Lab Telecom Inc. */
  2161. #define  WAVE_FORMAT_SIPROLAB_G729              0x0133 /* Sipro Lab Telecom Inc. */
  2162. #define  WAVE_FORMAT_SIPROLAB_G729A             0x0134 /* Sipro Lab Telecom Inc. */
  2163. #define  WAVE_FORMAT_SIPROLAB_KELVIN            0x0135 /* Sipro Lab Telecom Inc. */
  2164. #define  WAVE_FORMAT_G726ADPCM                  0x0140 /* Dictaphone Corporation */
  2165. #define  WAVE_FORMAT_QUALCOMM_PUREVOICE         0x0150 /* Qualcomm, Inc. */
  2166. #define  WAVE_FORMAT_QUALCOMM_HALFRATE          0x0151 /* Qualcomm, Inc. */
  2167. #define  WAVE_FORMAT_TUBGSM                     0x0155 /* Ring Zero Systems, Inc. */
  2168. #define  WAVE_FORMAT_MSAUDIO1                   0x0160 /* Microsoft Corporation */
  2169. #define  WAVE_FORMAT_CREATIVE_ADPCM             0x0200 /* Creative Labs, Inc */
  2170. #define  WAVE_FORMAT_CREATIVE_FASTSPEECH8       0x0202 /* Creative Labs, Inc */
  2171. #define  WAVE_FORMAT_CREATIVE_FASTSPEECH10      0x0203 /* Creative Labs, Inc */
  2172. #define  WAVE_FORMAT_UHER_ADPCM                 0x0210 /* UHER informatic GmbH */
  2173. #define  WAVE_FORMAT_QUARTERDECK                0x0220 /* Quarterdeck Corporation */
  2174. #define  WAVE_FORMAT_ILINK_VC                   0x0230 /* I-link Worldwide */
  2175. #define  WAVE_FORMAT_RAW_SPORT                  0x0240 /* Aureal Semiconductor */
  2176. #define  WAVE_FORMAT_IPI_HSX                    0x0250 /* Interactive Products, Inc. */
  2177. #define  WAVE_FORMAT_IPI_RPELP                  0x0251 /* Interactive Products, Inc. */
  2178. #define  WAVE_FORMAT_CS2                        0x0260 /* Consistent Software */
  2179. #define  WAVE_FORMAT_SONY_SCX                   0x0270 /* Sony Corp. */
  2180. #define  WAVE_FORMAT_FM_TOWNS_SND               0x0300 /* Fujitsu Corp. */
  2181. #define  WAVE_FORMAT_BTV_DIGITAL                0x0400 /* Brooktree Corporation */
  2182. #define  WAVE_FORMAT_QDESIGN_MUSIC              0x0450 /* QDesign Corporation */
  2183. #define  WAVE_FORMAT_VME_VMPCM                  0x0680 /* AT&T Labs, Inc. */
  2184. #define  WAVE_FORMAT_TPC                        0x0681 /* AT&T Labs, Inc. */
  2185. #define  WAVE_FORMAT_OLIGSM                     0x1000 /* Ing C. Olivetti & C., S.p.A. */
  2186. #define  WAVE_FORMAT_OLIADPCM                   0x1001 /* Ing C. Olivetti & C., S.p.A. */
  2187. #define  WAVE_FORMAT_OLICELP                    0x1002 /* Ing C. Olivetti & C., S.p.A. */
  2188. #define  WAVE_FORMAT_OLISBC                     0x1003 /* Ing C. Olivetti & C., S.p.A. */
  2189. #define  WAVE_FORMAT_OLIOPR                     0x1004 /* Ing C. Olivetti & C., S.p.A. */
  2190. #define  WAVE_FORMAT_LH_CODEC                   0x1100 /* Lernout & Hauspie */
  2191. #define  WAVE_FORMAT_NORRIS                     0x1400 /* Norris Communications, Inc. */
  2192. #define  WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS    0x1500 /* AT&T Labs, Inc. */
  2193. #define  WAVE_FORMAT_DVM                        0x2000 /* FAST Multimedia AG */
  2194.  
  2195. #if !defined(WAVE_FORMAT_EXTENSIBLE)
  2196. #define  WAVE_FORMAT_EXTENSIBLE                 0xFFFE /* Microsoft */
  2197. #endif // !defined(WAVE_FORMAT_EXTENSIBLE)
  2198. //
  2199. //  the WAVE_FORMAT_DEVELOPMENT format tag can be used during the
  2200. //  development phase of a new wave format.  Before shipping, you MUST
  2201. //  acquire an official format tag from Microsoft.
  2202. //
  2203. #define WAVE_FORMAT_DEVELOPMENT         (0xFFFF)
  2204.  
  2205. #endif /* NONEWWAVE */
  2206.  
  2207. #ifndef WAVE_FORMAT_PCM
  2208.  
  2209. /* general waveform format structure (information common to all formats) */
  2210. typedef struct waveformat_tag {
  2211.     WORD    wFormatTag;        /* format type */
  2212.     WORD    nChannels;         /* number of channels (i.e. mono, stereo...) */
  2213.     DWORD   nSamplesPerSec;    /* sample rate */
  2214.     DWORD   nAvgBytesPerSec;   /* for buffer estimation */
  2215.     WORD    nBlockAlign;       /* block size of data */
  2216. } WAVEFORMAT;
  2217. typedef WAVEFORMAT       *PWAVEFORMAT;
  2218. typedef WAVEFORMAT NEAR *NPWAVEFORMAT;
  2219. typedef WAVEFORMAT FAR  *LPWAVEFORMAT;
  2220.  
  2221. /* flags for wFormatTag field of WAVEFORMAT */
  2222. #define WAVE_FORMAT_PCM     1
  2223.  
  2224. /* specific waveform format structure for PCM data */
  2225. typedef struct pcmwaveformat_tag {
  2226.     WAVEFORMAT  wf;
  2227.     WORD        wBitsPerSample;
  2228. } PCMWAVEFORMAT;
  2229. typedef PCMWAVEFORMAT       *PPCMWAVEFORMAT;
  2230. typedef PCMWAVEFORMAT NEAR *NPPCMWAVEFORMAT;
  2231. typedef PCMWAVEFORMAT FAR  *LPPCMWAVEFORMAT;
  2232.  
  2233. #endif /* WAVE_FORMAT_PCM */
  2234.  
  2235. /* general extended waveform format structure
  2236.    Use this for all NON PCM formats
  2237.    (information common to all formats)
  2238. */
  2239. #ifndef _WAVEFORMATEX_
  2240. #define _WAVEFORMATEX_
  2241. typedef struct tWAVEFORMATEX
  2242. {
  2243.     WORD    wFormatTag;        /* format type */
  2244.     WORD    nChannels;         /* number of channels (i.e. mono, stereo...) */
  2245.     DWORD   nSamplesPerSec;    /* sample rate */
  2246.     DWORD   nAvgBytesPerSec;   /* for buffer estimation */
  2247.     WORD    nBlockAlign;       /* block size of data */
  2248.     WORD    wBitsPerSample;    /* Number of bits per sample of mono data */
  2249.     WORD    cbSize;            /* The count in bytes of the size of
  2250.                                     extra information (after cbSize) */
  2251.  
  2252. } WAVEFORMATEX;
  2253. typedef WAVEFORMATEX       *PWAVEFORMATEX;
  2254. typedef WAVEFORMATEX NEAR *NPWAVEFORMATEX;
  2255. typedef WAVEFORMATEX FAR  *LPWAVEFORMATEX;
  2256. #endif /* _WAVEFORMATEX_ */
  2257.  
  2258. #ifdef GUID_DEFINED
  2259.  
  2260. #ifndef _WAVEFORMATEXTENSIBLE_
  2261. #define _WAVEFORMATEXTENSIBLE_
  2262. typedef struct {
  2263.     WAVEFORMATEX    Format;
  2264.     union {
  2265.         WORD wValidBitsPerSample;       /* bits of precision  */
  2266.         WORD wSamplesPerBlock;          /* valid if wBitsPerSample==0 */
  2267.         WORD wReserved;                 /* If neither applies, set to zero. */
  2268.     } Samples;
  2269.     DWORD           dwChannelMask;      /* which channels are */
  2270.                                         /* present in stream  */
  2271.     GUID            SubFormat;
  2272. } WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE;
  2273. #endif // !_WAVEFORMATEXTENSIBLE_
  2274.  
  2275. //
  2276. //  Extended PCM waveform format structure based on WAVEFORMATEXTENSIBLE.
  2277. //  Use this for multiple channel and hi-resolution PCM data
  2278. //
  2279. typedef WAVEFORMATEXTENSIBLE    WAVEFORMATPCMEX; /* Format.cbSize = 22 */
  2280. typedef WAVEFORMATPCMEX       *PWAVEFORMATPCMEX;
  2281. typedef WAVEFORMATPCMEX NEAR *NPWAVEFORMATPCMEX;
  2282. typedef WAVEFORMATPCMEX FAR  *LPWAVEFORMATPCMEX;
  2283.  
  2284. //
  2285. //  Extended format structure using IEEE Float data and based
  2286. //  on WAVEFORMATEXTENSIBLE.  Use this for multiple channel
  2287. //  and hi-resolution PCM data in IEEE floating point format.
  2288. //
  2289. typedef WAVEFORMATEXTENSIBLE          WAVEFORMATIEEEFLOATEX; /* Format.cbSize = 22 */
  2290. typedef WAVEFORMATIEEEFLOATEX       *PWAVEFORMATIEEEFLOATEX;
  2291. typedef WAVEFORMATIEEEFLOATEX NEAR *NPWAVEFORMATIEEEFLOATEX;
  2292. typedef WAVEFORMATIEEEFLOATEX FAR  *LPWAVEFORMATIEEEFLOATEX;
  2293.  
  2294. #endif // GUID_DEFINED
  2295.  
  2296. #ifndef _SPEAKER_POSITIONS_
  2297. #define _SPEAKER_POSITIONS_
  2298. // Speaker Positions for dwChannelMask in WAVEFORMATEXTENSIBLE:
  2299. #define SPEAKER_FRONT_LEFT              0x1
  2300. #define SPEAKER_FRONT_RIGHT             0x2
  2301. #define SPEAKER_FRONT_CENTER            0x4
  2302. #define SPEAKER_LOW_FREQUENCY           0x8
  2303. #define SPEAKER_BACK_LEFT               0x10
  2304. #define SPEAKER_BACK_RIGHT              0x20
  2305. #define SPEAKER_FRONT_LEFT_OF_CENTER    0x40
  2306. #define SPEAKER_FRONT_RIGHT_OF_CENTER   0x80
  2307. #define SPEAKER_BACK_CENTER             0x100
  2308. #define SPEAKER_SIDE_LEFT               0x200
  2309. #define SPEAKER_SIDE_RIGHT              0x400
  2310. #define SPEAKER_TOP_CENTER              0x800
  2311. #define SPEAKER_TOP_FRONT_LEFT          0x1000
  2312. #define SPEAKER_TOP_FRONT_CENTER        0x2000
  2313. #define SPEAKER_TOP_FRONT_RIGHT         0x4000
  2314. #define SPEAKER_TOP_BACK_LEFT           0x8000
  2315. #define SPEAKER_TOP_BACK_CENTER         0x10000
  2316. #define SPEAKER_TOP_BACK_RIGHT          0x20000
  2317.  
  2318. // Bit mask locations reserved for future use
  2319. #define SPEAKER_RESERVED                0x7FFC0000
  2320.  
  2321. // Used to specify that any possible permutation of speaker configurations
  2322. #define SPEAKER_ALL                     0x80000000
  2323. #endif // _SPEAKER_POSITIONS_
  2324.  
  2325. #ifndef NONEWWAVE
  2326.  
  2327. /* Define data for MS ADPCM */
  2328.  
  2329. typedef struct adpcmcoef_tag {
  2330.         short   iCoef1;
  2331.         short   iCoef2;
  2332. } ADPCMCOEFSET;
  2333. typedef ADPCMCOEFSET       *PADPCMCOEFSET;
  2334. typedef ADPCMCOEFSET NEAR *NPADPCMCOEFSET;
  2335. typedef ADPCMCOEFSET FAR  *LPADPCMCOEFSET;
  2336.  
  2337. /*
  2338.  *  this pragma disables the warning issued by the Microsoft C compiler
  2339.  *  when using a zero size array as place holder when compiling for
  2340.  *  C++ or with -W4.
  2341.  *
  2342.  */
  2343. #ifdef _MSC_VER
  2344. #pragma warning(disable:4200)
  2345. #endif
  2346.  
  2347. typedef struct adpcmwaveformat_tag {
  2348.         WAVEFORMATEX    wfx;
  2349.         WORD            wSamplesPerBlock;
  2350.         WORD            wNumCoef;
  2351. #if defined( _MSC_VER )        
  2352.         ADPCMCOEFSET    aCoef[];
  2353. #else
  2354.         ADPCMCOEFSET    aCoef[1];
  2355. #endif        
  2356. } ADPCMWAVEFORMAT;
  2357. typedef ADPCMWAVEFORMAT       *PADPCMWAVEFORMAT;
  2358. typedef ADPCMWAVEFORMAT NEAR *NPADPCMWAVEFORMAT;
  2359. typedef ADPCMWAVEFORMAT FAR  *LPADPCMWAVEFORMAT;
  2360.  
  2361. #ifdef _MSC_VER
  2362. #pragma warning(default:4200)
  2363. #endif
  2364.  
  2365. //
  2366. //  Intel's DVI ADPCM structure definitions
  2367. //
  2368. //      for WAVE_FORMAT_DVI_ADPCM   (0x0011)
  2369. //
  2370. //
  2371.  
  2372. typedef struct dvi_adpcmwaveformat_tag {
  2373.         WAVEFORMATEX    wfx;
  2374.         WORD            wSamplesPerBlock;
  2375. } DVIADPCMWAVEFORMAT;
  2376. typedef DVIADPCMWAVEFORMAT       *PDVIADPCMWAVEFORMAT;
  2377. typedef DVIADPCMWAVEFORMAT NEAR *NPDVIADPCMWAVEFORMAT;
  2378. typedef DVIADPCMWAVEFORMAT FAR  *LPDVIADPCMWAVEFORMAT;
  2379.  
  2380. //
  2381. //  IMA endorsed ADPCM structure definitions--note that this is exactly
  2382. //  the same format as Intel's DVI ADPCM.
  2383. //
  2384. //      for WAVE_FORMAT_IMA_ADPCM   (0x0011)
  2385. //
  2386. //
  2387.  
  2388. typedef struct ima_adpcmwaveformat_tag {
  2389.         WAVEFORMATEX    wfx;
  2390.         WORD            wSamplesPerBlock;
  2391. } IMAADPCMWAVEFORMAT;
  2392. typedef IMAADPCMWAVEFORMAT       *PIMAADPCMWAVEFORMAT;
  2393. typedef IMAADPCMWAVEFORMAT NEAR *NPIMAADPCMWAVEFORMAT;
  2394. typedef IMAADPCMWAVEFORMAT FAR  *LPIMAADPCMWAVEFORMAT;
  2395.  
  2396. /*
  2397. //VideoLogic's Media Space ADPCM Structure definitions
  2398. // for  WAVE_FORMAT_MEDIASPACE_ADPCM    (0x0012)
  2399. //
  2400. //
  2401. */
  2402. typedef struct mediaspace_adpcmwaveformat_tag {
  2403.         WAVEFORMATEX    wfx;
  2404.         WORD    wRevision;
  2405. } MEDIASPACEADPCMWAVEFORMAT;
  2406. typedef MEDIASPACEADPCMWAVEFORMAT           *PMEDIASPACEADPCMWAVEFORMAT;
  2407. typedef MEDIASPACEADPCMWAVEFORMAT NEAR     *NPMEDIASPACEADPCMWAVEFORMAT;
  2408. typedef MEDIASPACEADPCMWAVEFORMAT FAR      *LPMEDIASPACEADPCMWAVEFORMAT;
  2409.  
  2410. //
  2411. //  Sierra Semiconductor
  2412. //
  2413. //      for WAVE_FORMAT_SIERRA_ADPCM   (0x0013)
  2414. //
  2415. //
  2416.  
  2417. typedef struct sierra_adpcmwaveformat_tag {
  2418.         WAVEFORMATEX    wfx;
  2419.         WORD            wRevision;
  2420. } SIERRAADPCMWAVEFORMAT;
  2421. typedef SIERRAADPCMWAVEFORMAT   *PSIERRAADPCMWAVEFORMAT;
  2422. typedef SIERRAADPCMWAVEFORMAT NEAR      *NPSIERRAADPCMWAVEFORMAT;
  2423. typedef SIERRAADPCMWAVEFORMAT FAR       *LPSIERRAADPCMWAVEFORMAT;
  2424.  
  2425. //
  2426. //  Antex Electronics  structure definitions
  2427. //
  2428. //      for WAVE_FORMAT_G723_ADPCM   (0x0014)
  2429. //
  2430. //
  2431.  
  2432. typedef struct g723_adpcmwaveformat_tag {
  2433.         WAVEFORMATEX    wfx;
  2434.         WORD            cbExtraSize;
  2435.         WORD            nAuxBlockSize;
  2436. } G723_ADPCMWAVEFORMAT;
  2437. typedef G723_ADPCMWAVEFORMAT *PG723_ADPCMWAVEFORMAT;
  2438. typedef G723_ADPCMWAVEFORMAT NEAR *NPG723_ADPCMWAVEFORMAT;
  2439. typedef G723_ADPCMWAVEFORMAT FAR  *LPG723_ADPCMWAVEFORMAT;
  2440.  
  2441. //
  2442. //  DSP Solutions (formerly DIGISPEECH) structure definitions
  2443. //
  2444. //      for WAVE_FORMAT_DIGISTD   (0x0015)
  2445. //
  2446. //
  2447.  
  2448. typedef struct digistdwaveformat_tag {
  2449.         WAVEFORMATEX    wfx;
  2450. } DIGISTDWAVEFORMAT;
  2451. typedef DIGISTDWAVEFORMAT       *PDIGISTDWAVEFORMAT;
  2452. typedef DIGISTDWAVEFORMAT NEAR *NPDIGISTDWAVEFORMAT;
  2453. typedef DIGISTDWAVEFORMAT FAR  *LPDIGISTDWAVEFORMAT;
  2454.  
  2455. //
  2456. //  DSP Solutions (formerly DIGISPEECH) structure definitions
  2457. //
  2458. //      for WAVE_FORMAT_DIGIFIX   (0x0016)
  2459. //
  2460. //
  2461.  
  2462. typedef struct digifixwaveformat_tag {
  2463.         WAVEFORMATEX    wfx;
  2464. } DIGIFIXWAVEFORMAT;
  2465. typedef DIGIFIXWAVEFORMAT       *PDIGIFIXWAVEFORMAT;
  2466. typedef DIGIFIXWAVEFORMAT NEAR *NPDIGIFIXWAVEFORMAT;
  2467. typedef DIGIFIXWAVEFORMAT FAR  *LPDIGIFIXWAVEFORMAT;
  2468.  
  2469. //
  2470. //   Dialogic Corporation
  2471. // WAVEFORMAT_DIALOGIC_OKI_ADPCM   (0x0017)
  2472. //
  2473. typedef struct creative_fastspeechformat_tag{
  2474.         WAVEFORMATEX    ewf;
  2475. }DIALOGICOKIADPCMWAVEFORMAT;
  2476. typedef DIALOGICOKIADPCMWAVEFORMAT       *PDIALOGICOKIADPCMWAVEFORMAT;
  2477. typedef DIALOGICOKIADPCMWAVEFORMAT NEAR *NPDIALOGICOKIADPCMWAVEFORMAT;
  2478. typedef DIALOGICOKIADPCMWAVEFORMAT FAR  *LPDIALOGICOKIADPCMWAVEFORMAT;
  2479.  
  2480. //
  2481. //  Yamaha Compression's ADPCM structure definitions
  2482. //
  2483. //      for WAVE_FORMAT_YAMAHA_ADPCM   (0x0020)
  2484. //
  2485. //
  2486.  
  2487. typedef struct yamaha_adpmcwaveformat_tag {
  2488.         WAVEFORMATEX    wfx;
  2489.  
  2490. } YAMAHA_ADPCMWAVEFORMAT;
  2491. typedef YAMAHA_ADPCMWAVEFORMAT *PYAMAHA_ADPCMWAVEFORMAT;
  2492. typedef YAMAHA_ADPCMWAVEFORMAT NEAR *NPYAMAHA_ADPCMWAVEFORMAT;
  2493. typedef YAMAHA_ADPCMWAVEFORMAT FAR  *LPYAMAHA_ADPCMWAVEFORMAT;
  2494.  
  2495. //
  2496. //  Speech Compression's Sonarc structure definitions
  2497. //
  2498. //      for WAVE_FORMAT_SONARC   (0x0021)
  2499. //
  2500. //
  2501.  
  2502. typedef struct sonarcwaveformat_tag {
  2503.         WAVEFORMATEX    wfx;
  2504.         WORD            wCompType;
  2505. } SONARCWAVEFORMAT;
  2506. typedef SONARCWAVEFORMAT       *PSONARCWAVEFORMAT;
  2507. typedef SONARCWAVEFORMAT NEAR *NPSONARCWAVEFORMAT;
  2508. typedef SONARCWAVEFORMAT FAR  *LPSONARCWAVEFORMAT;
  2509.  
  2510. //
  2511. //  DSP Groups's TRUESPEECH structure definitions
  2512. //
  2513. //      for WAVE_FORMAT_DSPGROUP_TRUESPEECH   (0x0022)
  2514. //
  2515. //
  2516.  
  2517. typedef struct truespeechwaveformat_tag {
  2518.         WAVEFORMATEX    wfx;
  2519.         WORD            wRevision;
  2520.         WORD            nSamplesPerBlock;
  2521.         BYTE            abReserved[28];
  2522. } TRUESPEECHWAVEFORMAT;
  2523. typedef TRUESPEECHWAVEFORMAT       *PTRUESPEECHWAVEFORMAT;
  2524. typedef TRUESPEECHWAVEFORMAT NEAR *NPTRUESPEECHWAVEFORMAT;
  2525. typedef TRUESPEECHWAVEFORMAT FAR  *LPTRUESPEECHWAVEFORMAT;
  2526.  
  2527. //
  2528. //  Echo Speech Corp structure definitions
  2529. //
  2530. //      for WAVE_FORMAT_ECHOSC1   (0x0023)
  2531. //
  2532. //
  2533.  
  2534. typedef struct echosc1waveformat_tag {
  2535.         WAVEFORMATEX    wfx;
  2536. } ECHOSC1WAVEFORMAT;
  2537. typedef ECHOSC1WAVEFORMAT       *PECHOSC1WAVEFORMAT;
  2538. typedef ECHOSC1WAVEFORMAT NEAR *NPECHOSC1WAVEFORMAT;
  2539. typedef ECHOSC1WAVEFORMAT FAR  *LPECHOSC1WAVEFORMAT;
  2540.  
  2541. //
  2542. //  Audiofile Inc.structure definitions
  2543. //
  2544. //      for WAVE_FORMAT_AUDIOFILE_AF36   (0x0024)
  2545. //
  2546. //
  2547.  
  2548. typedef struct audiofile_af36waveformat_tag {
  2549.         WAVEFORMATEX    wfx;
  2550. } AUDIOFILE_AF36WAVEFORMAT;
  2551. typedef AUDIOFILE_AF36WAVEFORMAT       *PAUDIOFILE_AF36WAVEFORMAT;
  2552. typedef AUDIOFILE_AF36WAVEFORMAT NEAR *NPAUDIOFILE_AF36WAVEFORMAT;
  2553. typedef AUDIOFILE_AF36WAVEFORMAT FAR  *LPAUDIOFILE_AF36WAVEFORMAT;
  2554.  
  2555. //
  2556. //  Audio Processing Technology structure definitions
  2557. //
  2558. //      for WAVE_FORMAT_APTX   (0x0025)
  2559. //
  2560. //
  2561. typedef struct aptxwaveformat_tag {
  2562.         WAVEFORMATEX    wfx;
  2563. } APTXWAVEFORMAT;
  2564. typedef APTXWAVEFORMAT       *PAPTXWAVEFORMAT;
  2565. typedef APTXWAVEFORMAT NEAR *NPAPTXWAVEFORMAT;
  2566. typedef APTXWAVEFORMAT FAR  *LPAPTXWAVEFORMAT;
  2567.  
  2568. //
  2569. //  Audiofile Inc.structure definitions
  2570. //
  2571. //      for WAVE_FORMAT_AUDIOFILE_AF10   (0x0026)
  2572. //
  2573. //
  2574.  
  2575. typedef struct audiofile_af10waveformat_tag {
  2576.         WAVEFORMATEX    wfx;
  2577. } AUDIOFILE_AF10WAVEFORMAT;
  2578. typedef AUDIOFILE_AF10WAVEFORMAT       *PAUDIOFILE_AF10WAVEFORMAT;
  2579. typedef AUDIOFILE_AF10WAVEFORMAT NEAR *NPAUDIOFILE_AF10WAVEFORMAT;
  2580. typedef AUDIOFILE_AF10WAVEFORMAT FAR  *LPAUDIOFILE_AF10WAVEFORMAT;
  2581.  
  2582. //
  2583. /* Dolby's AC-2 wave format structure definition
  2584.            WAVE_FORMAT_DOLBY_AC2    (0x0030)*/
  2585. //
  2586. typedef struct dolbyac2waveformat_tag {
  2587.         WAVEFORMATEX    wfx;
  2588.         WORD            nAuxBitsCode;
  2589. } DOLBYAC2WAVEFORMAT;
  2590.  
  2591. /*Microsoft's */
  2592. // WAVE_FORMAT_GSM 610           0x0031
  2593. //
  2594. typedef struct gsm610waveformat_tag {
  2595. WAVEFORMATEX    wfx;
  2596. WORD                    wSamplesPerBlock;
  2597. } GSM610WAVEFORMAT;
  2598. typedef GSM610WAVEFORMAT *PGSM610WAVEFORMAT;
  2599. typedef GSM610WAVEFORMAT NEAR    *NPGSM610WAVEFORMAT;
  2600. typedef GSM610WAVEFORMAT FAR     *LPGSM610WAVEFORMAT;
  2601.  
  2602. //
  2603. //      Antex Electronics Corp
  2604. //
  2605. //      for WAVE_FORMAT_ADPCME                  (0x0033)
  2606. //
  2607. //
  2608.  
  2609. typedef struct adpcmewaveformat_tag {
  2610.         WAVEFORMATEX    wfx;
  2611.         WORD            wSamplesPerBlock;
  2612. } ADPCMEWAVEFORMAT;
  2613. typedef ADPCMEWAVEFORMAT                *PADPCMEWAVEFORMAT;
  2614. typedef ADPCMEWAVEFORMAT NEAR   *NPADPCMEWAVEFORMAT;
  2615. typedef ADPCMEWAVEFORMAT FAR    *LPADPCMEWAVEFORMAT;
  2616.  
  2617. /*       Control Resources Limited */
  2618. // WAVE_FORMAT_CONTROL_RES_VQLPC                 0x0034
  2619. //
  2620. typedef struct contres_vqlpcwaveformat_tag {
  2621. WAVEFORMATEX    wfx;
  2622. WORD                    wSamplesPerBlock;
  2623. } CONTRESVQLPCWAVEFORMAT;
  2624. typedef CONTRESVQLPCWAVEFORMAT *PCONTRESVQLPCWAVEFORMAT;
  2625. typedef CONTRESVQLPCWAVEFORMAT NEAR      *NPCONTRESVQLPCWAVEFORMAT;
  2626. typedef CONTRESVQLPCWAVEFORMAT FAR       *LPCONTRESVQLPCWAVEFORMAT;
  2627.  
  2628. //
  2629. //
  2630. //
  2631. //      for WAVE_FORMAT_DIGIREAL                   (0x0035)
  2632. //
  2633. //
  2634.  
  2635. typedef struct digirealwaveformat_tag {
  2636.         WAVEFORMATEX    wfx;
  2637.         WORD            wSamplesPerBlock;
  2638. } DIGIREALWAVEFORMAT;
  2639. typedef DIGIREALWAVEFORMAT *PDIGIREALWAVEFORMAT;
  2640. typedef DIGIREALWAVEFORMAT NEAR *NPDIGIREALWAVEFORMAT;
  2641. typedef DIGIREALWAVEFORMAT FAR *LPDIGIREALWAVEFORMAT;
  2642.  
  2643. //
  2644. //  DSP Solutions
  2645. //
  2646. //      for WAVE_FORMAT_DIGIADPCM   (0x0036)
  2647. //
  2648. //
  2649.  
  2650. typedef struct digiadpcmmwaveformat_tag {
  2651.         WAVEFORMATEX    wfx;
  2652.         WORD            wSamplesPerBlock;
  2653. } DIGIADPCMWAVEFORMAT;
  2654. typedef DIGIADPCMWAVEFORMAT       *PDIGIADPCMWAVEFORMAT;
  2655. typedef DIGIADPCMWAVEFORMAT NEAR *NPDIGIADPCMWAVEFORMAT;
  2656. typedef DIGIADPCMWAVEFORMAT FAR  *LPDIGIADPCMWAVEFORMAT;
  2657.  
  2658. /*       Control Resources Limited */
  2659. // WAVE_FORMAT_CONTROL_RES_CR10          0x0037
  2660. //
  2661. typedef struct contres_cr10waveformat_tag {
  2662. WAVEFORMATEX    wfx;
  2663. WORD                    wSamplesPerBlock;
  2664. } CONTRESCR10WAVEFORMAT;
  2665. typedef CONTRESCR10WAVEFORMAT *PCONTRESCR10WAVEFORMAT;
  2666. typedef CONTRESCR10WAVEFORMAT NEAR       *NPCONTRESCR10WAVEFORMAT;
  2667. typedef CONTRESCR10WAVEFORMAT FAR        *LPCONTRESCR10WAVEFORMAT;
  2668.  
  2669. //
  2670. //  Natural Microsystems
  2671. //
  2672. //      for WAVE_FORMAT_NMS_VBXADPCM   (0x0038)
  2673. //
  2674. //
  2675.  
  2676. typedef struct nms_vbxadpcmmwaveformat_tag {
  2677.         WAVEFORMATEX    wfx;
  2678.         WORD            wSamplesPerBlock;
  2679. } NMS_VBXADPCMWAVEFORMAT;
  2680. typedef NMS_VBXADPCMWAVEFORMAT       *PNMS_VBXADPCMWAVEFORMAT;
  2681. typedef NMS_VBXADPCMWAVEFORMAT NEAR *NPNMS_VBXADPCMWAVEFORMAT;
  2682. typedef NMS_VBXADPCMWAVEFORMAT FAR  *LPNMS_VBXADPCMWAVEFORMAT;
  2683.  
  2684. //
  2685. //  Antex Electronics  structure definitions
  2686. //
  2687. //      for WAVE_FORMAT_G721_ADPCM   (0x0040)
  2688. //
  2689. //
  2690.  
  2691. typedef struct g721_adpcmwaveformat_tag {
  2692.         WAVEFORMATEX    wfx;
  2693.         WORD            nAuxBlockSize;
  2694. } G721_ADPCMWAVEFORMAT;
  2695. typedef G721_ADPCMWAVEFORMAT *PG721_ADPCMWAVEFORMAT;
  2696. typedef G721_ADPCMWAVEFORMAT NEAR *NPG721_ADPCMWAVEFORMAT;
  2697. typedef G721_ADPCMWAVEFORMAT FAR  *LPG721_ADPCMWAVEFORMAT;
  2698.  
  2699. //
  2700. //
  2701. // Microsoft MPEG audio WAV definition
  2702. //
  2703. /*  MPEG-1 audio wave format (audio layer only).   (0x0050)   */
  2704. typedef struct mpeg1waveformat_tag {
  2705.     WAVEFORMATEX    wfx;
  2706.     WORD            fwHeadLayer;
  2707.     DWORD           dwHeadBitrate;
  2708.     WORD            fwHeadMode;
  2709.     WORD            fwHeadModeExt;
  2710.     WORD            wHeadEmphasis;
  2711.     WORD            fwHeadFlags;
  2712.     DWORD           dwPTSLow;
  2713.     DWORD           dwPTSHigh;
  2714. } MPEG1WAVEFORMAT;
  2715. typedef MPEG1WAVEFORMAT                 *PMPEG1WAVEFORMAT;
  2716. typedef MPEG1WAVEFORMAT NEAR           *NPMPEG1WAVEFORMAT;
  2717. typedef MPEG1WAVEFORMAT FAR            *LPMPEG1WAVEFORMAT;
  2718.  
  2719. #define ACM_MPEG_LAYER1             (0x0001)
  2720. #define ACM_MPEG_LAYER2             (0x0002)
  2721. #define ACM_MPEG_LAYER3             (0x0004)
  2722. #define ACM_MPEG_STEREO             (0x0001)
  2723. #define ACM_MPEG_JOINTSTEREO        (0x0002)
  2724. #define ACM_MPEG_DUALCHANNEL        (0x0004)
  2725. #define ACM_MPEG_SINGLECHANNEL      (0x0008)
  2726. #define ACM_MPEG_PRIVATEBIT         (0x0001)
  2727. #define ACM_MPEG_COPYRIGHT          (0x0002)
  2728. #define ACM_MPEG_ORIGINALHOME       (0x0004)
  2729. #define ACM_MPEG_PROTECTIONBIT      (0x0008)
  2730. #define ACM_MPEG_ID_MPEG1           (0x0010)
  2731.  
  2732. //
  2733. // MPEG Layer3 WAVEFORMATEX structure
  2734. // for WAVE_FORMAT_MPEGLAYER3 (0x0055)
  2735. //
  2736. #define MPEGLAYER3_WFX_EXTRA_BYTES   12
  2737.  
  2738. // WAVE_FORMAT_MPEGLAYER3 format sructure
  2739. //
  2740. typedef struct mpeglayer3waveformat_tag {
  2741.   WAVEFORMATEX  wfx;
  2742.   WORD          wID;
  2743.   DWORD         fdwFlags;
  2744.   WORD          nBlockSize;
  2745.   WORD          nFramesPerBlock;
  2746.   WORD          nCodecDelay;
  2747. } MPEGLAYER3WAVEFORMAT;
  2748.  
  2749. typedef MPEGLAYER3WAVEFORMAT          *PMPEGLAYER3WAVEFORMAT;
  2750. typedef MPEGLAYER3WAVEFORMAT NEAR    *NPMPEGLAYER3WAVEFORMAT;
  2751. typedef MPEGLAYER3WAVEFORMAT FAR     *LPMPEGLAYER3WAVEFORMAT;
  2752.  
  2753. //==========================================================================;
  2754.  
  2755. #define MPEGLAYER3_ID_UNKNOWN            0
  2756. #define MPEGLAYER3_ID_MPEG               1
  2757. #define MPEGLAYER3_ID_CONSTANTFRAMESIZE  2
  2758.  
  2759. #define MPEGLAYER3_FLAG_PADDING_ISO      0x00000000
  2760. #define MPEGLAYER3_FLAG_PADDING_ON       0x00000001
  2761. #define MPEGLAYER3_FLAG_PADDING_OFF      0x00000002
  2762.  
  2763. //
  2764. //  Creative's ADPCM structure definitions
  2765. //
  2766. //      for WAVE_FORMAT_CREATIVE_ADPCM   (0x0200)
  2767. //
  2768. //
  2769.  
  2770. typedef struct creative_adpcmwaveformat_tag {
  2771.         WAVEFORMATEX    wfx;
  2772.         WORD            wRevision;
  2773. } CREATIVEADPCMWAVEFORMAT;
  2774. typedef CREATIVEADPCMWAVEFORMAT       *PCREATIVEADPCMWAVEFORMAT;
  2775. typedef CREATIVEADPCMWAVEFORMAT NEAR *NPCREATIVEADPCMWAVEFORMAT;
  2776. typedef CREATIVEADPCMWAVEFORMAT FAR  *LPCREATIVEADPCMWAVEFORMAT;
  2777.  
  2778. //
  2779. //    Creative FASTSPEECH
  2780. // WAVEFORMAT_CREATIVE_FASTSPEECH8   (0x0202)
  2781. //
  2782. typedef struct creative_fastspeech8format_tag {
  2783.         WAVEFORMATEX    wfx;
  2784.         WORD wRevision;
  2785. } CREATIVEFASTSPEECH8WAVEFORMAT;
  2786. typedef CREATIVEFASTSPEECH8WAVEFORMAT       *PCREATIVEFASTSPEECH8WAVEFORMAT;
  2787. typedef CREATIVEFASTSPEECH8WAVEFORMAT NEAR *NPCREATIVEFASTSPEECH8WAVEFORMAT;
  2788. typedef CREATIVEFASTSPEECH8WAVEFORMAT FAR  *LPCREATIVEFASTSPEECH8WAVEFORMAT;
  2789. //
  2790. //    Creative FASTSPEECH
  2791. // WAVEFORMAT_CREATIVE_FASTSPEECH10   (0x0203)
  2792. //
  2793. typedef struct creative_fastspeech10format_tag {
  2794.         WAVEFORMATEX    wfx;
  2795.         WORD wRevision;
  2796. } CREATIVEFASTSPEECH10WAVEFORMAT;
  2797. typedef CREATIVEFASTSPEECH10WAVEFORMAT       *PCREATIVEFASTSPEECH10WAVEFORMAT;
  2798. typedef CREATIVEFASTSPEECH10WAVEFORMAT NEAR *NPCREATIVEFASTSPEECH10WAVEFORMAT;
  2799. typedef CREATIVEFASTSPEECH10WAVEFORMAT FAR  *LPCREATIVEFASTSPEECH10WAVEFORMAT;
  2800.  
  2801. //
  2802. //  Fujitsu FM Towns 'SND' structure
  2803. //
  2804. //      for WAVE_FORMAT_FMMTOWNS_SND   (0x0300)
  2805. //
  2806. //
  2807.  
  2808. typedef struct fmtowns_snd_waveformat_tag {
  2809.         WAVEFORMATEX    wfx;
  2810.         WORD            wRevision;
  2811. } FMTOWNS_SND_WAVEFORMAT;
  2812. typedef FMTOWNS_SND_WAVEFORMAT       *PFMTOWNS_SND_WAVEFORMAT;
  2813. typedef FMTOWNS_SND_WAVEFORMAT NEAR *NPFMTOWNS_SND_WAVEFORMAT;
  2814. typedef FMTOWNS_SND_WAVEFORMAT FAR  *LPFMTOWNS_SND_WAVEFORMAT;
  2815.  
  2816. //
  2817. //  Olivetti structure
  2818. //
  2819. //      for WAVE_FORMAT_OLIGSM   (0x1000)
  2820. //
  2821. //
  2822.  
  2823. typedef struct oligsmwaveformat_tag {
  2824.         WAVEFORMATEX    wfx;
  2825. } OLIGSMWAVEFORMAT;
  2826. typedef OLIGSMWAVEFORMAT     *POLIGSMWAVEFORMAT;
  2827. typedef OLIGSMWAVEFORMAT NEAR *NPOLIGSMWAVEFORMAT;
  2828. typedef OLIGSMWAVEFORMAT  FAR  *LPOLIGSMWAVEFORMAT;
  2829.  
  2830. //
  2831. //  Olivetti structure
  2832. //
  2833. //      for WAVE_FORMAT_OLIADPCM   (0x1001)
  2834. //
  2835. //
  2836.  
  2837. typedef struct oliadpcmwaveformat_tag {
  2838.         WAVEFORMATEX    wfx;
  2839. } OLIADPCMWAVEFORMAT;
  2840. typedef OLIADPCMWAVEFORMAT     *POLIADPCMWAVEFORMAT;
  2841. typedef OLIADPCMWAVEFORMAT NEAR *NPOLIADPCMWAVEFORMAT ;
  2842. typedef OLIADPCMWAVEFORMAT  FAR  *LPOLIADPCMWAVEFORMAT;
  2843.  
  2844. //
  2845. //  Olivetti structure
  2846. //
  2847. //      for WAVE_FORMAT_OLICELP   (0x1002)
  2848. //
  2849. //
  2850.  
  2851. typedef struct olicelpwaveformat_tag {
  2852.         WAVEFORMATEX    wfx;
  2853. } OLICELPWAVEFORMAT;
  2854. typedef OLICELPWAVEFORMAT     *POLICELPWAVEFORMAT;
  2855. typedef OLICELPWAVEFORMAT NEAR *NPOLICELPWAVEFORMAT ;
  2856. typedef OLICELPWAVEFORMAT  FAR  *LPOLICELPWAVEFORMAT;
  2857.  
  2858. //
  2859. //  Olivetti structure
  2860. //
  2861. //      for WAVE_FORMAT_OLISBC   (0x1003)
  2862. //
  2863. //
  2864.  
  2865. typedef struct olisbcwaveformat_tag {
  2866.         WAVEFORMATEX    wfx;
  2867. } OLISBCWAVEFORMAT;
  2868. typedef OLISBCWAVEFORMAT     *POLISBCWAVEFORMAT;
  2869. typedef OLISBCWAVEFORMAT NEAR *NPOLISBCWAVEFORMAT ;
  2870. typedef OLISBCWAVEFORMAT  FAR  *LPOLISBCWAVEFORMAT;
  2871.  
  2872. //
  2873. //  Olivetti structure
  2874. //
  2875. //      for WAVE_FORMAT_OLIOPR   (0x1004)
  2876. //
  2877. //
  2878.  
  2879. typedef struct olioprwaveformat_tag {
  2880.         WAVEFORMATEX    wfx;
  2881. } OLIOPRWAVEFORMAT;
  2882. typedef OLIOPRWAVEFORMAT     *POLIOPRWAVEFORMAT;
  2883. typedef OLIOPRWAVEFORMAT NEAR *NPOLIOPRWAVEFORMAT ;
  2884. typedef OLIOPRWAVEFORMAT  FAR  *LPOLIOPRWAVEFORMAT;
  2885.  
  2886. //
  2887. //  Crystal Semiconductor IMA ADPCM format
  2888. //
  2889. //      for WAVE_FORMAT_CS_IMAADPCM   (0x0039)
  2890. //
  2891. //
  2892.  
  2893. typedef struct csimaadpcmwaveformat_tag {
  2894.         WAVEFORMATEX    wfx;
  2895. } CSIMAADPCMWAVEFORMAT;
  2896. typedef CSIMAADPCMWAVEFORMAT     *PCSIMAADPCMWAVEFORMAT;
  2897. typedef CSIMAADPCMWAVEFORMAT NEAR *NPCSIMAADPCMWAVEFORMAT ;
  2898. typedef CSIMAADPCMWAVEFORMAT  FAR  *LPCSIMAADPCMWAVEFORMAT;
  2899.  
  2900. //==========================================================================;
  2901. //
  2902. //  ACM Wave Filters
  2903. //
  2904. //
  2905. //==========================================================================;
  2906.  
  2907. #ifndef _ACM_WAVEFILTER
  2908. #define _ACM_WAVEFILTER
  2909.  
  2910. #define WAVE_FILTER_UNKNOWN         0x0000
  2911. #define WAVE_FILTER_DEVELOPMENT    (0xFFFF)
  2912.  
  2913. typedef struct wavefilter_tag {
  2914.     DWORD   cbStruct;           /* Size of the filter in bytes */
  2915.     DWORD   dwFilterTag;        /* filter type */
  2916.     DWORD   fdwFilter;          /* Flags for the filter (Universal Dfns) */
  2917.     DWORD   dwReserved[5];      /* Reserved for system use */
  2918. } WAVEFILTER;
  2919. typedef WAVEFILTER       *PWAVEFILTER;
  2920. typedef WAVEFILTER NEAR *NPWAVEFILTER;
  2921. typedef WAVEFILTER FAR  *LPWAVEFILTER;
  2922.  
  2923. #endif  /* _ACM_WAVEFILTER */
  2924.  
  2925. #ifndef WAVE_FILTER_VOLUME
  2926. #define WAVE_FILTER_VOLUME      0x0001
  2927.  
  2928. typedef struct wavefilter_volume_tag {
  2929.         WAVEFILTER      wfltr;
  2930.         DWORD           dwVolume;
  2931. } VOLUMEWAVEFILTER;
  2932. typedef VOLUMEWAVEFILTER       *PVOLUMEWAVEFILTER;
  2933. typedef VOLUMEWAVEFILTER NEAR *NPVOLUMEWAVEFILTER;
  2934. typedef VOLUMEWAVEFILTER FAR  *LPVOLUMEWAVEFILTER;
  2935.  
  2936. #endif  /* WAVE_FILTER_VOLUME */
  2937.  
  2938. #ifndef WAVE_FILTER_ECHO
  2939. #define WAVE_FILTER_ECHO        0x0002
  2940.  
  2941. typedef struct wavefilter_echo_tag {
  2942.         WAVEFILTER      wfltr;
  2943.         DWORD           dwVolume;
  2944.         DWORD           dwDelay;
  2945. } ECHOWAVEFILTER;
  2946. typedef ECHOWAVEFILTER       *PECHOWAVEFILTER;
  2947. typedef ECHOWAVEFILTER NEAR *NPECHOWAVEFILTER;
  2948. typedef ECHOWAVEFILTER FAR  *LPECHOWAVEFILTER;
  2949.  
  2950. #endif  /* WAVEFILTER_ECHO */
  2951.  
  2952. /* ------------------------------------------------------------------------------ */
  2953. //
  2954. // New RIFF WAVE Chunks
  2955. //
  2956.  
  2957. #define RIFFWAVE_inst   mmioFOURCC('i','n','s','t')
  2958.  
  2959. struct tag_s_RIFFWAVE_inst {
  2960.     BYTE    bUnshiftedNote;
  2961.     char    chFineTune;
  2962.     char    chGain;
  2963.     BYTE    bLowNote;
  2964.     BYTE    bHighNote;
  2965.     BYTE    bLowVelocity;
  2966.     BYTE    bHighVelocity;
  2967. };
  2968.  
  2969. typedef struct tag_s_RIFFWAVE_INST s_RIFFWAVE_inst;
  2970.  
  2971. #endif
  2972.  
  2973. /* ------------------------------------------------------------------------------ */
  2974. //
  2975. // New RIFF Forms
  2976. //
  2977.  
  2978. #ifndef NONEWRIFF
  2979.  
  2980. /* RIFF AVI */
  2981.  
  2982. //
  2983. // AVI file format is specified in a seperate file (AVIFMT.H),
  2984. // which is available in the VfW and Win 32 SDK
  2985. //
  2986.  
  2987. /* RIFF CPPO */
  2988.  
  2989. #define RIFFCPPO        mmioFOURCC('C','P','P','O')
  2990.  
  2991. #define RIFFCPPO_objr   mmioFOURCC('o','b','j','r')
  2992. #define RIFFCPPO_obji   mmioFOURCC('o','b','j','i')
  2993.  
  2994. #define RIFFCPPO_clsr   mmioFOURCC('c','l','s','r')
  2995. #define RIFFCPPO_clsi   mmioFOURCC('c','l','s','i')
  2996.  
  2997. #define RIFFCPPO_mbr    mmioFOURCC('m','b','r',' ')
  2998.  
  2999. #define RIFFCPPO_char   mmioFOURCC('c','h','a','r')
  3000.  
  3001. #define RIFFCPPO_byte   mmioFOURCC('b','y','t','e')
  3002. #define RIFFCPPO_int    mmioFOURCC('i','n','t',' ')
  3003. #define RIFFCPPO_word   mmioFOURCC('w','o','r','d')
  3004. #define RIFFCPPO_long   mmioFOURCC('l','o','n','g')
  3005. #define RIFFCPPO_dwrd   mmioFOURCC('d','w','r','d')
  3006. #define RIFFCPPO_flt    mmioFOURCC('f','l','t',' ')
  3007. #define RIFFCPPO_dbl    mmioFOURCC('d','b','l',' ')
  3008. #define RIFFCPPO_str    mmioFOURCC('s','t','r',' ')
  3009.  
  3010. #endif
  3011.  
  3012. /*
  3013. //////////////////////////////////////////////////////////////////////////
  3014. //
  3015. // DIB Compression Defines
  3016. //
  3017. */
  3018.  
  3019. #ifndef BI_BITFIELDS
  3020. #define BI_BITFIELDS    3
  3021. #endif
  3022.  
  3023. #ifndef QUERYDIBSUPPORT
  3024.  
  3025. #define QUERYDIBSUPPORT 3073
  3026. #define QDI_SETDIBITS   0x0001
  3027. #define QDI_GETDIBITS   0x0002
  3028. #define QDI_DIBTOSCREEN 0x0004
  3029. #define QDI_STRETCHDIB  0x0008
  3030.  
  3031. #endif
  3032.  
  3033. #ifndef NOBITMAP
  3034. /* Structure definitions */
  3035.  
  3036. typedef struct tagEXBMINFOHEADER {
  3037.         BITMAPINFOHEADER    bmi;
  3038.         /* extended BITMAPINFOHEADER fields */
  3039.         DWORD   biExtDataOffset;
  3040.  
  3041.         /* Other stuff will go here */
  3042.  
  3043.         /* ... */
  3044.  
  3045.         /* Format-specific information */
  3046.         /* biExtDataOffset points here */
  3047.  
  3048. } EXBMINFOHEADER;
  3049.  
  3050. #endif          //NOBITMAP
  3051.  
  3052. /* New DIB Compression Defines */
  3053.  
  3054. #define BICOMP_IBMULTIMOTION    mmioFOURCC('U', 'L', 'T', 'I')
  3055. #define BICOMP_IBMPHOTOMOTION   mmioFOURCC('P', 'H', 'M', 'O')
  3056. #define BICOMP_CREATIVEYUV      mmioFOURCC('c', 'y', 'u', 'v')
  3057.  
  3058. #ifndef NOJPEGDIB
  3059.  
  3060. /* New DIB Compression Defines */
  3061. #define JPEG_DIB        mmioFOURCC('J','P','E','G')    /* Still image JPEG DIB biCompression */
  3062. #define MJPG_DIB        mmioFOURCC('M','J','P','G')    /* Motion JPEG DIB biCompression     */
  3063.  
  3064. /* JPEGProcess Definitions */
  3065. #define JPEG_PROCESS_BASELINE           0       /* Baseline DCT */
  3066.  
  3067. /* AVI File format extensions */
  3068. #define AVIIF_CONTROLFRAME              0x00000200L     /* This is a control frame */
  3069.  
  3070.     /* JIF Marker byte pairs in JPEG Interchange Format sequence */
  3071. #define JIFMK_SOF0    0xFFC0   /* SOF Huff  - Baseline DCT*/
  3072. #define JIFMK_SOF1    0xFFC1   /* SOF Huff  - Extended sequential DCT*/
  3073. #define JIFMK_SOF2    0xFFC2   /* SOF Huff  - Progressive DCT*/
  3074. #define JIFMK_SOF3    0xFFC3   /* SOF Huff  - Spatial (sequential) lossless*/
  3075. #define JIFMK_SOF5    0xFFC5   /* SOF Huff  - Differential sequential DCT*/
  3076. #define JIFMK_SOF6    0xFFC6   /* SOF Huff  - Differential progressive DCT*/
  3077. #define JIFMK_SOF7    0xFFC7   /* SOF Huff  - Differential spatial*/
  3078. #define JIFMK_JPG     0xFFC8   /* SOF Arith - Reserved for JPEG extensions*/
  3079. #define JIFMK_SOF9    0xFFC9   /* SOF Arith - Extended sequential DCT*/
  3080. #define JIFMK_SOF10   0xFFCA   /* SOF Arith - Progressive DCT*/
  3081. #define JIFMK_SOF11   0xFFCB   /* SOF Arith - Spatial (sequential) lossless*/
  3082. #define JIFMK_SOF13   0xFFCD   /* SOF Arith - Differential sequential DCT*/
  3083. #define JIFMK_SOF14   0xFFCE   /* SOF Arith - Differential progressive DCT*/
  3084. #define JIFMK_SOF15   0xFFCF   /* SOF Arith - Differential spatial*/
  3085. #define JIFMK_DHT     0xFFC4   /* Define Huffman Table(s) */
  3086. #define JIFMK_DAC     0xFFCC   /* Define Arithmetic coding conditioning(s) */
  3087. #define JIFMK_RST0    0xFFD0   /* Restart with modulo 8 count 0 */
  3088. #define JIFMK_RST1    0xFFD1   /* Restart with modulo 8 count 1 */
  3089. #define JIFMK_RST2    0xFFD2   /* Restart with modulo 8 count 2 */
  3090. #define JIFMK_RST3    0xFFD3   /* Restart with modulo 8 count 3 */
  3091. #define JIFMK_RST4    0xFFD4   /* Restart with modulo 8 count 4 */
  3092. #define JIFMK_RST5    0xFFD5   /* Restart with modulo 8 count 5 */
  3093. #define JIFMK_RST6    0xFFD6   /* Restart with modulo 8 count 6 */
  3094. #define JIFMK_RST7    0xFFD7   /* Restart with modulo 8 count 7 */
  3095. #define JIFMK_SOI     0xFFD8   /* Start of Image */
  3096. #define JIFMK_EOI     0xFFD9   /* End of Image */
  3097. #define JIFMK_SOS     0xFFDA   /* Start of Scan */
  3098. #define JIFMK_DQT     0xFFDB   /* Define quantization Table(s) */
  3099. #define JIFMK_DNL     0xFFDC   /* Define Number of Lines */
  3100. #define JIFMK_DRI     0xFFDD   /* Define Restart Interval */
  3101. #define JIFMK_DHP     0xFFDE   /* Define Hierarchical progression */
  3102. #define JIFMK_EXP     0xFFDF   /* Expand Reference Component(s) */
  3103. #define JIFMK_APP0    0xFFE0   /* Application Field 0*/
  3104. #define JIFMK_APP1    0xFFE1   /* Application Field 1*/
  3105. #define JIFMK_APP2    0xFFE2   /* Application Field 2*/
  3106. #define JIFMK_APP3    0xFFE3   /* Application Field 3*/
  3107. #define JIFMK_APP4    0xFFE4   /* Application Field 4*/
  3108. #define JIFMK_APP5    0xFFE5   /* Application Field 5*/
  3109. #define JIFMK_APP6    0xFFE6   /* Application Field 6*/
  3110. #define JIFMK_APP7    0xFFE7   /* Application Field 7*/
  3111. #define JIFMK_JPG0    0xFFF0   /* Reserved for JPEG extensions */
  3112. #define JIFMK_JPG1    0xFFF1   /* Reserved for JPEG extensions */
  3113. #define JIFMK_JPG2    0xFFF2   /* Reserved for JPEG extensions */
  3114. #define JIFMK_JPG3    0xFFF3   /* Reserved for JPEG extensions */
  3115. #define JIFMK_JPG4    0xFFF4   /* Reserved for JPEG extensions */
  3116. #define JIFMK_JPG5    0xFFF5   /* Reserved for JPEG extensions */
  3117. #define JIFMK_JPG6    0xFFF6   /* Reserved for JPEG extensions */
  3118. #define JIFMK_JPG7    0xFFF7   /* Reserved for JPEG extensions */
  3119. #define JIFMK_JPG8    0xFFF8   /* Reserved for JPEG extensions */
  3120. #define JIFMK_JPG9    0xFFF9   /* Reserved for JPEG extensions */
  3121. #define JIFMK_JPG10   0xFFFA   /* Reserved for JPEG extensions */
  3122. #define JIFMK_JPG11   0xFFFB   /* Reserved for JPEG extensions */
  3123. #define JIFMK_JPG12   0xFFFC   /* Reserved for JPEG extensions */
  3124. #define JIFMK_JPG13   0xFFFD   /* Reserved for JPEG extensions */
  3125. #define JIFMK_COM     0xFFFE   /* Comment */
  3126. #define JIFMK_TEM     0xFF01   /* for temp private use arith code */
  3127. #define JIFMK_RES     0xFF02   /* Reserved */
  3128. #define JIFMK_00      0xFF00   /* Zero stuffed byte - entropy data */
  3129. #define JIFMK_FF      0xFFFF   /* Fill byte */
  3130.  
  3131. /* JPEGColorSpaceID Definitions */
  3132. #define JPEG_Y          1       /* Y only component of YCbCr */
  3133. #define JPEG_YCbCr      2       /* YCbCr as define by CCIR 601 */
  3134. #define JPEG_RGB        3       /* 3 component RGB */
  3135.  
  3136. /* Structure definitions */
  3137.  
  3138. typedef struct tagJPEGINFOHEADER {
  3139.     /* compression-specific fields */
  3140.     /* these fields are defined for 'JPEG' and 'MJPG' */
  3141.     DWORD       JPEGSize;
  3142.     DWORD       JPEGProcess;
  3143.  
  3144.     /* Process specific fields */
  3145.     DWORD       JPEGColorSpaceID;
  3146.     DWORD       JPEGBitsPerSample;
  3147.     DWORD       JPEGHSubSampling;
  3148.     DWORD       JPEGVSubSampling;
  3149. } JPEGINFOHEADER;
  3150.  
  3151. #ifdef MJPGDHTSEG_STORAGE
  3152.  
  3153. /* Default DHT Segment */
  3154.  
  3155. MJPGHDTSEG_STORAGE BYTE MJPGDHTSeg[0x1A4] = {
  3156.  /* JPEG DHT Segment for YCrCb omitted from MJPG data */
  3157. 0xFF,0xC4,0x01,0xA2,
  3158. 0x00,0x00,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  3159. 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x01,0x00,0x03,0x01,0x01,0x01,0x01,
  3160. 0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
  3161. 0x08,0x09,0x0A,0x0B,0x10,0x00,0x02,0x01,0x03,0x03,0x02,0x04,0x03,0x05,0x05,0x04,0x04,0x00,
  3162. 0x00,0x01,0x7D,0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,0x21,0x31,0x41,0x06,0x13,0x51,0x61,
  3163. 0x07,0x22,0x71,0x14,0x32,0x81,0x91,0xA1,0x08,0x23,0x42,0xB1,0xC1,0x15,0x52,0xD1,0xF0,0x24,
  3164. 0x33,0x62,0x72,0x82,0x09,0x0A,0x16,0x17,0x18,0x19,0x1A,0x25,0x26,0x27,0x28,0x29,0x2A,0x34,
  3165. 0x35,0x36,0x37,0x38,0x39,0x3A,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x53,0x54,0x55,0x56,
  3166. 0x57,0x58,0x59,0x5A,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x73,0x74,0x75,0x76,0x77,0x78,
  3167. 0x79,0x7A,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,
  3168. 0x9A,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,
  3169. 0xBA,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,
  3170. 0xDA,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,
  3171. 0xF8,0xF9,0xFA,0x11,0x00,0x02,0x01,0x02,0x04,0x04,0x03,0x04,0x07,0x05,0x04,0x04,0x00,0x01,
  3172. 0x02,0x77,0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,
  3173. 0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,0xA1,0xB1,0xC1,0x09,0x23,0x33,0x52,0xF0,0x15,0x62,
  3174. 0x72,0xD1,0x0A,0x16,0x24,0x34,0xE1,0x25,0xF1,0x17,0x18,0x19,0x1A,0x26,0x27,0x28,0x29,0x2A,
  3175. 0x35,0x36,0x37,0x38,0x39,0x3A,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x53,0x54,0x55,0x56,
  3176. 0x57,0x58,0x59,0x5A,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x73,0x74,0x75,0x76,0x77,0x78,
  3177. 0x79,0x7A,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
  3178. 0x99,0x9A,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,
  3179. 0xB9,0xBA,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,
  3180. 0xD9,0xDA,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,
  3181. 0xF9,0xFA
  3182. };
  3183.  
  3184. /* End DHT default */
  3185. #endif
  3186.  
  3187. /* End JPEG */
  3188. #endif
  3189.  
  3190. /* ------------------------------------------------------------------------------ */
  3191. //
  3192. // Defined IC types
  3193. //
  3194.  
  3195. #ifndef NONEWIC
  3196.  
  3197. #ifndef ICTYPE_VIDEO
  3198. #define ICTYPE_VIDEO    mmioFOURCC('v', 'i', 'd', 'c')
  3199. #define ICTYPE_AUDIO    mmioFOURCC('a', 'u', 'd', 'c')
  3200. #endif
  3201.  
  3202. #endif
  3203. /*
  3204. //   Misc. FOURCC registration
  3205. */
  3206.  
  3207. /* Sierra Semiconductor: RDSP- Confidential RIFF file format
  3208. //       for the storage and downloading of DSP
  3209. //       code for Audio and communications devices.
  3210. */
  3211. #define FOURCC_RDSP mmioFOURCC('R', 'D', 'S', 'P')
  3212.  
  3213. #ifndef MMNOMIXER
  3214. #define MIXERCONTROL_CONTROLTYPE_SRS_MTS                (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 6)
  3215. #define MIXERCONTROL_CONTROLTYPE_SRS_ONOFF              (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 7)
  3216. #define MIXERCONTROL_CONTROLTYPE_SRS_SYNTHSELECT        (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 8)
  3217. #endif
  3218.  
  3219. #if !defined( RC_INVOKED ) && defined( _MSC_VER )
  3220. #if _MSC_VER <= 800
  3221. #pragma pack(1)
  3222. #else
  3223. #include "poppack.h"    /* Revert to default packing */
  3224. #endif
  3225. #endif  /* RC_INVOKED */
  3226.  
  3227. #ifdef __cplusplus
  3228. }                       /* End of extern "C" { */
  3229. #endif  /* __cplusplus */
  3230.  
  3231. #pragma option pop /*P_O_Pop*/
  3232. #endif  /* _INC_MMREG */
  3233.