Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3289 lines
148 KiB

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