home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / msinc.pak / MMREG.H < prev    next >
C/C++ Source or Header  |  1997-07-23  |  70KB  |  1,634 lines

  1. /****************************************************************************
  2.  *
  3.  *   mmreg.h  - Registered Multimedia Information Public Header File
  4.  *
  5.  *   Copyright (c) 1991-1995 Microsoft Corporation.  All Rights Reserved.
  6.  *
  7.  * Multimedia Registration
  8.  *
  9.  * Place this system include file in your INCLUDE path with the Windows SDK
  10.  * include files.
  11.  *
  12.  * Obtain the Multimedia Developer Registration Kit from Compuserve in WINMM mrdk.zip.
  13.  * Please send applications and corrections to
  14.  *
  15.  *  Multimedia Registrations
  16.  *  Microsoft Corporation
  17.  *  Multimedia Technology Group
  18.  *  One Microsoft Way
  19.  *  Redmond, WA 98052-6399
  20.  *
  21.  * Developer Services:
  22.  * 800-227-4679 x11771
  23.  *
  24.  * Last Update:  04/05/94  *
  25.  ***************************************************************************/
  26.  
  27. // Define the following to skip definitions
  28. //
  29. // NOMMIDS      Multimedia IDs are not defined
  30. // NONEWWAVE    No new waveform types are defined except WAVEFORMATEX
  31. // NONEWRIFF    No new RIFF forms are defined
  32. // NOJPEGDIB    No JPEG DIB definitions
  33. // NONEWIC      No new Image Compressor types are defined
  34. // NOBITMAP     No extended bitmap info header definition
  35.  
  36. #ifndef _INC_MMREG
  37. /* use version number to verify compatibility */
  38. #define _INC_MMREG     144      // version * 100 + revision
  39.  
  40. #ifndef RC_INVOKED
  41. #pragma pack(1)         /* Assume byte packing throughout */
  42. //NT #include "pshpack1.h"   /* Assume byte packing throughout */
  43. #endif  /* RC_INVOKED */
  44.  
  45. #ifdef __cplusplus
  46. extern "C" {            /* Assume C declarations for C++ */
  47. #endif  /* __cplusplus */
  48.  
  49. #ifndef NOMMIDS
  50.  
  51. /* manufacturer IDs */
  52. #ifndef MM_MICROSOFT
  53. #define   MM_MICROSOFT                  1          /*  Microsoft Corporation  */
  54. #endif
  55.  
  56. #define   MM_CREATIVE                   2          /*  Creative Labs, Inc  */
  57. #define   MM_MEDIAVISION                3          /*  Media Vision, Inc.  */
  58. #define   MM_FUJITSU                    4          /*  Fujitsu Corp.  */
  59. #define   MM_ARTISOFT                   20         /*  Artisoft, Inc.  */
  60. #define   MM_TURTLE_BEACH               21         /*  Turtle Beach, Inc.  */
  61. #define   MM_IBM                        22         /*  IBM Corporation  */
  62. #define   MM_VOCALTEC                   23         /*  Vocaltec LTD.  */
  63. #define   MM_ROLAND                     24         /*  Roland  */
  64. #define   MM_DSP_SOLUTIONS              25         /*  DSP Solutions, Inc.  */
  65. #define   MM_NEC                        26         /*  NEC  */
  66. #define   MM_ATI                        27         /*  ATI  */
  67. #define   MM_WANGLABS                   28         /*  Wang Laboratories, Inc  */
  68. #define   MM_TANDY                      29         /*  Tandy Corporation  */
  69. #define   MM_VOYETRA                    30         /*  Voyetra  */
  70. #define   MM_ANTEX                      31         /*  Antex Electronics Corporation  */
  71. #define   MM_ICL_PS                     32         /*  ICL Personal Systems  */
  72. #define   MM_INTEL                      33         /*  Intel Corporation  */
  73. #define   MM_GRAVIS                     34         /*  Advanced Gravis  */
  74. #define   MM_VAL                        35         /*  Video Associates Labs, Inc.  */
  75. #define   MM_INTERACTIVE                36         /*  InterActive Inc  */
  76. #define   MM_YAMAHA                     37         /*  Yamaha Corporation of America  */
  77. #define   MM_EVEREX                     38         /*  Everex Systems, Inc  */
  78. #define   MM_ECHO                       39         /*  Echo Speech Corporation  */
  79. #define   MM_SIERRA                     40         /*  Sierra Semiconductor Corp  */
  80. #define   MM_CAT                        41         /*  Computer Aided Technologies  */
  81. #define   MM_APPS                       42         /*  APPS Software International  */
  82. #define   MM_DSP_GROUP                  43         /*  DSP Group, Inc  */
  83. #define   MM_MELABS                     44         /*  microEngineering Labs  */
  84. #define   MM_COMPUTER_FRIENDS           45         /*  Computer Friends, Inc.  */
  85. #define   MM_ESS                        46         /*  ESS Technology  */
  86. #define   MM_AUDIOFILE                  47         /*  Audio, Inc.  */
  87. #define   MM_MOTOROLA                   48         /*  Motorola, Inc.  */
  88. #define   MM_CANOPUS                    49         /*  Canopus, co., Ltd.  */
  89. #define   MM_EPSON                      50         /*  Seiko Epson Corporation  */
  90. #define   MM_TRUEVISION                 51         /*  Truevision  */
  91. #define   MM_AZTECH                     52         /*  Aztech Labs, Inc.  */
  92. #define   MM_VIDEOLOGIC                 53         /*  Videologic  */
  93. #define   MM_SCALACS                    54         /*  SCALACS  */
  94. #define   MM_KORG                       55         /*  Toshihiko Okuhura, Korg Inc.  */
  95. #define   MM_APT                        56         /*  Audio Processing Technology  */
  96. #define   MM_ICS                        57         /*  Integrated Circuit Systems, Inc.  */
  97. #define   MM_ITERATEDSYS                58         /*  Iterated Systems, Inc.  */
  98. #define   MM_METHEUS                    59         /*  Metheus  */
  99. #define   MM_LOGITECH                   60         /*  Logitech, Inc.  */
  100. #define   MM_WINNOV                     61         /*  Winnov, Inc.  */
  101. #define   MM_NCR                        62         /*  NCR Corporation  */
  102. #define   MM_EXAN                       63         /*  EXAN  */
  103. #define   MM_AST                        64         /*  AST Research Inc.  */
  104. #define   MM_WILLOWPOND                 65         /*  Willow Pond Corporation  */
  105. #define   MM_SONICFOUNDRY               66         /*  Sonic Foundry  */
  106. #define   MM_VITEC                      67         /*  Vitec Multimedia  */
  107. #define   MM_MOSCOM                     68         /*  MOSCOM Corporation  */
  108. #define   MM_SILICONSOFT                69         /*  Silicon Soft, Inc.  */
  109. #define   MM_SUPERMAC                   73         /*  Supermac  */
  110. #define   MM_AUDIOPT                    74         /*  Audio Processing Technology  */
  111. #define   MM_SPEECHCOMP                 76         /*  Speech Compression  */
  112. #define   MM_DOLBY                      78         /*  Dolby Laboratories  */
  113. #define   MM_OKI                        79         /*  OKI  */
  114. #define   MM_AURAVISION                 80         /*  AuraVision Corporation  */
  115. #define   MM_OLIVETTI                   81         /*  Olivetti  */
  116. #define   MM_IOMAGIC                    82         /*  I/O Magic Corporation  */
  117. #define   MM_MATSUSHITA                 83         /*  Matsushita Electric Industrial Co., LTD.  */
  118. #define   MM_CONTROLRES                 84         /*  Control Resources Limited  */
  119. #define   MM_XEBEC                      85         /*  Xebec Multimedia Solutions Limited  */
  120. #define   MM_NEWMEDIA                   86         /*  New Media Corporation  */
  121. #define   MM_NMS                        87         /*  Natural MicroSystems  */
  122. #define   MM_LYRRUS                     88         /*  Lyrrus Inc.  */
  123. #define   MM_COMPUSIC                   89         /*  Compusic  */
  124. #define   MM_OPTI                       90         /*  OPTi Computers Inc.  */
  125. #define   MM_DIALOGIC                   93         /*  Dialogic Corporation  */
  126.  
  127. /* MM_MICROSOFT product IDs */
  128.  
  129. #ifndef MM_MIDI_MAPPER
  130.  
  131. #define  MM_MIDI_MAPPER                     1       /*  Midi Mapper  */
  132. #define  MM_WAVE_MAPPER                     2       /*  Wave Mapper  */
  133. #define  MM_SNDBLST_MIDIOUT                 3       /*  Sound Blaster MIDI output port  */
  134. #define  MM_SNDBLST_MIDIIN                  4       /*  Sound Blaster MIDI input port  */
  135. #define  MM_SNDBLST_SYNTH                   5       /*  Sound Blaster internal synth  */
  136. #define  MM_SNDBLST_WAVEOUT                 6       /*  Sound Blaster waveform output  */
  137. #define  MM_SNDBLST_WAVEIN                  7       /*  Sound Blaster waveform input  */
  138. #define  MM_ADLIB                           9       /*  Ad Lib Compatible synth  */
  139. #define  MM_MPU401_MIDIOUT                  10      /*  MPU 401 compatible MIDI output port  */
  140. #define  MM_MPU401_MIDIIN                   11      /*  MPU 401 compatible MIDI input port  */
  141. #define  MM_PC_JOYSTICK                     12      /*  Joystick adapter  */
  142.  
  143. #endif
  144.  
  145. #define  MM_PCSPEAKER_WAVEOUT               13      /*  PC speaker waveform output  */
  146. #define  MM_MSFT_WSS_WAVEIN                 14      /*  MS Audio Board waveform input  */
  147. #define  MM_MSFT_WSS_WAVEOUT                15      /*  MS Audio Board waveform output  */
  148. #define  MM_MSFT_WSS_FMSYNTH_STEREO         16      /*  MS Audio Board  Stereo FM synth  */
  149. #define  MM_MSFT_WSS_MIXER                  17      /*  MS Audio Board Mixer Driver  */
  150. #define  MM_MSFT_WSS_OEM_WAVEIN             18      /*  MS OEM Audio Board waveform input  */
  151. #define  MM_MSFT_WSS_OEM_WAVEOUT            19      /*  MS OEM Audio Board waveform output  */
  152. #define  MM_MSFT_WSS_OEM_FMSYNTH_STEREO     20      /*  MS OEM Audio Board Stereo FM Synth  */
  153. #define  MM_MSFT_WSS_AUX                    21      /*  MS Audio Board Aux. Port  */
  154. #define  MM_MSFT_WSS_OEM_AUX                22      /*  MS OEM Audio Aux Port  */
  155. #define  MM_MSFT_GENERIC_WAVEIN             23      /*  MS Vanilla driver waveform input  */
  156. #define  MM_MSFT_GENERIC_WAVEOUT            24      /*  MS Vanilla driver wavefrom output  */
  157. #define  MM_MSFT_GENERIC_MIDIIN             25      /*  MS Vanilla driver MIDI in  */
  158. #define  MM_MSFT_GENERIC_MIDIOUT            26      /*  MS Vanilla driver MIDI  external out  */
  159. #define  MM_MSFT_GENERIC_MIDISYNTH          27      /*  MS Vanilla driver MIDI synthesizer  */
  160. #define  MM_MSFT_GENERIC_AUX_LINE           28      /*  MS Vanilla driver aux (line in)  */
  161. #define  MM_MSFT_GENERIC_AUX_MIC            29      /*  MS Vanilla driver aux (mic)  */
  162. #define  MM_MSFT_GENERIC_AUX_CD             30      /*  MS Vanilla driver aux (CD)  */
  163. #define  MM_MSFT_WSS_OEM_MIXER              31      /*  MS OEM Audio Board Mixer Driver  */
  164. #define  MM_MSFT_MSACM                      32      /*  MS Audio Compression Manager  */
  165. #define  MM_MSFT_ACM_MSADPCM                33      /*  MS ADPCM Codec  */
  166. #define  MM_MSFT_ACM_IMAADPCM               34      /*  IMA ADPCM Codec  */
  167. #define  MM_MSFT_ACM_MSFILTER               35      /*  MS Filter  */
  168. #define  MM_MSFT_ACM_GSM610                 36      /*  GSM 610 codec  */
  169. #define  MM_MSFT_ACM_G711                   37      /*  G.711 codec  */
  170. #define  MM_MSFT_ACM_PCM                    38      /*  PCM converter  */
  171.  
  172.    // Microsoft Windows Sound System drivers
  173.  
  174. #define  MM_WSS_SB16_WAVEIN                 39      /*  Sound Blaster 16 waveform input  */
  175. #define  MM_WSS_SB16_WAVEOUT                40      /*  Sound Blaster 16  waveform output  */
  176. #define  MM_WSS_SB16_MIDIIN                 41      /*  Sound Blaster 16 midi-in  */
  177. #define  MM_WSS_SB16_MIDIOUT                42      /*  Sound Blaster 16 midi out  */
  178. #define  MM_WSS_SB16_SYNTH                  43      /*  Sound Blaster 16 FM Synthesis  */
  179. #define  MM_WSS_SB16_AUX_LINE               44      /*  Sound Blaster 16 aux (line in)  */
  180. #define  MM_WSS_SB16_AUX_CD                 45      /*  Sound Blaster 16 aux (CD)  */
  181. #define  MM_WSS_SB16_MIXER                  46      /*  Sound Blaster 16 mixer device  */
  182. #define  MM_WSS_SBPRO_WAVEIN                47      /*  Sound Blaster Pro waveform input  */
  183. #define  MM_WSS_SBPRO_WAVEOUT               48      /*  Sound Blaster Pro waveform output  */
  184. #define  MM_WSS_SBPRO_MIDIIN                49      /*  Sound Blaster Pro midi in  */
  185. #define  MM_WSS_SBPRO_MIDIOUT               50      /*  Sound Blaster Pro midi out  */
  186. #define  MM_WSS_SBPRO_SYNTH                 51      /*  Sound Blaster Pro FM synthesis  */
  187. #define  MM_WSS_SBPRO_AUX_LINE              52      /*  Sound Blaster Pro aux (line in )  */
  188. #define  MM_WSS_SBPRO_AUX_CD                53      /*  Sound Blaster Pro aux (CD)  */
  189. #define  MM_WSS_SBPRO_MIXER                 54      /*  Sound Blaster Pro mixer  */
  190.  
  191. #define  MM_MSFT_WSS_NT_WAVEIN              55      /*  WSS NT wave in  */
  192. #define  MM_MSFT_WSS_NT_WAVEOUT             56      /*  WSS NT wave out  */
  193. #define  MM_MSFT_WSS_NT_FMSYNTH_STEREO      57      /*  WSS NT FM synth  */
  194. #define  MM_MSFT_WSS_NT_MIXER               58      /*  WSS NT mixer  */
  195. #define  MM_MSFT_WSS_NT_AUX                 59      /*  WSS NT aux  */
  196.  
  197. #define  MM_MSFT_SB16_WAVEIN    60      /*  Sound Blaster 16 waveform input  */
  198. #define  MM_MSFT_SB16_WAVEOUT   61      /*  Sound Blaster 16  waveform output  */
  199. #define  MM_MSFT_SB16_MIDIIN    62      /*  Sound Blaster 16 midi-in  */
  200. #define  MM_MSFT_SB16_MIDIOUT   63      /*  Sound Blaster 16 midi out  */
  201. #define  MM_MSFT_SB16_SYNTH     64      /*  Sound Blaster 16 FM Synthesis  */
  202. #define  MM_MSFT_SB16_AUX_LINE  65      /*  Sound Blaster 16 aux (line in)  */
  203. #define  MM_MSFT_SB16_AUX_CD    66      /*  Sound Blaster 16 aux (CD)  */
  204. #define  MM_MSFT_SB16_MIXER     67      /*  Sound Blaster 16 mixer device  */
  205. #define  MM_MSFT_SBPRO_WAVEIN   68      /*  Sound Blaster Pro waveform input  */
  206. #define  MM_MSFT_SBPRO_WAVEOUT  69      /*  Sound Blaster Pro waveform output  */
  207. #define  MM_MSFT_SBPRO_MIDIIN   70      /*  Sound Blaster Pro midi in  */
  208. #define  MM_MSFT_SBPRO_MIDIOUT  71      /*  Sound Blaster Pro midi out  */
  209. #define  MM_MSFT_SBPRO_SYNTH    72      /*  Sound Blaster Pro FM synthesis  */
  210. #define  MM_MSFT_SBPRO_AUX_LINE 73      /*  Sound Blaster Pro aux (line in )  */
  211. #define  MM_MSFT_SBPRO_AUX_CD   74      /*  Sound Blaster Pro aux (CD)  */
  212. #define  MM_MSFT_SBPRO_MIXER    75      /*  Sound Blaster Pro mixer  */
  213.  
  214. #define  MM_MSFT_MSOPL_SYNTH  76 /* Yamaha OPL2/OPL3 compatible FM synthesis */
  215.  
  216. /* MM_CREATIVE product IDs */
  217. #define  MM_CREATIVE_SB15_WAVEIN            1       /*  SB (r) 1.5 waveform input  */
  218. #define  MM_CREATIVE_SB20_WAVEIN            2
  219. #define  MM_CREATIVE_SBPRO_WAVEIN           3
  220. #define  MM_CREATIVE_SBP16_WAVEIN           4
  221. #define  MM_CREATIVE_SB15_WAVEOUT           101
  222. #define  MM_CREATIVE_SB20_WAVEOUT           102
  223. #define  MM_CREATIVE_SBPRO_WAVEOUT          103
  224. #define  MM_CREATIVE_SBP16_WAVEOUT          104
  225. #define  MM_CREATIVE_MIDIOUT                201     /*  SB (r)  */
  226. #define  MM_CREATIVE_MIDIIN                 202     /*  SB (r)  */
  227. #define  MM_CREATIVE_FMSYNTH_MONO           301     /*  SB (r)  */
  228. #define  MM_CREATIVE_FMSYNTH_STEREO         302     /*  SB Pro (r) stereo synthesizer  */
  229. #define  MM_CREATIVE_MIDI_AWE32             303
  230. #define  MM_CREATIVE_AUX_CD                 401     /*  SB Pro (r) aux (CD)  */
  231. #define  MM_CREATIVE_AUX_LINE               402     /*  SB Pro (r) aux (Line in )  */
  232. #define  MM_CREATIVE_AUX_MIC                403     /*  SB Pro (r) aux (mic)  */
  233. #define  MM_CREATIVE_AUX_MASTER             404
  234. #define  MM_CREATIVE_AUX_PCSPK              405
  235. #define  MM_CREATIVE_AUX_WAVE               406
  236. #define  MM_CREATIVE_AUX_MIDI               407
  237. #define  MM_CREATIVE_SBPRO_MIXER            408
  238. #define  MM_CREATIVE_SB16_MIXER             409
  239.  
  240. /* MM_MEDIAVISION product IDs */
  241.  
  242. // Pro Audio Spectrum
  243. #define  MM_MEDIAVISION_PROAUDIO            0x10
  244. #define  MM_PROAUD_MIDIOUT                  (MM_MEDIAVISION_PROAUDIO+1)
  245. #define  MM_PROAUD_MIDIIN                   (MM_MEDIAVISION_PROAUDIO+2)
  246. #define  MM_PROAUD_SYNTH                    (MM_MEDIAVISION_PROAUDIO+3)
  247. #define  MM_PROAUD_WAVEOUT                  (MM_MEDIAVISION_PROAUDIO+4)
  248. #define  MM_PROAUD_WAVEIN                   (MM_MEDIAVISION_PROAUDIO+5)
  249. #define  MM_PROAUD_MIXER                    (MM_MEDIAVISION_PROAUDIO+6)
  250. #define  MM_PROAUD_AUX                      (MM_MEDIAVISION_PROAUDIO+7)
  251.  
  252. // Thunder Board
  253. #define  MM_MEDIAVISION_THUNDER             0x20
  254. #define  MM_THUNDER_SYNTH                   (MM_MEDIAVISION_THUNDER+3)
  255. #define  MM_THUNDER_WAVEOUT                 (MM_MEDIAVISION_THUNDER+4)
  256. #define  MM_THUNDER_WAVEIN                  (MM_MEDIAVISION_THUNDER+5)
  257. #define  MM_THUNDER_AUX                     (MM_MEDIAVISION_THUNDER+7)
  258.  
  259. // Audio Port
  260. #define  MM_MEDIAVISION_TPORT               0x40
  261. #define  MM_TPORT_WAVEOUT                   (MM_MEDIAVISION_TPORT+1)
  262. #define  MM_TPORT_WAVEIN                    (MM_MEDIAVISION_TPORT+2)
  263. #define  MM_TPORT_SYNTH                     (MM_MEDIAVISION_TPORT+3)
  264.  
  265. // Pro Audio Spectrum Plus
  266. #define  MM_MEDIAVISION_PROAUDIO_PLUS       0x50
  267. #define  MM_PROAUD_PLUS_MIDIOUT             (MM_MEDIAVISION_PROAUDIO_PLUS+1)
  268. #define  MM_PROAUD_PLUS_MIDIIN              (MM_MEDIAVISION_PROAUDIO_PLUS+2)
  269. #define  MM_PROAUD_PLUS_SYNTH               (MM_MEDIAVISION_PROAUDIO_PLUS+3)
  270. #define  MM_PROAUD_PLUS_WAVEOUT             (MM_MEDIAVISION_PROAUDIO_PLUS+4)
  271. #define  MM_PROAUD_PLUS_WAVEIN              (MM_MEDIAVISION_PROAUDIO_PLUS+5)
  272. #define  MM_PROAUD_PLUS_MIXER               (MM_MEDIAVISION_PROAUDIO_PLUS+6)
  273. #define  MM_PROAUD_PLUS_AUX                 (MM_MEDIAVISION_PROAUDIO_PLUS+7)
  274.  
  275. // Pro Audio Spectrum 16
  276. #define  MM_MEDIAVISION_PROAUDIO_16         0x60
  277. #define  MM_PROAUD_16_MIDIOUT               (MM_MEDIAVISION_PROAUDIO_16+1)
  278. #define  MM_PROAUD_16_MIDIIN                (MM_MEDIAVISION_PROAUDIO_16+2)
  279. #define  MM_PROAUD_16_SYNTH                 (MM_MEDIAVISION_PROAUDIO_16+3)
  280. #define  MM_PROAUD_16_WAVEOUT               (MM_MEDIAVISION_PROAUDIO_16+4)
  281. #define  MM_PROAUD_16_WAVEIN                (MM_MEDIAVISION_PROAUDIO_16+5)
  282. #define  MM_PROAUD_16_MIXER                 (MM_MEDIAVISION_PROAUDIO_16+6)
  283. #define  MM_PROAUD_16_AUX                   (MM_MEDIAVISION_PROAUDIO_16+7)
  284.  
  285. // Pro Audio Studio 16
  286. #define  MM_MEDIAVISION_PROSTUDIO_16        0x60
  287. #define  MM_STUDIO_16_MIDIOUT               (MM_MEDIAVISION_PROSTUDIO_16+1)
  288. #define  MM_STUDIO_16_MIDIIN                (MM_MEDIAVISION_PROSTUDIO_16+2)
  289. #define  MM_STUDIO_16_SYNTH                 (MM_MEDIAVISION_PROSTUDIO_16+3)
  290. #define  MM_STUDIO_16_WAVEOUT               (MM_MEDIAVISION_PROSTUDIO_16+4)
  291. #define  MM_STUDIO_16_WAVEIN                (MM_MEDIAVISION_PROSTUDIO_16+5)
  292. #define  MM_STUDIO_16_MIXER                 (MM_MEDIAVISION_PROSTUDIO_16+6)
  293. #define  MM_STUDIO_16_AUX                   (MM_MEDIAVISION_PROSTUDIO_16+7)
  294.  
  295. // CDPC
  296. #define  MM_MEDIAVISION_CDPC                0x70
  297. #define  MM_CDPC_MIDIOUT                    (MM_MEDIAVISION_CDPC+1)
  298. #define  MM_CDPC_MIDIIN                     (MM_MEDIAVISION_CDPC+2)
  299. #define  MM_CDPC_SYNTH                      (MM_MEDIAVISION_CDPC+3)
  300. #define  MM_CDPC_WAVEOUT                    (MM_MEDIAVISION_CDPC+4)
  301. #define  MM_CDPC_WAVEIN                     (MM_MEDIAVISION_CDPC+5)
  302. #define  MM_CDPC_MIXER                      (MM_MEDIAVISION_CDPC+6)
  303. #define  MM_CDPC_AUX                        (MM_MEDIAVISION_CDPC+7)
  304.  
  305. // Opus MV 1208 Chipsent
  306. #define  MM_MEDIAVISION_OPUS1208            0x80
  307. #define  MM_OPUS401_MIDIOUT                 (MM_MEDIAVISION_OPUS1208+1)
  308. #define  MM_OPUS401_MIDIIN                  (MM_MEDIAVISION_OPUS1208+2)
  309. #define  MM_OPUS1208_SYNTH                  (MM_MEDIAVISION_OPUS1208+3)
  310. #define  MM_OPUS1208_WAVEOUT                (MM_MEDIAVISION_OPUS1208+4)
  311. #define  MM_OPUS1208_WAVEIN                 (MM_MEDIAVISION_OPUS1208+5)
  312. #define  MM_OPUS1208_MIXER                  (MM_MEDIAVISION_OPUS1208+6)
  313. #define  MM_OPUS1208_AUX                    (MM_MEDIAVISION_OPUS1208+7)
  314.  
  315. // Opus MV 1216 chipset
  316. #define  MM_MEDIAVISION_OPUS1216            0x90
  317. #define  MM_OPUS1216_MIDIOUT                (MM_MEDIAVISION_OPUS1216+1)
  318. #define  MM_OPUS1216_MIDIIN                 (MM_MEDIAVISION_OPUS1216+2)
  319. #define  MM_OPUS1216_SYNTH                  (MM_MEDIAVISION_OPUS1216+3)
  320. #define  MM_OPUS1216_WAVEOUT                (MM_MEDIAVISION_OPUS1216+4)
  321. #define  MM_OPUS1216_WAVEIN                 (MM_MEDIAVISION_OPUS1216+5)
  322. #define  MM_OPUS1216_MIXER                  (MM_MEDIAVISION_OPUS1216+6)
  323. #define  MM_OPUS1216_AUX                    (MM_MEDIAVISION_OPUS1216+7)
  324.  
  325. /* MM_ARTISOFT product IDs */
  326. #define  MM_ARTISOFT_SBWAVEIN               1       /*  Artisoft sounding Board waveform input  */
  327. #define  MM_ARTISOFT_SBWAVEOUT              2       /*  Artisoft sounding Board waveform output  */
  328.  
  329. /* MM_IBM product IDs */
  330. #define  MM_MMOTION_WAVEAUX                 1       /*  IBM M-Motion Auxiliary Device  */
  331. #define  MM_MMOTION_WAVEOUT                 2       /*  IBM M-Motion Waveform output  */
  332. #define  MM_MMOTION_WAVEIN                  3       /*  IBM M-Motion  Waveform Input  */
  333. #define  MM_IBM_PCMCIA_WAVEIN               11      /*  IBM waveform input  */
  334. #define  MM_IBM_PCMCIA_WAVEOUT              12      /*  IBM Waveform output  */
  335. #define  MM_IBM_PCMCIA_SYNTH                13      /*  IBM Midi Synthesis  */
  336. #define  MM_IBM_PCMCIA_MIDIIN               14      /*  IBM external MIDI in  */
  337. #define  MM_IBM_PCMCIA_MIDIOUT              15      /*  IBM external MIDI out  */
  338. #define  MM_IBM_PCMCIA_AUX                  16      /*  IBM auxiliary control  */
  339.  
  340. /* MM_VOCALTEC product IDs */
  341. #define  MM_VOCALTEC_WAVEOUT                1
  342. #define  MM_VOCALTEC_WAVEIN                 2
  343.  
  344. /* MM_ROLAND product IDs */
  345. #define  MM_ROLAND_MPU401_MIDIOUT           15
  346. #define  MM_ROLAND_MPU401_MIDIIN            16
  347. #define  MM_ROLAND_SMPU_MIDIOUTA            17
  348. #define  MM_ROLAND_SMPU_MIDIOUTB            18
  349. #define  MM_ROLAND_SMPU_MIDIINA             19
  350. #define  MM_ROLAND_SMPU_MIDIINB             20
  351. #define  MM_ROLAND_SC7_MIDIOUT              21
  352. #define  MM_ROLAND_SC7_MIDIIN               22
  353. #define  MM_ROLAND_SERIAL_MIDIOUT           23
  354. #define  MM_ROLAND_SERIAL_MIDIIN            24
  355.  
  356. /* MM_DSP_SOLUTIONS product IDs */
  357. #define  MM_DSP_SOLUTIONS_WAVEOUT           1
  358. #define  MM_DSP_SOLUTIONS_WAVEIN            2
  359. #define  MM_DSP_SOLUTIONS_SYNTH             3
  360. #define  MM_DSP_SOLUTIONS_AUX               4
  361.  
  362. /* MM_WANGLABS product IDs */
  363. #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  */
  364. #define  MM_WANGLABS_WAVEOUT1               2
  365.  
  366. /* MM_TANDY product IDs */
  367. #define  MM_TANDY_VISWAVEIN                 1
  368. #define  MM_TANDY_VISWAVEOUT                2
  369. #define  MM_TANDY_VISBIOSSYNTH              3
  370. #define  MM_TANDY_SENS_MMAWAVEIN            4
  371. #define  MM_TANDY_SENS_MMAWAVEOUT           5
  372. #define  MM_TANDY_SENS_MMAMIDIIN            6
  373. #define  MM_TANDY_SENS_MMAMIDIOUT           7
  374. #define  MM_TANDY_SENS_VISWAVEOUT           8
  375. #define  MM_TANDY_PSSJWAVEIN                9
  376. #define  MM_TANDY_PSSJWAVEOUT               10
  377.  
  378. /* product IDs */
  379. #define  MM_INTELOPD_WAVEIN                 1       /*  HID2 WaveAudio Driver  */
  380. #define  MM_INTELOPD_WAVEOUT                101     /*  HID2  */
  381. #define  MM_INTELOPD_AUX                    401     /*  HID2 for mixing  */
  382.  
  383. /* MM_INTERACTIVE product IDs */
  384. #define  MM_INTERACTIVE_WAVEIN              0x45
  385. #define  MM_INTERACTIVE_WAVEOUT             0x45
  386.  
  387. /* MM_YAMAHA product IDs */
  388. #define  MM_YAMAHA_GSS_SYNTH                0x01
  389. #define  MM_YAMAHA_GSS_WAVEOUT              0x02
  390. #define  MM_YAMAHA_GSS_WAVEIN               0x03
  391. #define  MM_YAMAHA_GSS_MIDIOUT              0x04
  392. #define  MM_YAMAHA_GSS_MIDIIN               0x05
  393. #define  MM_YAMAHA_GSS_AUX                  0x06
  394.  
  395. /* MM_EVEREX product IDs */
  396. #define  MM_EVEREX_CARRIER                  0x01
  397.  
  398. /* MM_ECHO product IDs */
  399. #define  MM_ECHO_SYNTH                      0x01
  400. #define  MM_ECHO_WAVEOUT                    0x02
  401. #define  MM_ECHO_WAVEIN                     0x03
  402. #define  MM_ECHO_MIDIOUT                    0x04
  403. #define  MM_ECHO_MIDIIN                     0x05
  404. #define  MM_ECHO_AUX                        0x06
  405.  
  406. /* MM_SIERRA product IDs */
  407. #define  MM_SIERRA_ARIA_MIDIOUT             0x14
  408. #define  MM_SIERRA_ARIA_MIDIIN              0x15
  409. #define  MM_SIERRA_ARIA_SYNTH               0x16
  410. #define  MM_SIERRA_ARIA_WAVEOUT             0x17
  411. #define  MM_SIERRA_ARIA_WAVEIN              0x18
  412. #define  MM_SIERRA_ARIA_AUX                 0x19
  413. #define  MM_SIERRA_ARIA_AUX2                0x20
  414.  
  415. /* MM_CAT product IDs */
  416. #define  MM_CAT_WAVEOUT                     1
  417.  
  418. /* MM_DSP_GROUP product IDs */
  419. #define  MM_DSP_GROUP_TRUESPEECH            0x01
  420.  
  421. /* MM_MELABS product IDs */
  422. #define  MM_MELABS_MIDI2GO                  0x01
  423.  
  424. /* MM_ESS product IDs */
  425. #define  MM_ESS_AMWAVEOUT                   0x01
  426. #define  MM_ESS_AMWAVEIN                    0x02
  427. #define  MM_ESS_AMAUX                       0x03
  428. #define  MM_ESS_AMSYNTH                     0x04
  429. #define  MM_ESS_AMMIDIOUT                   0x05
  430. #define  MM_ESS_AMMIDIIN                    0x06
  431. #define  MM_ESS_MIXER                       0x07
  432. #define  MM_ESS_AUX_CD                      0x08
  433. #define  MM_ESS_MPU401_MIDIOUT              0x09
  434. #define  MM_ESS_MPU401_MIDIIN               0x0A
  435. #define  MM_ESS_ES488_WAVEOUT               0x10
  436. #define  MM_ESS_ES488_WAVEIN                0x11
  437. #define  MM_ESS_ES488_MIXER                 0x12
  438. #define  MM_ESS_ES688_WAVEOUT               0x13
  439. #define  MM_ESS_ES688_WAVEIN                0x14
  440. #define  MM_ESS_ES688_MIXER                 0x15
  441. #define  MM_ESS_ES1488_WAVEOUT              0x16
  442. #define  MM_ESS_ES1488_WAVEIN               0x17
  443. #define  MM_ESS_ES1488_MIXER                0x18
  444. #define  MM_ESS_ES1688_WAVEOUT              0x19
  445. #define  MM_ESS_ES1688_WAVEIN               0x1A
  446. #define  MM_ESS_ES1688_MIXER                0x1B
  447.  
  448. /* product IDs */
  449. #define  MM_EPS_FMSND                       1
  450.  
  451. /* MM_TRUEVISION product IDs */
  452. #define  MM_TRUEVISION_WAVEIN1              1
  453. #define  MM_TRUEVISION_WAVEOUT1             2
  454.  
  455. /* MM_AZTECH product IDs */
  456. #define  MM_AZTECH_MIDIOUT                  3
  457. #define  MM_AZTECH_MIDIIN                   4
  458. #define  MM_AZTECH_WAVEIN                   17
  459. #define  MM_AZTECH_WAVEOUT                  18
  460. #define  MM_AZTECH_FMSYNTH                  20
  461. #define  MM_AZTECH_MIXER                    21
  462. #define  MM_AZTECH_PRO16_WAVEIN             33
  463. #define  MM_AZTECH_PRO16_WAVEOUT            34
  464. #define  MM_AZTECH_PRO16_FMSYNTH            38
  465. #define  MM_AZTECH_DSP16_WAVEIN             65
  466. #define  MM_AZTECH_DSP16_WAVEOUT            66
  467. #define  MM_AZTECH_DSP16_FMSYNTH            68
  468. #define  MM_AZTECH_DSP16_WAVESYNTH          70
  469. #define  MM_AZTECH_AUX_CD                   401
  470. #define  MM_AZTECH_AUX_LINE                 402
  471. #define  MM_AZTECH_AUX_MIC                  403
  472. #define  MM_AZTECH_AUX                      404
  473. #define  MM_AZTECH_NOVA16_WAVEIN            71
  474. #define  MM_AZTECH_NOVA16_WAVEOUT           72
  475. #define  MM_AZTECH_NOVA16_MIXER             73
  476. #define  MM_AZTECH_WASH16_WAVEIN            74
  477. #define  MM_AZTECH_WASH16_WAVEOUT           75
  478. #define  MM_AZTECH_WASH16_MIXER             76
  479.  
  480. /* MM_VIDEOLOGIC product IDs */
  481. #define  MM_VIDEOLOGIC_MSWAVEIN             1
  482. #define  MM_VIDEOLOGIC_MSWAVEOUT            2
  483.  
  484. /* MM_KORG product IDs */
  485. #define  MM_KORG_PCIF_MIDIOUT               1
  486. #define  MM_KORG_PCIF_MIDIIN                2
  487.  
  488. /* MM_APT product IDs */
  489. #define  MM_APT_ACE100CD                    1
  490.  
  491. /* MM_ICS product IDs */
  492. #define  MM_ICS_WAVEDECK_WAVEOUT            1       /*  MS WSS compatible card and driver  */
  493. #define  MM_ICS_WAVEDECK_WAVEIN             2
  494. #define  MM_ICS_WAVEDECK_MIXER              3
  495. #define  MM_ICS_WAVEDECK_AUX                4
  496. #define  MM_ICS_WAVEDECK_SYNTH              5
  497.  
  498. /* MM_ITERATEDSYS product IDs */
  499. #define  MM_ITERATEDSYS_FUFCODEC            1
  500.  
  501. /* MM_METHEUS product IDs */
  502. #define  MM_METHEUS_ZIPPER                  1
  503.  
  504. /* MM_WINNOV product IDs */
  505. #define  MM_WINNOV_CAVIAR_WAVEIN            1
  506. #define  MM_WINNOV_CAVIAR_WAVEOUT           2
  507. #define  MM_WINNOV_CAVIAR_VIDC              3
  508. #define  MM_WINNOV_CAVIAR_CHAMPAGNE         4       /*  Fourcc is CHAM  */
  509. #define  MM_WINNOV_CAVIAR_YUV8              5       /*  Fourcc is YUV8  */
  510.  
  511. /* MM_NCR product IDs */
  512. #define  MM_NCR_BA_WAVEIN                   1
  513. #define  MM_NCR_BA_WAVEOUT                  2
  514. #define  MM_NCR_BA_SYNTH                    3
  515. #define  MM_NCR_BA_AUX                      4
  516. #define  MM_NCR_BA_MIXER                    5
  517.  
  518. /* MM_VITEC product IDs */
  519. #define  MM_VITEC_VMAKER                    1
  520. #define  MM_VITEC_VMPRO                     2
  521.  
  522. /* MM_MOSCOM product IDs */
  523. #define  MM_MOSCOM_VPC2400                  1       /*  Four Port Voice Processing / Voice Recognition Board  */
  524.  
  525. /* MM_SILICONSOFT product IDs */
  526. #define  MM_SILICONSOFT_SC1_WAVEIN          1       /*  Waveform in , high sample rate  */
  527. #define  MM_SILICONSOFT_SC1_WAVEOUT         2       /*  Waveform out , high sample rate  */
  528. #define  MM_SILICONSOFT_SC2_WAVEIN          3       /*  Waveform in 2 channels, high sample rate  */
  529. #define  MM_SILICONSOFT_SC2_WAVEOUT         4       /*  Waveform out 2 channels, high sample rate  */
  530. #define  MM_SILICONSOFT_SOUNDJR2_WAVEOUT    5       /*  Waveform out, self powered, efficient  */
  531. #define  MM_SILICONSOFT_SOUNDJR2PR_WAVEIN   6       /*  Waveform in, self powered, efficient  */
  532. #define  MM_SILICONSOFT_SOUNDJR2PR_WAVEOUT  7       /*  Waveform out 2 channels, self powered, efficient  */
  533. #define  MM_SILICONSOFT_SOUNDJR3_WAVEOUT    8       /*  Waveform in 2 channels, self powered, efficient  */
  534.  
  535. /* MM_OLIVETTI product IDs */
  536. #define  MM_OLIVETTI_WAVEIN                 1
  537. #define  MM_OLIVETTI_WAVEOUT                2
  538. #define  MM_OLIVETTI_MIXER                  3
  539. #define  MM_OLIVETTI_AUX                    4
  540. #define  MM_OLIVETTI_MIDIIN                 5
  541. #define  MM_OLIVETTI_MIDIOUT                6
  542. #define  MM_OLIVETTI_SYNTH                  7
  543. #define  MM_OLIVETTI_JOYSTICK               8
  544. #define  MM_OLIVETTI_ACM_GSM                9
  545. #define  MM_OLIVETTI_ACM_ADPCM              10
  546. #define  MM_OLIVETTI_ACM_CELP               11
  547. #define  MM_OLIVETTI_ACM_SBC                12
  548. #define  MM_OLIVETTI_ACM_OPR                13
  549.  
  550. /* MM_IOMAGIC product IDs */
  551.  
  552. /*  The I/O Magic Tempo is a PCMCIA Type 2 audio card featuring wave audio
  553.     record and playback, FM synthesizer, and MIDI output.  The I/O Magic
  554.     Tempo WaveOut device supports mono and stereo PCM playback at rates
  555.     of 7350, 11025, 22050, and  44100 samples */
  556.  
  557. #define  MM_IOMAGIC_TEMPO_WAVEOUT           1
  558. #define  MM_IOMAGIC_TEMPO_WAVEIN            2
  559. #define  MM_IOMAGIC_TEMPO_SYNTH             3
  560. #define  MM_IOMAGIC_TEMPO_MIDIOUT           4
  561. #define  MM_IOMAGIC_TEMPO_MXDOUT            5
  562. #define  MM_IOMAGIC_TEMPO_AUXOUT            6
  563.  
  564. /* MM_MATSUSHITA product IDs */
  565. #define  MM_MATSUSHITA_WAVEIN               1
  566. #define  MM_MATSUSHITA_WAVEOUT              2
  567. #define  MM_MATSUSHITA_FMSYNTH_STEREO       3
  568. #define  MM_MATSUSHITA_MIXER                4
  569. #define  MM_MATSUSHITA_AUX                  5
  570.  
  571. /* MM_NEWMEDIA product IDs */
  572. #define  MM_NEWMEDIA_WAVJAMMER              1       /*  WSS Compatible sound card.  */
  573.  
  574. /* MM_LYRRUS product IDs */
  575.  
  576. /*  Bridge is a MIDI driver that allows the the Lyrrus G-VOX hardware to
  577.     communicate with Windows base transcription and sequencer applications.
  578.     The driver also provides a mechanism for the user to configure the system
  579.     to their personal playing style. */
  580.  
  581. #define  MM_LYRRUS_BRIDGE_GUITAR            1
  582.  
  583. /* MM_OPTI product IDs */
  584. #define  MM_OPTI_M16_FMSYNTH_STEREO         0x0001
  585. #define  MM_OPTI_M16_MIDIIN                 0x0002
  586. #define  MM_OPTI_M16_MIDIOUT                0x0003
  587. #define  MM_OPTI_M16_WAVEIN                 0x0004
  588. #define  MM_OPTI_M16_WAVEOUT                0x0005
  589. #define  MM_OPTI_M16_MIXER                  0x0006
  590. #define  MM_OPTI_M16_AUX                    0x0007
  591. #define  MM_OPTI_P16_FMSYNTH_STEREO         0x0010
  592. #define  MM_OPTI_P16_MIDIIN                 0x0011
  593. #define  MM_OPTI_P16_MIDIOUT                0x0012
  594. #define  MM_OPTI_P16_WAVEIN                 0x0013
  595. #define  MM_OPTI_P16_WAVEOUT                0x0014
  596. #define  MM_OPTI_P16_MIXER                  0x0015
  597. #define  MM_OPTI_P16_AUX                    0x0016
  598. #define  MM_OPTI_M32_WAVEIN                 0x0020
  599. #define  MM_OPTI_M32_WAVEOUT                0x0021
  600. #define  MM_OPTI_M32_MIDIIN                 0x0022
  601. #define  MM_OPTI_M32_MIDIOUT                0x0023
  602. #define  MM_OPTI_M32_SYNTH_STEREO           0x0024
  603. #define  MM_OPTI_M32_MIXER                  0x0025
  604. #define  MM_OPTI_M32_AUX                    0x0026
  605.  
  606. #endif  // !NOMMIDS
  607.  
  608. /*////////////////////////////////////////////////////////////////////////// */
  609.  
  610. /*              INFO LIST CHUNKS (from the Multimedia Programmer's Reference
  611.                                         plus new ones)
  612. */
  613. #define RIFFINFO_IARL      mmioFOURCC ('I', 'A', 'R', 'L')     /*Archival location  */
  614. #define RIFFINFO_IART      mmioFOURCC ('I', 'A', 'R', 'T')     /*Artist  */
  615. #define RIFFINFO_ICMS      mmioFOURCC ('I', 'C', 'M', 'S')     /*Commissioned  */
  616. #define RIFFINFO_ICMT      mmioFOURCC ('I', 'C', 'M', 'T')     /*Comments  */
  617. #define RIFFINFO_ICOP      mmioFOURCC ('I', 'C', 'O', 'P')     /*Copyright  */
  618. #define RIFFINFO_ICRD      mmioFOURCC ('I', 'C', 'R', 'D')     /*Creation date of subject  */
  619. #define RIFFINFO_ICRP      mmioFOURCC ('I', 'C', 'R', 'P')     /*Cropped  */
  620. #define RIFFINFO_IDIM      mmioFOURCC ('I', 'D', 'I', 'M')     /*Dimensions  */
  621. #define RIFFINFO_IDPI      mmioFOURCC ('I', 'D', 'P', 'I')     /*Dots per inch  */
  622. #define RIFFINFO_IENG      mmioFOURCC ('I', 'E', 'N', 'G')     /*Engineer  */
  623. #define RIFFINFO_IGNR      mmioFOURCC ('I', 'G', 'N', 'R')     /*Genre  */
  624. #define RIFFINFO_IKEY      mmioFOURCC ('I', 'K', 'E', 'Y')     /*Keywords  */
  625. #define RIFFINFO_ILGT      mmioFOURCC ('I', 'L', 'G', 'T')     /*Lightness settings  */
  626. #define RIFFINFO_IMED      mmioFOURCC ('I', 'M', 'E', 'D')     /*Medium  */
  627. #define RIFFINFO_INAM      mmioFOURCC ('I', 'N', 'A', 'M')     /*Name of subject  */
  628. #define RIFFINFO_IPLT      mmioFOURCC ('I', 'P', 'L', 'T')     /*Palette Settings. No. of colors requested.   */
  629. #define RIFFINFO_IPRD      mmioFOURCC ('I', 'P', 'R', 'D')     /*Product  */
  630. #define RIFFINFO_ISBJ      mmioFOURCC ('I', 'S', 'B', 'J')     /*Subject description  */
  631. #define RIFFINFO_ISFT      mmioFOURCC ('I', 'S', 'F', 'T')     /*Software. Name of package used to create file.  */
  632. #define RIFFINFO_ISHP      mmioFOURCC ('I', 'S', 'H', 'P')     /*Sharpness.  */
  633. #define RIFFINFO_ISRC      mmioFOURCC ('I', 'S', 'R', 'C')     /*Source.   */
  634. #define RIFFINFO_ISRF      mmioFOURCC ('I', 'S', 'R', 'F')     /*Source Form. ie slide, paper  */
  635. #define RIFFINFO_ITCH      mmioFOURCC ('I', 'T', 'C', 'H')     /*Technician who digitized the subject.  */
  636.  
  637. /* New INFO Chunks as of August 30, 1993: */
  638. #define RIFFINFO_ISMP      mmioFOURCC ('I', 'S', 'M', 'P')     /*SMPTE time code  */
  639. /* ISMP: SMPTE time code of digitization start point expressed as a NULL terminated
  640.                 text string "HH:MM:SS:FF". If performing MCI capture in AVICAP, this
  641.                 chunk will be automatically set based on the MCI start time.
  642. */
  643. #define RIFFINFO_IDIT      mmioFOURCC ('I', 'D', 'I', 'T')     /*Digitization Time  */
  644. /* IDIT: "Digitization Time" Specifies the time and date that the digitization commenced.
  645.                 The digitization time is contained in an ASCII string which
  646.                 contains exactly 26 characters and is in the format
  647.                 "Wed Jan 02 02:03:55 1990\n\0".
  648.                 The ctime(), asctime(), functions can be used to create strings
  649.                 in this format. This chunk is automatically added to the capture
  650.                 file based on the current system time at the moment capture is initiated.
  651. */
  652.  
  653. /*Template line for new additions*/
  654. /*#define RIFFINFO_I      mmioFOURCC ('I', '', '', '')        */
  655.  
  656. /*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
  657.  
  658. #ifndef NONEWWAVE
  659.  
  660. /* WAVE form wFormatTag IDs */
  661. #define  WAVE_FORMAT_UNKNOWN    0x0000  /*  Microsoft Corporation  */
  662. #define  WAVE_FORMAT_ADPCM      0x0002  /*  Microsoft Corporation  */
  663. #define  WAVE_FORMAT_IBM_CVSD   0x0005  /*  IBM Corporation  */
  664. #define  WAVE_FORMAT_ALAW       0x0006  /*  Microsoft Corporation  */
  665. #define  WAVE_FORMAT_MULAW      0x0007  /*  Microsoft Corporation  */
  666. #define  WAVE_FORMAT_OKI_ADPCM  0x0010  /*  OKI  */
  667. #define  WAVE_FORMAT_DVI_ADPCM  0x0011  /*  Intel Corporation  */
  668. #define  WAVE_FORMAT_IMA_ADPCM  (WAVE_FORMAT_DVI_ADPCM) /*  Intel Corporation  */
  669. #define  WAVE_FORMAT_MEDIASPACE_ADPCM   0x0012  /*  Videologic  */
  670. #define  WAVE_FORMAT_SIERRA_ADPCM       0x0013  /*  Sierra Semiconductor Corp  */
  671. #define  WAVE_FORMAT_G723_ADPCM 0x0014  /*  Antex Electronics Corporation  */
  672. #define  WAVE_FORMAT_DIGISTD    0x0015  /*  DSP Solutions, Inc.  */
  673. #define  WAVE_FORMAT_DIGIFIX    0x0016  /*  DSP Solutions, Inc.  */
  674. #define  WAVE_FORMAT_DIALOGIC_OKI_ADPCM 0x0017  /*  Dialogic Corporation  */
  675. #define  WAVE_FORMAT_YAMAHA_ADPCM       0x0020  /*  Yamaha Corporation of America  */
  676. #define  WAVE_FORMAT_SONARC     0x0021  /*  Speech Compression  */
  677. #define  WAVE_FORMAT_DSPGROUP_TRUESPEECH        0x0022  /*  DSP Group, Inc  */
  678. #define  WAVE_FORMAT_ECHOSC1    0x0023  /*  Echo Speech Corporation  */
  679. #define  WAVE_FORMAT_AUDIOFILE_AF36     0x0024  /*    */
  680. #define  WAVE_FORMAT_APTX       0x0025  /*  Audio Processing Technology  */
  681. #define  WAVE_FORMAT_AUDIOFILE_AF10     0x0026  /*    */
  682. #define  WAVE_FORMAT_DOLBY_AC2  0x0030  /*  Dolby Laboratories  */
  683. #define  WAVE_FORMAT_GSM610     0x0031  /*  Microsoft Corporation  */
  684. #define  WAVE_FORMAT_ANTEX_ADPCME       0x0033  /*  Antex Electronics Corporation  */
  685. #define  WAVE_FORMAT_CONTROL_RES_VQLPC  0x0034  /*  Control Resources Limited  */
  686. #define  WAVE_FORMAT_DIGIREAL   0x0035  /*  DSP Solutions, Inc.  */
  687. #define  WAVE_FORMAT_DIGIADPCM  0x0036  /*  DSP Solutions, Inc.  */
  688. #define  WAVE_FORMAT_CONTROL_RES_CR10   0x0037  /*  Control Resources Limited  */
  689. #define  WAVE_FORMAT_NMS_VBXADPCM       0x0038  /*  Natural MicroSystems  */
  690. #define  WAVE_FORMAT_CS_IMAADPCM 0x0039 /* Crystal Semiconductor IMA ADPCM */
  691. #define  WAVE_FORMAT_G721_ADPCM 0x0040  /*  Antex Electronics Corporation  */
  692. #define  WAVE_FORMAT_MPEG       0x0050  /*  Microsoft Corporation  */
  693. #define  WAVE_FORMAT_CREATIVE_ADPCM     0x0200  /*  Creative Labs, Inc  */
  694. #define  WAVE_FORMAT_CREATIVE_FASTSPEECH8       0x0202  /*  Creative Labs, Inc  */
  695. #define  WAVE_FORMAT_CREATIVE_FASTSPEECH10      0x0203  /*  Creative Labs, Inc  */
  696. #define  WAVE_FORMAT_FM_TOWNS_SND       0x0300  /*  Fujitsu Corp.  */
  697. #define  WAVE_FORMAT_OLIGSM     0x1000  /*  Ing C. Olivetti & C., S.p.A.  */
  698. #define  WAVE_FORMAT_OLIADPCM   0x1001  /*  Ing C. Olivetti & C., S.p.A.  */
  699. #define  WAVE_FORMAT_OLICELP    0x1002  /*  Ing C. Olivetti & C., S.p.A.  */
  700. #define  WAVE_FORMAT_OLISBC     0x1003  /*  Ing C. Olivetti & C., S.p.A.  */
  701. #define  WAVE_FORMAT_OLIOPR     0x1004  /*  Ing C. Olivetti & C., S.p.A.  */
  702.  
  703. //
  704. //  the WAVE_FORMAT_DEVELOPMENT format tag can be used during the
  705. //  development phase of a new wave format.  Before shipping, you MUST
  706. //  acquire an official format tag from Microsoft.
  707. //
  708. #define WAVE_FORMAT_DEVELOPMENT         (0xFFFF)
  709.  
  710. #endif /* NONEWWAVE */
  711.  
  712. #ifndef WAVE_FORMAT_PCM
  713.  
  714. /* general waveform format structure (information common to all formats) */
  715. typedef struct waveformat_tag {
  716.     WORD    wFormatTag;        /* format type */
  717.     WORD    nChannels;         /* number of channels (i.e. mono, stereo...) */
  718.     DWORD   nSamplesPerSec;    /* sample rate */
  719.     DWORD   nAvgBytesPerSec;   /* for buffer estimation */
  720.     WORD    nBlockAlign;       /* block size of data */
  721. } WAVEFORMAT;
  722. typedef WAVEFORMAT       *PWAVEFORMAT;
  723. typedef WAVEFORMAT NEAR *NPWAVEFORMAT;
  724. typedef WAVEFORMAT FAR  *LPWAVEFORMAT;
  725.  
  726. /* flags for wFormatTag field of WAVEFORMAT */
  727. #define WAVE_FORMAT_PCM     1
  728.  
  729. /* specific waveform format structure for PCM data */
  730. typedef struct pcmwaveformat_tag {
  731.     WAVEFORMAT  wf;
  732.     WORD        wBitsPerSample;
  733. } PCMWAVEFORMAT;
  734. typedef PCMWAVEFORMAT       *PPCMWAVEFORMAT;
  735. typedef PCMWAVEFORMAT NEAR *NPPCMWAVEFORMAT;
  736. typedef PCMWAVEFORMAT FAR  *LPPCMWAVEFORMAT;
  737.  
  738. #endif /* WAVE_FORMAT_PCM */
  739.  
  740. /* general extended waveform format structure
  741.    Use this for all NON PCM formats
  742.    (information common to all formats)
  743. */
  744. #ifndef _WAVEFORMATEX_
  745. #define _WAVEFORMATEX_
  746. typedef struct tWAVEFORMATEX
  747. {
  748.     WORD    wFormatTag;        /* format type */
  749.     WORD    nChannels;         /* number of channels (i.e. mono, stereo...) */
  750.     DWORD   nSamplesPerSec;    /* sample rate */
  751.     DWORD   nAvgBytesPerSec;   /* for buffer estimation */
  752.     WORD    nBlockAlign;       /* block size of data */
  753.     WORD    wBitsPerSample;    /* Number of bits per sample of mono data */
  754.     WORD    cbSize;            /* The count in bytes of the size of
  755.                                     extra information (after cbSize) */
  756.  
  757. } WAVEFORMATEX;
  758. typedef WAVEFORMATEX       *PWAVEFORMATEX;
  759. typedef WAVEFORMATEX NEAR *NPWAVEFORMATEX;
  760. typedef WAVEFORMATEX FAR  *LPWAVEFORMATEX;
  761. #endif /* _WAVEFORMATEX_ */
  762.  
  763. #ifndef NONEWWAVE
  764.  
  765. /* Define data for MS ADPCM */
  766.  
  767. typedef struct adpcmcoef_tag {
  768.         short   iCoef1;
  769.         short   iCoef2;
  770. } ADPCMCOEFSET;
  771. typedef ADPCMCOEFSET       *PADPCMCOEFSET;
  772. typedef ADPCMCOEFSET NEAR *NPADPCMCOEFSET;
  773. typedef ADPCMCOEFSET FAR  *LPADPCMCOEFSET;
  774.  
  775. /*
  776.  *  this pragma disables the warning issued by the Microsoft C compiler
  777.  *  when using a zero size array as place holder when compiling for
  778.  *  C++ or with -W4.
  779.  *
  780.  */
  781. #ifdef _MSC_VER
  782. #pragma warning(disable:4200)
  783. #endif
  784.  
  785. typedef struct adpcmwaveformat_tag {
  786.         WAVEFORMATEX    wfx;
  787.         WORD            wSamplesPerBlock;
  788.         WORD            wNumCoef;
  789.         ADPCMCOEFSET    aCoef[];
  790. } ADPCMWAVEFORMAT;
  791. typedef ADPCMWAVEFORMAT       *PADPCMWAVEFORMAT;
  792. typedef ADPCMWAVEFORMAT NEAR *NPADPCMWAVEFORMAT;
  793. typedef ADPCMWAVEFORMAT FAR  *LPADPCMWAVEFORMAT;
  794.  
  795. #ifdef _MSC_VER
  796. #pragma warning(default:4200)
  797. #endif
  798.  
  799. //
  800. //  Intel's DVI ADPCM structure definitions
  801. //
  802. //      for WAVE_FORMAT_DVI_ADPCM   (0x0011)
  803. //
  804. //
  805.  
  806. typedef struct dvi_adpcmwaveformat_tag {
  807.         WAVEFORMATEX    wfx;
  808.         WORD            wSamplesPerBlock;
  809. } DVIADPCMWAVEFORMAT;
  810. typedef DVIADPCMWAVEFORMAT       *PDVIADPCMWAVEFORMAT;
  811. typedef DVIADPCMWAVEFORMAT NEAR *NPDVIADPCMWAVEFORMAT;
  812. typedef DVIADPCMWAVEFORMAT FAR  *LPDVIADPCMWAVEFORMAT;
  813.  
  814. //
  815. //  IMA endorsed ADPCM structure definitions--note that this is exactly
  816. //  the same format as Intel's DVI ADPCM.
  817. //
  818. //      for WAVE_FORMAT_IMA_ADPCM   (0x0011)
  819. //
  820. //
  821.  
  822. typedef struct ima_adpcmwaveformat_tag {
  823.         WAVEFORMATEX    wfx;
  824.         WORD            wSamplesPerBlock;
  825. } IMAADPCMWAVEFORMAT;
  826. typedef IMAADPCMWAVEFORMAT       *PIMAADPCMWAVEFORMAT;
  827. typedef IMAADPCMWAVEFORMAT NEAR *NPIMAADPCMWAVEFORMAT;
  828. typedef IMAADPCMWAVEFORMAT FAR  *LPIMAADPCMWAVEFORMAT;
  829.  
  830. /*
  831. //VideoLogic's Media Space ADPCM Structure definitions
  832. // for  WAVE_FORMAT_MEDIASPACE_ADPCM    (0x0012)
  833. //
  834. //
  835. */
  836. typedef struct mediaspace_adpcmwaveformat_tag {
  837.         WAVEFORMATEX    wfx;
  838.         WORD    wRevision;
  839. } MEDIASPACEADPCMWAVEFORMAT;
  840. typedef MEDIASPACEADPCMWAVEFORMAT           *PMEDIASPACEADPCMWAVEFORMAT;
  841. typedef MEDIASPACEADPCMWAVEFORMAT NEAR     *NPMEDIASPACEADPCMWAVEFORMAT;
  842. typedef MEDIASPACEADPCMWAVEFORMAT FAR      *LPMEDIASPACEADPCMWAVEFORMAT;
  843.  
  844. //
  845. //  Sierra Semiconductor
  846. //
  847. //      for WAVE_FORMAT_SIERRA_ADPCM   (0x0013)
  848. //
  849. //
  850.  
  851. typedef struct sierra_adpcmwaveformat_tag {
  852.         WAVEFORMATEX    wfx;
  853.         WORD            wRevision;
  854. } SIERRAADPCMWAVEFORMAT;
  855. typedef SIERRAADPCMWAVEFORMAT   *PSIERRAADPCMWAVEFORMAT;
  856. typedef SIERRAADPCMWAVEFORMAT NEAR      *NPSIERRAADPCMWAVEFORMAT;
  857. typedef SIERRAADPCMWAVEFORMAT FAR       *LPSIERRAADPCMWAVEFORMAT;
  858.  
  859. //
  860. //  Antex Electronics  structure definitions
  861. //
  862. //      for WAVE_FORMAT_G723_ADPCM   (0x0014)
  863. //
  864. //
  865.  
  866. typedef struct g723_adpcmwaveformat_tag {
  867.         WAVEFORMATEX    wfx;
  868.         WORD            cbExtraSize;
  869.         WORD            nAuxBlockSize;
  870. } G723_ADPCMWAVEFORMAT;
  871. typedef G723_ADPCMWAVEFORMAT *PG723_ADPCMWAVEFORMAT;
  872. typedef G723_ADPCMWAVEFORMAT NEAR *NPG723_ADPCMWAVEFORMAT;
  873. typedef G723_ADPCMWAVEFORMAT FAR  *LPG723_ADPCMWAVEFORMAT;
  874.  
  875. //
  876. //  DSP Solutions (formerly DIGISPEECH) structure definitions
  877. //
  878. //      for WAVE_FORMAT_DIGISTD   (0x0015)
  879. //
  880. //
  881.  
  882. typedef struct digistdwaveformat_tag {
  883.         WAVEFORMATEX    wfx;
  884. } DIGISTDWAVEFORMAT;
  885. typedef DIGISTDWAVEFORMAT       *PDIGISTDWAVEFORMAT;
  886. typedef DIGISTDWAVEFORMAT NEAR *NPDIGISTDWAVEFORMAT;
  887. typedef DIGISTDWAVEFORMAT FAR  *LPDIGISTDWAVEFORMAT;
  888.  
  889. //
  890. //  DSP Solutions (formerly DIGISPEECH) structure definitions
  891. //
  892. //      for WAVE_FORMAT_DIGIFIX   (0x0016)
  893. //
  894. //
  895.  
  896. typedef struct digifixwaveformat_tag {
  897.         WAVEFORMATEX    wfx;
  898. } DIGIFIXWAVEFORMAT;
  899. typedef DIGIFIXWAVEFORMAT       *PDIGIFIXWAVEFORMAT;
  900. typedef DIGIFIXWAVEFORMAT NEAR *NPDIGIFIXWAVEFORMAT;
  901. typedef DIGIFIXWAVEFORMAT FAR  *LPDIGIFIXWAVEFORMAT;
  902.  
  903. //
  904. //   Dialogic Corporation
  905. // WAVEFORMAT_DIALOGIC_OKI_ADPCM   (0x0017)
  906. //
  907. typedef struct creative_fastspeechformat_tag{
  908.         WAVEFORMATEX    ewf;
  909. }DIALOGICOKIADPCMWAVEFORMAT;
  910. typedef DIALOGICOKIADPCMWAVEFORMAT       *PDIALOGICOKIADPCMWAVEFORMAT;
  911. typedef DIALOGICOKIADPCMWAVEFORMAT NEAR *NPDIALOGICOKIADPCMWAVEFORMAT;
  912. typedef DIALOGICOKIADPCMWAVEFORMAT FAR  *LPDIALOGICOKIADPCMWAVEFORMAT;
  913.  
  914. //
  915. //  Yamaha Compression's ADPCM structure definitions
  916. //
  917. //      for WAVE_FORMAT_YAMAHA_ADPCM   (0x0020)
  918. //
  919. //
  920.  
  921. typedef struct yamaha_adpmcwaveformat_tag {
  922.         WAVEFORMATEX    wfx;
  923.         
  924. } YAMAHA_ADPCMWAVEFORMAT;
  925. typedef YAMAHA_ADPCMWAVEFORMAT *PYAMAHA_ADPCMWAVEFORMAT;
  926. typedef YAMAHA_ADPCMWAVEFORMAT NEAR *NPYAMAHA_ADPCMWAVEFORMAT;
  927. typedef YAMAHA_ADPCMWAVEFORMAT FAR  *LPYAMAHA_ADPCMWAVEFORMAT;
  928.  
  929. //
  930. //  Speech Compression's Sonarc structure definitions
  931. //
  932. //      for WAVE_FORMAT_SONARC   (0x0021)
  933. //
  934. //
  935.  
  936. typedef struct sonarcwaveformat_tag {
  937.         WAVEFORMATEX    wfx;
  938.         WORD            wCompType;
  939. } SONARCWAVEFORMAT;
  940. typedef SONARCWAVEFORMAT       *PSONARCWAVEFORMAT;
  941. typedef SONARCWAVEFORMAT NEAR *NPSONARCWAVEFORMAT;
  942. typedef SONARCWAVEFORMAT FAR  *LPSONARCWAVEFORMAT;
  943.  
  944. //
  945. //  DSP Groups's TRUESPEECH structure definitions
  946. //
  947. //      for WAVE_FORMAT_DSPGROUP_TRUESPEECH   (0x0022)
  948. //
  949. //
  950.  
  951. typedef struct truespeechwaveformat_tag {
  952.         WAVEFORMATEX    wfx;
  953.         WORD            wRevision;
  954.         WORD            nSamplesPerBlock;
  955.         BYTE            abReserved[28];
  956. } TRUESPEECHWAVEFORMAT;
  957. typedef TRUESPEECHWAVEFORMAT       *PTRUESPEECHWAVEFORMAT;
  958. typedef TRUESPEECHWAVEFORMAT NEAR *NPTRUESPEECHWAVEFORMAT;
  959. typedef TRUESPEECHWAVEFORMAT FAR  *LPTRUESPEECHWAVEFORMAT;
  960.  
  961. //
  962. //  Echo Speech Corp structure definitions
  963. //
  964. //      for WAVE_FORMAT_ECHOSC1   (0x0023)
  965. //
  966. //
  967.  
  968. typedef struct echosc1waveformat_tag {
  969.         WAVEFORMATEX    wfx;
  970. } ECHOSC1WAVEFORMAT;
  971. typedef ECHOSC1WAVEFORMAT       *PECHOSC1WAVEFORMAT;
  972. typedef ECHOSC1WAVEFORMAT NEAR *NPECHOSC1WAVEFORMAT;
  973. typedef ECHOSC1WAVEFORMAT FAR  *LPECHOSC1WAVEFORMAT;
  974.  
  975. //
  976. //  Audiofile Inc.structure definitions
  977. //
  978. //      for WAVE_FORMAT_AUDIOFILE_AF36   (0x0024)
  979. //
  980. //
  981.  
  982. typedef struct audiofile_af36waveformat_tag {
  983.         WAVEFORMATEX    wfx;
  984. } AUDIOFILE_AF36WAVEFORMAT;
  985. typedef AUDIOFILE_AF36WAVEFORMAT       *PAUDIOFILE_AF36WAVEFORMAT;
  986. typedef AUDIOFILE_AF36WAVEFORMAT NEAR *NPAUDIOFILE_AF36WAVEFORMAT;
  987. typedef AUDIOFILE_AF36WAVEFORMAT FAR  *LPAUDIOFILE_AF36WAVEFORMAT;
  988.  
  989. //
  990. //  Audio Processing Technology structure definitions
  991. //
  992. //      for WAVE_FORMAT_APTX   (0x0025)
  993. //
  994. //
  995. typedef struct aptxwaveformat_tag {
  996.         WAVEFORMATEX    wfx;
  997. } APTXWAVEFORMAT;
  998. typedef APTXWAVEFORMAT       *PAPTXWAVEFORMAT;
  999. typedef APTXWAVEFORMAT NEAR *NPAPTXWAVEFORMAT;
  1000. typedef APTXWAVEFORMAT FAR  *LPAPTXWAVEFORMAT;
  1001.  
  1002. //
  1003. //  Audiofile Inc.structure definitions
  1004. //
  1005. //      for WAVE_FORMAT_AUDIOFILE_AF10   (0x0026)
  1006. //
  1007. //
  1008.  
  1009. typedef struct audiofile_af10waveformat_tag {
  1010.         WAVEFORMATEX    wfx;
  1011. } AUDIOFILE_AF10WAVEFORMAT;
  1012. typedef AUDIOFILE_AF10WAVEFORMAT       *PAUDIOFILE_AF10WAVEFORMAT;
  1013. typedef AUDIOFILE_AF10WAVEFORMAT NEAR *NPAUDIOFILE_AF10WAVEFORMAT;
  1014. typedef AUDIOFILE_AF10WAVEFORMAT FAR  *LPAUDIOFILE_AF10WAVEFORMAT;
  1015.  
  1016. //
  1017. /* Dolby's AC-2 wave format structure definition
  1018.            WAVE_FORMAT_DOLBY_AC2    (0x0030)*/
  1019. //
  1020. typedef struct dolbyac2waveformat_tag {
  1021.         WAVEFORMATEX    wfx;
  1022.         WORD            nAuxBitsCode;
  1023. } DOLBYAC2WAVEFORMAT;
  1024.  
  1025. /*Microsoft's */
  1026. // WAVE_FORMAT_GSM 610           0x0031
  1027. //
  1028. typedef struct gsm610waveformat_tag {
  1029. WAVEFORMATEX    wfx;
  1030. WORD                    wSamplesPerBlock;
  1031. } GSM610WAVEFORMAT;                     
  1032. typedef GSM610WAVEFORMAT *PGSM610WAVEFORMAT;
  1033. typedef GSM610WAVEFORMAT NEAR    *NPGSM610WAVEFORMAT;
  1034. typedef GSM610WAVEFORMAT FAR     *LPGSM610WAVEFORMAT;
  1035.  
  1036. //
  1037. //      Antex Electronics Corp
  1038. //
  1039. //      for WAVE_FORMAT_ADPCME                  (0x0033)
  1040. //
  1041. //
  1042.  
  1043. typedef struct adpcmewaveformat_tag {
  1044.         WAVEFORMATEX    wfx;
  1045.         WORD            wSamplesPerBlock;
  1046. } ADPCMEWAVEFORMAT;
  1047. typedef ADPCMEWAVEFORMAT                *PADPCMEWAVEFORMAT;
  1048. typedef ADPCMEWAVEFORMAT NEAR   *NPADPCMEWAVEFORMAT;
  1049. typedef ADPCMEWAVEFORMAT FAR    *LPADPCMEWAVEFORMAT;
  1050.  
  1051. /*       Control Resources Limited */
  1052. // WAVE_FORMAT_CONTROL_RES_VQLPC                 0x0034
  1053. //
  1054. typedef struct contres_vqlpcwaveformat_tag {
  1055. WAVEFORMATEX    wfx;
  1056. WORD                    wSamplesPerBlock;
  1057. } CONTRESVQLPCWAVEFORMAT;                       
  1058. typedef CONTRESVQLPCWAVEFORMAT *PCONTRESVQLPCWAVEFORMAT;
  1059. typedef CONTRESVQLPCWAVEFORMAT NEAR      *NPCONTRESVQLPCWAVEFORMAT;
  1060. typedef CONTRESVQLPCWAVEFORMAT FAR       *LPCONTRESVQLPCWAVEFORMAT;
  1061.  
  1062. //
  1063. //
  1064. //
  1065. //      for WAVE_FORMAT_DIGIREAL                   (0x0035)
  1066. //
  1067. //
  1068.  
  1069. typedef struct digirealwaveformat_tag {
  1070.         WAVEFORMATEX    wfx;
  1071.         WORD            wSamplesPerBlock;
  1072. } DIGIREALWAVEFORMAT;
  1073. typedef DIGIREALWAVEFORMAT *PDIGIREALWAVEFORMAT;
  1074. typedef DIGIREALWAVEFORMAT NEAR *NPDIGIREALWAVEFORMAT;
  1075. typedef DIGIREALWAVEFORMAT FAR *LPDIGIREALWAVEFORMAT;
  1076.  
  1077. //
  1078. //  DSP Solutions
  1079. //
  1080. //      for WAVE_FORMAT_DIGIADPCM   (0x0036)
  1081. //
  1082. //
  1083.  
  1084. typedef struct digiadpcmmwaveformat_tag {
  1085.         WAVEFORMATEX    wfx;
  1086.         WORD            wSamplesPerBlock;
  1087. } DIGIADPCMWAVEFORMAT;
  1088. typedef DIGIADPCMWAVEFORMAT       *PDIGIADPCMWAVEFORMAT;
  1089. typedef DIGIADPCMWAVEFORMAT NEAR *NPDIGIADPCMWAVEFORMAT;
  1090. typedef DIGIADPCMWAVEFORMAT FAR  *LPDIGIADPCMWAVEFORMAT;
  1091.  
  1092. /*       Control Resources Limited */
  1093. // WAVE_FORMAT_CONTROL_RES_CR10          0x0037
  1094. //
  1095. typedef struct contres_cr10waveformat_tag {
  1096. WAVEFORMATEX    wfx;
  1097. WORD                    wSamplesPerBlock;
  1098. } CONTRESCR10WAVEFORMAT;                        
  1099. typedef CONTRESCR10WAVEFORMAT *PCONTRESCR10WAVEFORMAT;
  1100. typedef CONTRESCR10WAVEFORMAT NEAR       *NPCONTRESCR10WAVEFORMAT;
  1101. typedef CONTRESCR10WAVEFORMAT FAR        *LPCONTRESCR10WAVEFORMAT;
  1102.  
  1103. //
  1104. //  Natural Microsystems
  1105. //
  1106. //      for WAVE_FORMAT_NMS_VBXADPCM   (0x0038)
  1107. //
  1108. //
  1109.  
  1110. typedef struct nms_vbxadpcmmwaveformat_tag {
  1111.         WAVEFORMATEX    wfx;
  1112.         WORD            wSamplesPerBlock;
  1113. } NMS_VBXADPCMWAVEFORMAT;
  1114. typedef NMS_VBXADPCMWAVEFORMAT       *PNMS_VBXADPCMWAVEFORMAT;
  1115. typedef NMS_VBXADPCMWAVEFORMAT NEAR *NPNMS_VBXADPCMWAVEFORMAT;
  1116. typedef NMS_VBXADPCMWAVEFORMAT FAR  *LPNMS_VBXADPCMWAVEFORMAT;
  1117.  
  1118. //
  1119. //  Antex Electronics  structure definitions
  1120. //
  1121. //      for WAVE_FORMAT_G721_ADPCM   (0x0040)
  1122. //
  1123. //
  1124.  
  1125. typedef struct g721_adpcmwaveformat_tag {
  1126.         WAVEFORMATEX    wfx;
  1127.         WORD            nAuxBlockSize;
  1128. } G721_ADPCMWAVEFORMAT;
  1129. typedef G721_ADPCMWAVEFORMAT *PG721_ADPCMWAVEFORMAT;
  1130. typedef G721_ADPCMWAVEFORMAT NEAR *NPG721_ADPCMWAVEFORMAT;
  1131. typedef G721_ADPCMWAVEFORMAT FAR  *LPG721_ADPCMWAVEFORMAT;
  1132.  
  1133. //
  1134. //
  1135. // Microsoft MPEG audio WAV definition
  1136. //
  1137. /*  MPEG-1 audio wave format (audio layer only).   (0x0050)   */
  1138. typedef struct mpeg1waveformat_tag {
  1139.     WAVEFORMATEX    wfx;
  1140.     WORD            fwHeadLayer;
  1141.     DWORD           dwHeadBitrate;
  1142.     WORD            fwHeadMode;
  1143.     WORD            fwHeadModeExt;
  1144.     WORD            wHeadEmphasis;
  1145.     WORD            fwHeadFlags;
  1146.     DWORD           dwPTSLow;
  1147.     DWORD           dwPTSHigh;
  1148. } MPEG1WAVEFORMAT;
  1149. typedef MPEG1WAVEFORMAT                 *PMPEG1WAVEFORMAT;
  1150. typedef MPEG1WAVEFORMAT NEAR           *NPMPEG1WAVEFORMAT;
  1151. typedef MPEG1WAVEFORMAT FAR            *LPMPEG1WAVEFORMAT;
  1152.  
  1153. #define ACM_MPEG_LAYER1             (0x0001)
  1154. #define ACM_MPEG_LAYER2             (0x0002)
  1155. #define ACM_MPEG_LAYER3             (0x0004)
  1156. #define ACM_MPEG_STEREO             (0x0001)
  1157. #define ACM_MPEG_JOINTSTEREO        (0x0002)
  1158. #define ACM_MPEG_DUALCHANNEL        (0x0004)
  1159. #define ACM_MPEG_SINGLECHANNEL      (0x0008)
  1160. #define ACM_MPEG_PRIVATEBIT         (0x0001)
  1161. #define ACM_MPEG_COPYRIGHT          (0x0002)
  1162. #define ACM_MPEG_ORIGINALHOME       (0x0004)
  1163. #define ACM_MPEG_PROTECTIONBIT      (0x0008)
  1164. #define ACM_MPEG_ID_MPEG1           (0x0010)
  1165.  
  1166. //
  1167. //  Creative's ADPCM structure definitions
  1168. //
  1169. //      for WAVE_FORMAT_CREATIVE_ADPCM   (0x0200)
  1170. //
  1171. //
  1172.  
  1173. typedef struct creative_adpcmwaveformat_tag {
  1174.         WAVEFORMATEX    wfx;
  1175.         WORD            wRevision;
  1176. } CREATIVEADPCMWAVEFORMAT;
  1177. typedef CREATIVEADPCMWAVEFORMAT       *PCREATIVEADPCMWAVEFORMAT;
  1178. typedef CREATIVEADPCMWAVEFORMAT NEAR *NPCREATIVEADPCMWAVEFORMAT;
  1179. typedef CREATIVEADPCMWAVEFORMAT FAR  *LPCREATIVEADPCMWAVEFORMAT;
  1180.  
  1181. //
  1182. //    Creative FASTSPEECH
  1183. // WAVEFORMAT_CREATIVE_FASTSPEECH8   (0x0202)
  1184. //
  1185. typedef struct creative_fastspeech8format_tag {
  1186.         WAVEFORMATEX    wfx;
  1187.         WORD wRevision;
  1188. } CREATIVEFASTSPEECH8WAVEFORMAT;
  1189. typedef CREATIVEFASTSPEECH8WAVEFORMAT       *PCREATIVEFASTSPEECH8WAVEFORMAT;
  1190. typedef CREATIVEFASTSPEECH8WAVEFORMAT NEAR *NPCREATIVEFASTSPEECH8WAVEFORMAT;
  1191. typedef CREATIVEFASTSPEECH8WAVEFORMAT FAR  *LPCREATIVEFASTSPEECH8WAVEFORMAT;
  1192. //
  1193. //    Creative FASTSPEECH
  1194. // WAVEFORMAT_CREATIVE_FASTSPEECH10   (0x0203)
  1195. //
  1196. typedef struct creative_fastspeech10format_tag {
  1197.         WAVEFORMATEX    wfx;
  1198.         WORD wRevision;
  1199. } CREATIVEFASTSPEECH10WAVEFORMAT;
  1200. typedef CREATIVEFASTSPEECH10WAVEFORMAT       *PCREATIVEFASTSPEECH10WAVEFORMAT;
  1201. typedef CREATIVEFASTSPEECH10WAVEFORMAT NEAR *NPCREATIVEFASTSPEECH10WAVEFORMAT;
  1202. typedef CREATIVEFASTSPEECH10WAVEFORMAT FAR  *LPCREATIVEFASTSPEECH10WAVEFORMAT;
  1203.  
  1204. //
  1205. //  Fujitsu FM Towns 'SND' structure
  1206. //
  1207. //      for WAVE_FORMAT_FMMTOWNS_SND   (0x0300)
  1208. //
  1209. //
  1210.  
  1211. typedef struct fmtowns_snd_waveformat_tag {
  1212.         WAVEFORMATEX    wfx;
  1213.         WORD            wRevision;
  1214. } FMTOWNS_SND_WAVEFORMAT;
  1215. typedef FMTOWNS_SND_WAVEFORMAT       *PFMTOWNS_SND_WAVEFORMAT;
  1216. typedef FMTOWNS_SND_WAVEFORMAT NEAR *NPFMTOWNS_SND_WAVEFORMAT;
  1217. typedef FMTOWNS_SND_WAVEFORMAT FAR  *LPFMTOWNS_SND_WAVEFORMAT;
  1218.  
  1219. //
  1220. //  Olivetti structure
  1221. //
  1222. //      for WAVE_FORMAT_OLIGSM   (0x1000)
  1223. //
  1224. //
  1225.  
  1226. typedef struct oligsmwaveformat_tag {
  1227.         WAVEFORMATEX    wfx;
  1228. } OLIGSMWAVEFORMAT;
  1229. typedef OLIGSMWAVEFORMAT     *POLIGSMWAVEFORMAT;
  1230. typedef OLIGSMWAVEFORMAT NEAR *NPOLIGSMWAVEFORMAT;
  1231. typedef OLIGSMWAVEFORMAT  FAR  *LPOLIGSMWAVEFORMAT;
  1232.  
  1233. //
  1234. //  Olivetti structure
  1235. //
  1236. //      for WAVE_FORMAT_OLIADPCM   (0x1001)
  1237. //
  1238. //
  1239.  
  1240. typedef struct oliadpcmwaveformat_tag {
  1241.         WAVEFORMATEX    wfx;
  1242. } OLIADPCMWAVEFORMAT;
  1243. typedef OLIADPCMWAVEFORMAT     *POLIADPCMWAVEFORMAT;
  1244. typedef OLIADPCMWAVEFORMAT NEAR *NPOLIADPCMWAVEFORMAT ;
  1245. typedef OLIADPCMWAVEFORMAT  FAR  *LPOLIADPCMWAVEFORMAT;
  1246.  
  1247. //
  1248. //  Olivetti structure
  1249. //
  1250. //      for WAVE_FORMAT_OLICELP   (0x1002)
  1251. //
  1252. //
  1253.  
  1254. typedef struct olicelpwaveformat_tag {
  1255.         WAVEFORMATEX    wfx;
  1256. } OLICELPWAVEFORMAT;
  1257. typedef OLICELPWAVEFORMAT     *POLICELPWAVEFORMAT;
  1258. typedef OLICELPWAVEFORMAT NEAR *NPOLICELPWAVEFORMAT ;
  1259. typedef OLICELPWAVEFORMAT  FAR  *LPOLICELPWAVEFORMAT;
  1260.  
  1261. //
  1262. //  Olivetti structure
  1263. //
  1264. //      for WAVE_FORMAT_OLISBC   (0x1003)
  1265. //
  1266. //
  1267.  
  1268. typedef struct olisbcwaveformat_tag {
  1269.         WAVEFORMATEX    wfx;
  1270. } OLISBCWAVEFORMAT;
  1271. typedef OLISBCWAVEFORMAT     *POLISBCWAVEFORMAT;
  1272. typedef OLISBCWAVEFORMAT NEAR *NPOLISBCWAVEFORMAT ;
  1273. typedef OLISBCWAVEFORMAT  FAR  *LPOLISBCWAVEFORMAT;
  1274.  
  1275. //
  1276. //  Olivetti structure
  1277. //
  1278. //      for WAVE_FORMAT_OLIOPR   (0x1004)
  1279. //
  1280. //
  1281.  
  1282. typedef struct olioprwaveformat_tag {
  1283.         WAVEFORMATEX    wfx;
  1284. } OLIOPRWAVEFORMAT;
  1285. typedef OLIOPRWAVEFORMAT     *POLIOPRWAVEFORMAT;
  1286. typedef OLIOPRWAVEFORMAT NEAR *NPOLIOPRWAVEFORMAT ;
  1287. typedef OLIOPRWAVEFORMAT  FAR  *LPOLIOPRWAVEFORMAT;
  1288.  
  1289. //
  1290. //  Crystal Semiconductor IMA ADPCM format
  1291. //
  1292. //      for WAVE_FORMAT_CS_IMAADPCM   (0x0039)
  1293. //
  1294. //
  1295.  
  1296. typedef struct csimaadpcmwaveformat_tag {
  1297.         WAVEFORMATEX    wfx;
  1298. } CSIMAADPCMWAVEFORMAT;
  1299. typedef CSIMAADPCMWAVEFORMAT     *PCSIMAADPCMWAVEFORMAT;
  1300. typedef CSIMAADPCMWAVEFORMAT NEAR *NPCSIMAADPCMWAVEFORMAT ;
  1301. typedef CSIMAADPCMWAVEFORMAT  FAR  *LPCSIMAADPCMWAVEFORMAT;
  1302.  
  1303. //==========================================================================;
  1304. //
  1305. //  ACM Wave Filters
  1306. //
  1307. //
  1308. //==========================================================================;
  1309.  
  1310. #ifndef _ACM_WAVEFILTER
  1311. #define _ACM_WAVEFILTER
  1312.  
  1313. #define WAVE_FILTER_UNKNOWN         0x0000
  1314. #define WAVE_FILTER_DEVELOPMENT    (0xFFFF)
  1315.  
  1316. typedef struct wavefilter_tag {
  1317.     DWORD   cbStruct;           /* Size of the filter in bytes */
  1318.     DWORD   dwFilterTag;        /* filter type */
  1319.     DWORD   fdwFilter;          /* Flags for the filter (Universal Dfns) */
  1320.     DWORD   dwReserved[5];      /* Reserved for system use */
  1321. } WAVEFILTER;
  1322. typedef WAVEFILTER       *PWAVEFILTER;
  1323. typedef WAVEFILTER NEAR *NPWAVEFILTER;
  1324. typedef WAVEFILTER FAR  *LPWAVEFILTER;
  1325.  
  1326. #endif  /* _ACM_WAVEFILTER */
  1327.  
  1328. #ifndef WAVE_FILTER_VOLUME
  1329. #define WAVE_FILTER_VOLUME      0x0001
  1330.  
  1331. typedef struct wavefilter_volume_tag {
  1332.         WAVEFILTER      wfltr;
  1333.         DWORD           dwVolume;
  1334. } VOLUMEWAVEFILTER;
  1335. typedef VOLUMEWAVEFILTER       *PVOLUMEWAVEFILTER;
  1336. typedef VOLUMEWAVEFILTER NEAR *NPVOLUMEWAVEFILTER;
  1337. typedef VOLUMEWAVEFILTER FAR  *LPVOLUMEWAVEFILTER;
  1338.  
  1339. #endif  /* WAVE_FILTER_VOLUME */
  1340.  
  1341. #ifndef WAVE_FILTER_ECHO
  1342. #define WAVE_FILTER_ECHO        0x0002
  1343.  
  1344. typedef struct wavefilter_echo_tag {
  1345.         WAVEFILTER      wfltr;
  1346.         DWORD           dwVolume;
  1347.         DWORD           dwDelay;
  1348. } ECHOWAVEFILTER;
  1349. typedef ECHOWAVEFILTER       *PECHOWAVEFILTER;
  1350. typedef ECHOWAVEFILTER NEAR *NPECHOWAVEFILTER;
  1351. typedef ECHOWAVEFILTER FAR  *LPECHOWAVEFILTER;
  1352.  
  1353. #endif  /* WAVEFILTER_ECHO */
  1354.  
  1355. /*//////////////////////////////////////////////////////////////////////////
  1356. //
  1357. // New RIFF WAVE Chunks
  1358. //
  1359. */
  1360.  
  1361. #define RIFFWAVE_inst   mmioFOURCC('i','n','s','t')
  1362.  
  1363. struct tag_s_RIFFWAVE_inst {
  1364.     BYTE    bUnshiftedNote;
  1365.     char    chFineTune;
  1366.     char    chGain;
  1367.     BYTE    bLowNote;
  1368.     BYTE    bHighNote;
  1369.     BYTE    bLowVelocity;
  1370.     BYTE    bHighVelocity;
  1371. };
  1372.  
  1373. typedef struct tag_s_RIFFWAVE_INST s_RIFFWAVE_inst;
  1374.  
  1375. #endif
  1376.  
  1377. /*//////////////////////////////////////////////////////////////////////////
  1378. //
  1379. // New RIFF Forms
  1380. //
  1381. */
  1382.  
  1383. #ifndef NONEWRIFF
  1384.  
  1385. /* RIFF AVI */
  1386.  
  1387. //
  1388. // AVI file format is specified in a seperate file (AVIFMT.H),
  1389. // which is available in the VfW and Win 32 SDK
  1390. //
  1391.  
  1392. /* RIFF CPPO */
  1393.  
  1394. #define RIFFCPPO        mmioFOURCC('C','P','P','O')
  1395.  
  1396. #define RIFFCPPO_objr   mmioFOURCC('o','b','j','r')
  1397. #define RIFFCPPO_obji   mmioFOURCC('o','b','j','i')
  1398.  
  1399. #define RIFFCPPO_clsr   mmioFOURCC('c','l','s','r')
  1400. #define RIFFCPPO_clsi   mmioFOURCC('c','l','s','i')
  1401.  
  1402. #define RIFFCPPO_mbr    mmioFOURCC('m','b','r',' ')
  1403.  
  1404. #define RIFFCPPO_char   mmioFOURCC('c','h','a','r')
  1405.  
  1406. #define RIFFCPPO_byte   mmioFOURCC('b','y','t','e')
  1407. #define RIFFCPPO_int    mmioFOURCC('i','n','t',' ')
  1408. #define RIFFCPPO_word   mmioFOURCC('w','o','r','d')
  1409. #define RIFFCPPO_long   mmioFOURCC('l','o','n','g')
  1410. #define RIFFCPPO_dwrd   mmioFOURCC('d','w','r','d')
  1411. #define RIFFCPPO_flt    mmioFOURCC('f','l','t',' ')
  1412. #define RIFFCPPO_dbl    mmioFOURCC('d','b','l',' ')
  1413. #define RIFFCPPO_str    mmioFOURCC('s','t','r',' ')
  1414.  
  1415. #endif
  1416.  
  1417. /*
  1418. //////////////////////////////////////////////////////////////////////////
  1419. //
  1420. // DIB Compression Defines
  1421. //
  1422. */
  1423.  
  1424. #ifndef BI_BITFIELDS
  1425. #define BI_BITFIELDS    3
  1426. #endif
  1427.  
  1428. #ifndef QUERYDIBSUPPORT
  1429.  
  1430. #define QUERYDIBSUPPORT 3073
  1431. #define QDI_SETDIBITS   0x0001
  1432. #define QDI_GETDIBITS   0x0002
  1433. #define QDI_DIBTOSCREEN 0x0004
  1434. #define QDI_STRETCHDIB  0x0008
  1435.  
  1436. #endif
  1437.  
  1438. #ifndef NOBITMAP
  1439. /* Structure definitions */
  1440.  
  1441. typedef struct tagEXBMINFOHEADER {
  1442.         BITMAPINFOHEADER    bmi;
  1443.         /* extended BITMAPINFOHEADER fields */
  1444.         DWORD   biExtDataOffset;
  1445.         
  1446.         /* Other stuff will go here */
  1447.  
  1448.         /* ... */
  1449.  
  1450.         /* Format-specific information */
  1451.         /* biExtDataOffset points here */
  1452.         
  1453. } EXBMINFOHEADER;
  1454.  
  1455. #endif          //NOBITMAP
  1456.  
  1457. /* New DIB Compression Defines */
  1458.  
  1459. #define BICOMP_IBMULTIMOTION    mmioFOURCC('U', 'L', 'T', 'I')
  1460. #define BICOMP_IBMPHOTOMOTION   mmioFOURCC('P', 'H', 'M', 'O')
  1461. #define BICOMP_CREATIVEYUV      mmioFOURCC('c', 'y', 'u', 'v')
  1462.  
  1463. #ifndef NOJPEGDIB
  1464.  
  1465. /* New DIB Compression Defines */
  1466. #define JPEG_DIB        mmioFOURCC('J','P','E','G')    /* Still image JPEG DIB biCompression */
  1467. #define MJPG_DIB        mmioFOURCC('M','J','P','G')    /* Motion JPEG DIB biCompression     */
  1468.  
  1469. /* JPEGProcess Definitions */
  1470. #define JPEG_PROCESS_BASELINE           0       /* Baseline DCT */
  1471.  
  1472. /* AVI File format extensions */
  1473. #define AVIIF_CONTROLFRAME              0x00000200L     /* This is a control frame */
  1474.  
  1475.     /* JIF Marker byte pairs in JPEG Interchange Format sequence */
  1476. #define JIFMK_SOF0    0xFFC0   /* SOF Huff  - Baseline DCT*/
  1477. #define JIFMK_SOF1    0xFFC1   /* SOF Huff  - Extended sequential DCT*/
  1478. #define JIFMK_SOF2    0xFFC2   /* SOF Huff  - Progressive DCT*/
  1479. #define JIFMK_SOF3    0xFFC3   /* SOF Huff  - Spatial (sequential) lossless*/
  1480. #define JIFMK_SOF5    0xFFC5   /* SOF Huff  - Differential sequential DCT*/
  1481. #define JIFMK_SOF6    0xFFC6   /* SOF Huff  - Differential progressive DCT*/
  1482. #define JIFMK_SOF7    0xFFC7   /* SOF Huff  - Differential spatial*/
  1483. #define JIFMK_JPG     0xFFC8   /* SOF Arith - Reserved for JPEG extensions*/
  1484. #define JIFMK_SOF9    0xFFC9   /* SOF Arith - Extended sequential DCT*/
  1485. #define JIFMK_SOF10   0xFFCA   /* SOF Arith - Progressive DCT*/
  1486. #define JIFMK_SOF11   0xFFCB   /* SOF Arith - Spatial (sequential) lossless*/
  1487. #define JIFMK_SOF13   0xFFCD   /* SOF Arith - Differential sequential DCT*/
  1488. #define JIFMK_SOF14   0xFFCE   /* SOF Arith - Differential progressive DCT*/
  1489. #define JIFMK_SOF15   0xFFCF   /* SOF Arith - Differential spatial*/
  1490. #define JIFMK_DHT     0xFFC4   /* Define Huffman Table(s) */
  1491. #define JIFMK_DAC     0xFFCC   /* Define Arithmetic coding conditioning(s) */
  1492. #define JIFMK_RST0    0xFFD0   /* Restart with modulo 8 count 0 */
  1493. #define JIFMK_RST1    0xFFD1   /* Restart with modulo 8 count 1 */
  1494. #define JIFMK_RST2    0xFFD2   /* Restart with modulo 8 count 2 */
  1495. #define JIFMK_RST3    0xFFD3   /* Restart with modulo 8 count 3 */
  1496. #define JIFMK_RST4    0xFFD4   /* Restart with modulo 8 count 4 */
  1497. #define JIFMK_RST5    0xFFD5   /* Restart with modulo 8 count 5 */
  1498. #define JIFMK_RST6    0xFFD6   /* Restart with modulo 8 count 6 */
  1499. #define JIFMK_RST7    0xFFD7   /* Restart with modulo 8 count 7 */
  1500. #define JIFMK_SOI     0xFFD8   /* Start of Image */
  1501. #define JIFMK_EOI     0xFFD9   /* End of Image */
  1502. #define JIFMK_SOS     0xFFDA   /* Start of Scan */
  1503. #define JIFMK_DQT     0xFFDB   /* Define quantization Table(s) */
  1504. #define JIFMK_DNL     0xFFDC   /* Define Number of Lines */
  1505. #define JIFMK_DRI     0xFFDD   /* Define Restart Interval */
  1506. #define JIFMK_DHP     0xFFDE   /* Define Hierarchical progression */
  1507. #define JIFMK_EXP     0xFFDF   /* Expand Reference Component(s) */
  1508. #define JIFMK_APP0    0xFFE0   /* Application Field 0*/
  1509. #define JIFMK_APP1    0xFFE1   /* Application Field 1*/
  1510. #define JIFMK_APP2    0xFFE2   /* Application Field 2*/
  1511. #define JIFMK_APP3    0xFFE3   /* Application Field 3*/
  1512. #define JIFMK_APP4    0xFFE4   /* Application Field 4*/
  1513. #define JIFMK_APP5    0xFFE5   /* Application Field 5*/
  1514. #define JIFMK_APP6    0xFFE6   /* Application Field 6*/
  1515. #define JIFMK_APP7    0xFFE7   /* Application Field 7*/
  1516. #define JIFMK_JPG0    0xFFF0   /* Reserved for JPEG extensions */
  1517. #define JIFMK_JPG1    0xFFF1   /* Reserved for JPEG extensions */
  1518. #define JIFMK_JPG2    0xFFF2   /* Reserved for JPEG extensions */
  1519. #define JIFMK_JPG3    0xFFF3   /* Reserved for JPEG extensions */
  1520. #define JIFMK_JPG4    0xFFF4   /* Reserved for JPEG extensions */
  1521. #define JIFMK_JPG5    0xFFF5   /* Reserved for JPEG extensions */
  1522. #define JIFMK_JPG6    0xFFF6   /* Reserved for JPEG extensions */
  1523. #define JIFMK_JPG7    0xFFF7   /* Reserved for JPEG extensions */
  1524. #define JIFMK_JPG8    0xFFF8   /* Reserved for JPEG extensions */
  1525. #define JIFMK_JPG9    0xFFF9   /* Reserved for JPEG extensions */
  1526. #define JIFMK_JPG10   0xFFFA   /* Reserved for JPEG extensions */
  1527. #define JIFMK_JPG11   0xFFFB   /* Reserved for JPEG extensions */
  1528. #define JIFMK_JPG12   0xFFFC   /* Reserved for JPEG extensions */
  1529. #define JIFMK_JPG13   0xFFFD   /* Reserved for JPEG extensions */
  1530. #define JIFMK_COM     0xFFFE   /* Comment */
  1531. #define JIFMK_TEM     0xFF01   /* for temp private use arith code */
  1532. #define JIFMK_RES     0xFF02   /* Reserved */
  1533. #define JIFMK_00      0xFF00   /* Zero stuffed byte - entropy data */
  1534. #define JIFMK_FF      0xFFFF   /* Fill byte */
  1535.  
  1536. /* JPEGColorSpaceID Definitions */
  1537. #define JPEG_Y          1       /* Y only component of YCbCr */
  1538. #define JPEG_YCbCr      2       /* YCbCr as define by CCIR 601 */
  1539. #define JPEG_RGB        3       /* 3 component RGB */
  1540.  
  1541. /* Structure definitions */
  1542.  
  1543. typedef struct tagJPEGINFOHEADER {
  1544.     /* compression-specific fields */
  1545.     /* these fields are defined for 'JPEG' and 'MJPG' */
  1546.     DWORD       JPEGSize;
  1547.     DWORD       JPEGProcess;
  1548.  
  1549.     /* Process specific fields */
  1550.     DWORD       JPEGColorSpaceID;
  1551.     DWORD       JPEGBitsPerSample;
  1552.     DWORD       JPEGHSubSampling;
  1553.     DWORD       JPEGVSubSampling;
  1554. } JPEGINFOHEADER;
  1555.  
  1556. #ifdef MJPGDHTSEG_STORAGE
  1557.  
  1558. /* Default DHT Segment */
  1559.  
  1560. MJPGHDTSEG_STORAGE BYTE MJPGDHTSeg[0x1A4] = {
  1561.  /* JPEG DHT Segment for YCrCb omitted from MJPG data */
  1562. 0xFF,0xC4,0x01,0xA2,
  1563. 0x00,0x00,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1564. 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x01,0x00,0x03,0x01,0x01,0x01,0x01,
  1565. 0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
  1566. 0x08,0x09,0x0A,0x0B,0x10,0x00,0x02,0x01,0x03,0x03,0x02,0x04,0x03,0x05,0x05,0x04,0x04,0x00,
  1567. 0x00,0x01,0x7D,0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,0x21,0x31,0x41,0x06,0x13,0x51,0x61,
  1568. 0x07,0x22,0x71,0x14,0x32,0x81,0x91,0xA1,0x08,0x23,0x42,0xB1,0xC1,0x15,0x52,0xD1,0xF0,0x24,
  1569. 0x33,0x62,0x72,0x82,0x09,0x0A,0x16,0x17,0x18,0x19,0x1A,0x25,0x26,0x27,0x28,0x29,0x2A,0x34,
  1570. 0x35,0x36,0x37,0x38,0x39,0x3A,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x53,0x54,0x55,0x56,
  1571. 0x57,0x58,0x59,0x5A,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x73,0x74,0x75,0x76,0x77,0x78,
  1572. 0x79,0x7A,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,
  1573. 0x9A,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,
  1574. 0xBA,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,
  1575. 0xDA,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,
  1576. 0xF8,0xF9,0xFA,0x11,0x00,0x02,0x01,0x02,0x04,0x04,0x03,0x04,0x07,0x05,0x04,0x04,0x00,0x01,
  1577. 0x02,0x77,0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,
  1578. 0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,0xA1,0xB1,0xC1,0x09,0x23,0x33,0x52,0xF0,0x15,0x62,
  1579. 0x72,0xD1,0x0A,0x16,0x24,0x34,0xE1,0x25,0xF1,0x17,0x18,0x19,0x1A,0x26,0x27,0x28,0x29,0x2A,
  1580. 0x35,0x36,0x37,0x38,0x39,0x3A,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x53,0x54,0x55,0x56,
  1581. 0x57,0x58,0x59,0x5A,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x73,0x74,0x75,0x76,0x77,0x78,
  1582. 0x79,0x7A,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
  1583. 0x99,0x9A,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,
  1584. 0xB9,0xBA,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,
  1585. 0xD9,0xDA,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,
  1586. 0xF9,0xFA
  1587. };
  1588.  
  1589. /* End DHT default */
  1590. #endif
  1591.  
  1592. /* End JPEG */
  1593. #endif
  1594.  
  1595. /*//////////////////////////////////////////////////////////////////////////
  1596. //
  1597. // Defined IC types
  1598. */
  1599.  
  1600. #ifndef NONEWIC
  1601.  
  1602. #ifndef ICTYPE_VIDEO
  1603. #define ICTYPE_VIDEO    mmioFOURCC('v', 'i', 'd', 'c')
  1604. #define ICTYPE_AUDIO    mmioFOURCC('a', 'u', 'd', 'c')
  1605. #endif
  1606.  
  1607. #endif
  1608. /*
  1609. //   Misc. FOURCC registration
  1610. */
  1611.  
  1612. /* Sierra Semiconductor: RDSP- Confidential RIFF file format
  1613. //       for the storage and downloading of DSP
  1614. //       code for Audio and communications devices.
  1615. */
  1616. #define FOURCC_RDSP mmioFOURCC('R', 'D', 'S', 'P')
  1617.  
  1618. #ifndef MMNOMIXER
  1619. #define MIXERCONTROL_CONTROLTYPE_SRS_MTS                (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 6)
  1620. #define MIXERCONTROL_CONTROLTYPE_SRS_ONOFF              (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 7)
  1621. #define MIXERCONTROL_CONTROLTYPE_SRS_SYNTHSELECT        (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 8)
  1622. #endif
  1623.  
  1624. #ifndef RC_INVOKED
  1625. #pragma pack()          /* Revert to default packing */
  1626. //NT #include "poppack.h"    /* Revert to default packing */
  1627. #endif  /* RC_INVOKED */
  1628.  
  1629. #ifdef __cplusplus
  1630. }                       /* End of extern "C" { */
  1631. #endif  /* __cplusplus */
  1632.  
  1633. #endif  /* _INC_MMREG */
  1634.