mmreg.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499
  1. /*
  2. * Declarations for MultiMedia-REGistration
  3. *
  4. * Copyright (C) 1999 Eric Pouech
  5. *
  6. * This library is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU Lesser General Public
  8. * License as published by the Free Software Foundation; either
  9. * version 2.1 of the License, or (at your option) any later version.
  10. *
  11. * This library is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser General Public
  17. * License along with this library; if not, write to the Free Software
  18. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  19. */
  20. #ifndef __WINE_MMREG_H
  21. #define __WINE_MMREG_H
  22. /***********************************************************************
  23. * Defines/Enums
  24. */
  25. #ifndef _ACM_WAVEFILTER
  26. #define _ACM_WAVEFILTER
  27. #define WAVE_FILTER_UNKNOWN 0x0000
  28. #define WAVE_FILTER_DEVELOPMENT 0xFFFF
  29. typedef struct _WAVEFILTER {
  30. DWORD cbStruct;
  31. DWORD dwFilterTag;
  32. DWORD fdwFilter;
  33. DWORD dwReserved[5];
  34. } WAVEFILTER, *PWAVEFILTER, *NPWAVEFILTER, *LPWAVEFILTER;
  35. #endif /* _ACM_WAVEFILTER */
  36. #ifndef WAVE_FILTER_VOLUME
  37. #define WAVE_FILTER_VOLUME 0x0001
  38. typedef struct _WAVEFILTER_VOLUME {
  39. WAVEFILTER wfltr;
  40. DWORD dwVolume;
  41. } VOLUMEWAVEFILTER, *PVOLUMEWAVEFILTER, *NPVOLUMEWAVEFILTER, *LPVOLUMEWAVEFILTER;
  42. #endif /* WAVE_FILTER_VOLUME */
  43. #ifndef WAVE_FILTER_ECHO
  44. #define WAVE_FILTER_ECHO 0x0002
  45. typedef struct WAVEFILTER_ECHO {
  46. WAVEFILTER wfltr;
  47. DWORD dwVolume;
  48. DWORD dwDelay;
  49. } ECHOWAVEFILTER, *PECHOWAVEFILTER, *NPECHOWAVEFILTER, *LPECHOWAVEFILTER;
  50. #endif /* WAVEFILTER_ECHO */
  51. #ifndef _WAVEFORMATEX_
  52. #define _WAVEFORMATEX_
  53. typedef struct _WAVEFORMATEX {
  54. WORD wFormatTag;
  55. WORD nChannels;
  56. DWORD nSamplesPerSec;
  57. DWORD nAvgBytesPerSec;
  58. WORD nBlockAlign;
  59. WORD wBitsPerSample;
  60. WORD cbSize;
  61. } WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX;
  62. #endif /* _WAVEFORMATEX_ */
  63. /* WAVE form wFormatTag IDs */
  64. #define WAVE_FORMAT_UNKNOWN 0x0000 /* Microsoft Corporation */
  65. #define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
  66. #define WAVE_FORMAT_IBM_CVSD 0x0005 /* IBM Corporation */
  67. #define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
  68. #define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
  69. #define WAVE_FORMAT_OKI_ADPCM 0x0010 /* OKI */
  70. #define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
  71. #define WAVE_FORMAT_IMA_ADPCM (WAVE_FORMAT_DVI_ADPCM) /* Intel Corporation */
  72. #define WAVE_FORMAT_MEDIASPACE_ADPCM 0x0012 /* Videologic */
  73. #define WAVE_FORMAT_SIERRA_ADPCM 0x0013 /* Sierra Semiconductor Corp */
  74. #define WAVE_FORMAT_G723_ADPCM 0x0014 /* Antex Electronics Corporation */
  75. #define WAVE_FORMAT_DIGISTD 0x0015 /* DSP Solutions, Inc. */
  76. #define WAVE_FORMAT_DIGIFIX 0x0016 /* DSP Solutions, Inc. */
  77. #define WAVE_FORMAT_DIALOGIC_OKI_ADPCM 0x0017 /* Dialogic Corporation */
  78. #define WAVE_FORMAT_YAMAHA_ADPCM 0x0020 /* Yamaha Corporation of America */
  79. #define WAVE_FORMAT_SONARC 0x0021 /* Speech Compression */
  80. #define WAVE_FORMAT_DSPGROUP_TRUESPEECH 0x0022 /* DSP Group, Inc */
  81. #define WAVE_FORMAT_ECHOSC1 0x0023 /* Echo Speech Corporation */
  82. #define WAVE_FORMAT_AUDIOFILE_AF36 0x0024 /* */
  83. #define WAVE_FORMAT_APTX 0x0025 /* Audio Processing Technology */
  84. #define WAVE_FORMAT_AUDIOFILE_AF10 0x0026 /* */
  85. #define WAVE_FORMAT_DOLBY_AC2 0x0030 /* Dolby Laboratories */
  86. #define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */
  87. #define WAVE_FORMAT_ANTEX_ADPCME 0x0033 /* Antex Electronics Corporation */
  88. #define WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034 /* Control Resources Limited */
  89. #define WAVE_FORMAT_DIGIREAL 0x0035 /* DSP Solutions, Inc. */
  90. #define WAVE_FORMAT_DIGIADPCM 0x0036 /* DSP Solutions, Inc. */
  91. #define WAVE_FORMAT_CONTROL_RES_CR10 0x0037 /* Control Resources Limited */
  92. #define WAVE_FORMAT_NMS_VBXADPCM 0x0038 /* Natural MicroSystems */
  93. #define WAVE_FORMAT_G721_ADPCM 0x0040 /* Antex Electronics Corporation */
  94. #define WAVE_FORMAT_MPEG 0x0050 /* Microsoft Corporation */
  95. #define WAVE_FORMAT_MPEGLAYER3 0x0055
  96. #define WAVE_FORMAT_CREATIVE_ADPCM 0x0200 /* Creative Labs, Inc */
  97. #define WAVE_FORMAT_CREATIVE_FASTSPEECH8 0x0202 /* Creative Labs, Inc */
  98. #define WAVE_FORMAT_CREATIVE_FASTSPEECH10 0x0203 /* Creative Labs, Inc */
  99. #define WAVE_FORMAT_FM_TOWNS_SND 0x0300 /* Fujitsu Corp. */
  100. #define WAVE_FORMAT_OLIGSM 0x1000 /* Ing C. Olivetti & C., S.p.A. */
  101. #define WAVE_FORMAT_OLIADPCM 0x1001 /* Ing C. Olivetti & C., S.p.A. */
  102. #define WAVE_FORMAT_OLICELP 0x1002 /* Ing C. Olivetti & C., S.p.A. */
  103. #define WAVE_FORMAT_OLISBC 0x1003 /* Ing C. Olivetti & C., S.p.A. */
  104. #define WAVE_FORMAT_OLIOPR 0x1004 /* Ing C. Olivetti & C., S.p.A. */
  105. #if !defined(WAVE_FORMAT_EXTENSIBLE)
  106. #define WAVE_FORMAT_EXTENSIBLE 0xFFFE /* Microsoft */
  107. #endif
  108. #define WAVE_FORMAT_DEVELOPMENT (0xFFFF)
  109. typedef struct adpcmcoef_tag {
  110. short iCoef1;
  111. short iCoef2;
  112. } ADPCMCOEFSET;
  113. typedef ADPCMCOEFSET *PADPCMCOEFSET,
  114. *NPADPCMCOEFSET, *LPADPCMCOEFSET;
  115. typedef struct adpcmwaveformat_tag {
  116. WAVEFORMATEX wfx;
  117. WORD wSamplesPerBlock;
  118. WORD wNumCoef;
  119. /* FIXME: this should be aCoef[0] */
  120. ADPCMCOEFSET aCoef[1];
  121. } ADPCMWAVEFORMAT;
  122. typedef ADPCMWAVEFORMAT *PADPCMWAVEFORMAT,
  123. *NPADPCMWAVEFORMAT, *LPADPCMWAVEFORMAT;
  124. typedef struct dvi_adpcmwaveformat_tag {
  125. WAVEFORMATEX wfx;
  126. WORD wSamplesPerBlock;
  127. } DVIADPCMWAVEFORMAT;
  128. typedef DVIADPCMWAVEFORMAT *PDVIADPCMWAVEFORMAT,
  129. *NPDVIADPCMWAVEFORMAT, *LPDVIADPCMWAVEFORMAT;
  130. typedef struct ima_adpcmwaveformat_tag {
  131. WAVEFORMATEX wfx;
  132. WORD wSamplesPerBlock;
  133. } IMAADPCMWAVEFORMAT;
  134. typedef IMAADPCMWAVEFORMAT *PIMAADPCMWAVEFORMAT, *NPIMAADPCMWAVEFORMAT,
  135. *LPIMAADPCMWAVEFORMAT;
  136. typedef struct mediaspace_adpcmwaveformat_tag {
  137. WAVEFORMATEX wfx;
  138. WORD wRevision;
  139. } MEDIASPACEADPCMWAVEFORMAT;
  140. typedef MEDIASPACEADPCMWAVEFORMAT *PMEDIASPACEADPCMWAVEFORMAT,
  141. *NPMEDIASPACEADPCMWAVEFORMAT, *LPMEDIASPACEADPCMWAVEFORMAT;
  142. typedef struct sierra_adpcmwaveformat_tag {
  143. WAVEFORMATEX wfx;
  144. WORD wRevision;
  145. } SIERRAADPCMWAVEFORMAT;
  146. typedef SIERRAADPCMWAVEFORMAT *PSIERRAADPCMWAVEFORMAT,
  147. *NPSIERRAADPCMWAVEFORMAT, *LPSIERRAADPCMWAVEFORMAT;
  148. typedef struct g723_adpcmwaveformat_tag {
  149. WAVEFORMATEX wfx;
  150. WORD cbExtraSize;
  151. WORD nAuxBlockSize;
  152. } G723_ADPCMWAVEFORMAT;
  153. typedef G723_ADPCMWAVEFORMAT *PG723_ADPCMWAVEFORMAT,
  154. *NPG723_ADPCMWAVEFORMAT, *LPG723_ADPCMWAVEFORMAT;
  155. typedef struct digistdwaveformat_tag {
  156. WAVEFORMATEX wfx;
  157. } DIGISTDWAVEFORMAT;
  158. typedef DIGISTDWAVEFORMAT *PDIGISTDWAVEFORMAT,
  159. *NPDIGISTDWAVEFORMAT, *LPDIGISTDWAVEFORMAT;
  160. typedef struct digifixwaveformat_tag {
  161. WAVEFORMATEX wfx;
  162. } DIGIFIXWAVEFORMAT;
  163. typedef DIGIFIXWAVEFORMAT *PDIGIFIXWAVEFORMAT,
  164. *NPDIGIFIXWAVEFORMAT, *LPDIGIFIXWAVEFORMAT;
  165. typedef struct creative_fastspeechformat_tag {
  166. WAVEFORMATEX ewf;
  167. } DIALOGICOKIADPCMWAVEFORMAT;
  168. typedef DIALOGICOKIADPCMWAVEFORMAT *PDIALOGICOKIADPCMWAVEFORMAT,
  169. *NPDIALOGICOKIADPCMWAVEFORMAT, *LPDIALOGICOKIADPCMWAVEFORMAT;
  170. typedef struct yamaha_adpmcwaveformat_tag {
  171. WAVEFORMATEX wfx;
  172. } YAMAHA_ADPCMWAVEFORMAT;
  173. typedef YAMAHA_ADPCMWAVEFORMAT *PYAMAHA_ADPCMWAVEFORMAT,
  174. *NPYAMAHA_ADPCMWAVEFORMAT, *LPYAMAHA_ADPCMWAVEFORMAT;
  175. typedef struct sonarcwaveformat_tag {
  176. WAVEFORMATEX wfx;
  177. WORD wCompType;
  178. } SONARCWAVEFORMAT;
  179. typedef SONARCWAVEFORMAT *PSONARCWAVEFORMAT,
  180. *NPSONARCWAVEFORMAT,*LPSONARCWAVEFORMAT;
  181. typedef struct truespeechwaveformat_tag {
  182. WAVEFORMATEX wfx;
  183. WORD wRevision;
  184. WORD nSamplesPerBlock;
  185. BYTE abReserved[28];
  186. } TRUESPEECHWAVEFORMAT;
  187. typedef TRUESPEECHWAVEFORMAT *PTRUESPEECHWAVEFORMAT,
  188. *NPTRUESPEECHWAVEFORMAT, *LPTRUESPEECHWAVEFORMAT;
  189. typedef struct echosc1waveformat_tag {
  190. WAVEFORMATEX wfx;
  191. } ECHOSC1WAVEFORMAT;
  192. typedef ECHOSC1WAVEFORMAT *PECHOSC1WAVEFORMAT,
  193. *NPECHOSC1WAVEFORMAT, *LPECHOSC1WAVEFORMAT;
  194. typedef struct audiofile_af36waveformat_tag {
  195. WAVEFORMATEX wfx;
  196. } AUDIOFILE_AF36WAVEFORMAT;
  197. typedef AUDIOFILE_AF36WAVEFORMAT *PAUDIOFILE_AF36WAVEFORMAT,
  198. *NPAUDIOFILE_AF36WAVEFORMAT, *LPAUDIOFILE_AF36WAVEFORMAT;
  199. typedef struct aptxwaveformat_tag {
  200. WAVEFORMATEX wfx;
  201. } APTXWAVEFORMAT;
  202. typedef APTXWAVEFORMAT *PAPTXWAVEFORMAT,
  203. *NPAPTXWAVEFORMAT, *LPAPTXWAVEFORMAT;
  204. typedef struct audiofile_af10waveformat_tag {
  205. WAVEFORMATEX wfx;
  206. } AUDIOFILE_AF10WAVEFORMAT;
  207. typedef AUDIOFILE_AF10WAVEFORMAT *PAUDIOFILE_AF10WAVEFORMAT,
  208. *NPAUDIOFILE_AF10WAVEFORMAT, *LPAUDIOFILE_AF10WAVEFORMAT;
  209. typedef struct dolbyac2waveformat_tag {
  210. WAVEFORMATEX wfx;
  211. WORD nAuxBitsCode;
  212. } DOLBYAC2WAVEFORMAT;
  213. typedef struct gsm610waveformat_tag {
  214. WAVEFORMATEX wfx;
  215. WORD wSamplesPerBlock;
  216. } GSM610WAVEFORMAT;
  217. typedef GSM610WAVEFORMAT *PGSM610WAVEFORMAT,
  218. *NPGSM610WAVEFORMAT, *LPGSM610WAVEFORMAT;
  219. typedef struct adpcmewaveformat_tag {
  220. WAVEFORMATEX wfx;
  221. WORD wSamplesPerBlock;
  222. } ADPCMEWAVEFORMAT;
  223. typedef ADPCMEWAVEFORMAT *PADPCMEWAVEFORMAT,
  224. *NPADPCMEWAVEFORMAT, *LPADPCMEWAVEFORMAT;
  225. typedef struct contres_vqlpcwaveformat_tag {
  226. WAVEFORMATEX wfx;
  227. WORD wSamplesPerBlock;
  228. } CONTRESVQLPCWAVEFORMAT;
  229. typedef CONTRESVQLPCWAVEFORMAT *PCONTRESVQLPCWAVEFORMAT,
  230. *NPCONTRESVQLPCWAVEFORMAT, *LPCONTRESVQLPCWAVEFORMAT;
  231. typedef struct digirealwaveformat_tag {
  232. WAVEFORMATEX wfx;
  233. WORD wSamplesPerBlock;
  234. } DIGIREALWAVEFORMAT;
  235. typedef DIGIREALWAVEFORMAT *PDIGIREALWAVEFORMAT,
  236. *NPDIGIREALWAVEFORMAT, *LPDIGIREALWAVEFORMAT;
  237. typedef struct digiadpcmmwaveformat_tag {
  238. WAVEFORMATEX wfx;
  239. WORD wSamplesPerBlock;
  240. } DIGIADPCMWAVEFORMAT;
  241. typedef DIGIADPCMWAVEFORMAT *PDIGIADPCMWAVEFORMAT,
  242. *NPDIGIADPCMWAVEFORMAT, *LPDIGIADPCMWAVEFORMAT;
  243. typedef struct contres_cr10waveformat_tag {
  244. WAVEFORMATEX wfx;
  245. WORD wSamplesPerBlock;
  246. } CONTRESCR10WAVEFORMAT;
  247. typedef CONTRESCR10WAVEFORMAT *PCONTRESCR10WAVEFORMAT,
  248. *NPCONTRESCR10WAVEFORMAT, *LPCONTRESCR10WAVEFORMAT;
  249. typedef struct nms_vbxadpcmmwaveformat_tag {
  250. WAVEFORMATEX wfx;
  251. WORD wSamplesPerBlock;
  252. } NMS_VBXADPCMWAVEFORMAT;
  253. typedef NMS_VBXADPCMWAVEFORMAT *PNMS_VBXADPCMWAVEFORMAT,
  254. *NPNMS_VBXADPCMWAVEFORMAT, *LPNMS_VBXADPCMWAVEFORMAT;
  255. typedef struct g721_adpcmwaveformat_tag {
  256. WAVEFORMATEX wfx;
  257. WORD nAuxBlockSize;
  258. } G721_ADPCMWAVEFORMAT;
  259. typedef G721_ADPCMWAVEFORMAT *PG721_ADPCMWAVEFORMAT,
  260. *NG721_ADPCMWAVEFORMAT, *LPG721_ADPCMWAVEFORMAT;
  261. typedef struct creative_adpcmwaveformat_tag {
  262. WAVEFORMATEX wfx;
  263. WORD wRevision;
  264. } CREATIVEADPCMWAVEFORMAT;
  265. typedef CREATIVEADPCMWAVEFORMAT *PCREATIVEADPCMWAVEFORMAT,
  266. *NPCREATIVEADPCMWAVEFORMAT, *LPCREATIVEADPCMWAVEFORMAT;
  267. typedef struct creative_fastspeech8format_tag {
  268. WAVEFORMATEX wfx;
  269. WORD wRevision;
  270. } CREATIVEFASTSPEECH8WAVEFORMAT;
  271. typedef CREATIVEFASTSPEECH8WAVEFORMAT *PCREATIVEFASTSPEECH8WAVEFORMAT,
  272. *NPCREATIVEFASTSPEECH8WAVEFORMAT, *LPCREATIVEFASTSPEECH8WAVEFORMAT;
  273. typedef struct creative_fastspeech10format_tag {
  274. WAVEFORMATEX wfx;
  275. WORD wRevision;
  276. } CREATIVEFASTSPEECH10WAVEFORMAT;
  277. typedef CREATIVEFASTSPEECH10WAVEFORMAT *PCREATIVEFASTSPEECH10WAVEFORMAT,
  278. *NPCREATIVEFASTSPEECH10WAVEFORMAT, *LPCREATIVEFASTSPEECH10WAVEFORMAT;
  279. typedef struct fmtowns_snd_waveformat_tag {
  280. WAVEFORMATEX wfx;
  281. WORD wRevision;
  282. } FMTOWNS_SND_WAVEFORMAT;
  283. typedef FMTOWNS_SND_WAVEFORMAT *PFMTOWNS_SND_WAVEFORMAT,
  284. *NPFMTOWNS_SND_WAVEFORMAT, *LPFMTOWNS_SND_WAVEFORMAT;
  285. typedef struct oligsmwaveformat_tag {
  286. WAVEFORMATEX wfx;
  287. } OLIGSMWAVEFORMAT;
  288. typedef OLIGSMWAVEFORMAT *POLIGSMWAVEFORMAT,
  289. *NPOLIGSMWAVEFORMAT, *LPOLIGSMWAVEFORMAT;
  290. typedef struct oliadpcmwaveformat_tag {
  291. WAVEFORMATEX wfx;
  292. } OLIADPCMWAVEFORMAT;
  293. typedef OLIADPCMWAVEFORMAT *POLIADPCMWAVEFORMAT,
  294. *NPOLIADPCMWAVEFORMAT, *LPOLIADPCMWAVEFORMAT;
  295. typedef struct olicelpwaveformat_tag {
  296. WAVEFORMATEX wfx;
  297. } OLICELPWAVEFORMAT;
  298. typedef OLICELPWAVEFORMAT *POLICELPWAVEFORMAT,
  299. *NPOLICELPWAVEFORMAT, *LPOLICELPWAVEFORMAT;
  300. typedef struct olisbcwaveformat_tag {
  301. WAVEFORMATEX wfx;
  302. } OLISBCWAVEFORMAT;
  303. typedef OLISBCWAVEFORMAT *POLISBCWAVEFORMAT,
  304. *NPOLISBCWAVEFORMAT, *LPOLISBCWAVEFORMAT;
  305. typedef struct olioprwaveformat_tag {
  306. WAVEFORMATEX wfx;
  307. } OLIOPRWAVEFORMAT;
  308. typedef OLIOPRWAVEFORMAT *POLIOPRWAVEFORMAT,
  309. *NPOLIOPRWAVEFORMAT, *LPOLIOPRWAVEFORMAT;
  310. typedef struct csimaadpcmwaveformat_tag {
  311. WAVEFORMATEX wfx;
  312. } CSIMAADPCMWAVEFORMAT;
  313. typedef CSIMAADPCMWAVEFORMAT *PCSIMAADPCMWAVEFORMAT,
  314. *NPCSIMAADPCMWAVEFORMAT, *LPCSIMAADPCMWAVEFORMAT;
  315. typedef struct mpeg1waveformat_tag {
  316. WAVEFORMATEX wfx;
  317. WORD fwHeadLayer;
  318. DWORD dwHeadBitrate;
  319. WORD fwHeadMode;
  320. WORD fwHeadModeExt;
  321. WORD wHeadEmphasis;
  322. WORD fwHeadFlags;
  323. DWORD dwPTSLow;
  324. DWORD dwPTSHigh;
  325. } MPEG1WAVEFORMAT,* PMPEG1WAVEFORMAT;
  326. #define ACM_MPEG_LAYER1 0x0001
  327. #define ACM_MPEG_LAYER2 0x0002
  328. #define ACM_MPEG_LAYER3 0x0004
  329. #define ACM_MPEG_STEREO 0x0001
  330. #define ACM_MPEG_JOINTSTEREO 0x0002
  331. #define ACM_MPEG_DUALCHANNEL 0x0004
  332. #define ACM_MPEG_SINGLECHANNEL 0x0008
  333. #define ACM_MPEG_PRIVATEBIT 0x0001
  334. #define ACM_MPEG_COPYRIGHT 0x0002
  335. #define ACM_MPEG_ORIGINALHOME 0x0004
  336. #define ACM_MPEG_PROTECTIONBIT 0x0008
  337. #define ACM_MPEG_ID_MPEG1 0x0010
  338. typedef struct mpeglayer3waveformat_tag {
  339. WAVEFORMATEX wfx;
  340. WORD wID;
  341. DWORD fdwFlags;
  342. WORD nBlockSize;
  343. WORD nFramesPerBlock;
  344. WORD nCodecDelay;
  345. } MPEGLAYER3WAVEFORMAT;
  346. #define MPEGLAYER3_WFX_EXTRA_BYTES 12
  347. #define MPEGLAYER3_ID_UNKNOWN 0
  348. #define MPEGLAYER3_ID_MPEG 1
  349. #define MPEGLAYER3_ID_CONSTANTFRAMESIZE 2
  350. #define MPEGLAYER3_FLAG_PADDING_ISO 0x00000000
  351. #define MPEGLAYER3_FLAG_PADDING_ON 0x00000001
  352. #define MPEGLAYER3_FLAG_PADDING_OFF 0x00000002
  353. #ifdef GUID_DEFINED
  354. #ifndef _WAVEFORMATEXTENSIBLE_
  355. #define _WAVEFORMATEXTENSIBLE_
  356. typedef struct {
  357. WAVEFORMATEX Format;
  358. union {
  359. WORD wValidBitsPerSample;
  360. WORD wSamplesPerBlock;
  361. WORD wReserved;
  362. } Samples;
  363. DWORD dwChannelMask;
  364. GUID SubFormat;
  365. } WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE;
  366. #endif /* _WAVEFORMATEXTENSIBLE_ */
  367. #endif /* GUID_DEFINED */
  368. typedef WAVEFORMATEXTENSIBLE WAVEFORMATPCMEX;
  369. typedef WAVEFORMATPCMEX* PWAVEFORMATPCMEX;
  370. typedef WAVEFORMATPCMEX* NPWAVEFORMATPCMEX;
  371. typedef WAVEFORMATPCMEX* LPWAVEFORMATPCMEX;
  372. typedef WAVEFORMATEXTENSIBLE WAVEFORMATIEEEFLOATEX;
  373. typedef WAVEFORMATIEEEFLOATEX* PWAVEFORMATIEEEFLOATEX;
  374. typedef WAVEFORMATIEEEFLOATEX* NPWAVEFORMATIEEEFLOATEX;
  375. typedef WAVEFORMATIEEEFLOATEX* LPWAVEFORMATIEEEFLOATEX;
  376. #ifndef _SPEAKER_POSITIONS_
  377. #define _SPEAKER_POSITIONS_
  378. #define SPEAKER_FRONT_LEFT 0x00000001
  379. #define SPEAKER_FRONT_RIGHT 0x00000002
  380. #define SPEAKER_FRONT_CENTER 0x00000004
  381. #define SPEAKER_LOW_FREQUENCY 0x00000008
  382. #define SPEAKER_BACK_LEFT 0x00000010
  383. #define SPEAKER_BACK_RIGHT 0x00000020
  384. #define SPEAKER_FRONT_LEFT_OF_CENTER 0x00000040
  385. #define SPEAKER_FRONT_RIGHT_OF_CENTER 0x00000080
  386. #define SPEAKER_BACK_CENTER 0x00000100
  387. #define SPEAKER_SIDE_LEFT 0x00000200
  388. #define SPEAKER_SIDE_RIGHT 0x00000400
  389. #define SPEAKER_TOP_CENTER 0x00000800
  390. #define SPEAKER_TOP_FRONT_LEFT 0x00001000
  391. #define SPEAKER_TOP_FRONT_CENTER 0x00002000
  392. #define SPEAKER_TOP_FRONT_RIGHT 0x00004000
  393. #define SPEAKER_TOP_BACK_LEFT 0x00008000
  394. #define SPEAKER_TOP_BACK_CENTER 0x00010000
  395. #define SPEAKER_TOP_BACK_RIGHT 0x00020000
  396. #define SPEAKER_RESERVED 0x7FFC0000
  397. #define SPEAKER_ALL 0x80000000
  398. #endif /* _SPEAKER_POSITIONS_ */
  399. /* DIB stuff */
  400. #ifndef BI_BITFIELDS
  401. #define BI_BITFIELDS 3
  402. #endif
  403. #ifndef QUERYDIBSUPPORT
  404. #define QUERYDIBSUPPORT 3073
  405. #define QDI_SETDIBITS 1
  406. #define QDI_GETDIBITS 2
  407. #define QDI_DIBTOSCREEN 4
  408. #define QDI_STRETCHDIB 8
  409. #endif
  410. #ifndef NOBITMAP
  411. typedef struct tagEXBMINFOHEADER {
  412. BITMAPINFOHEADER bmi;
  413. DWORD biExtDataOffset;
  414. } EXBMINFOHEADER;
  415. #endif
  416. /* Video stuff */
  417. #ifndef NONEWIC
  418. #ifndef ICTYPE_VIDEO
  419. #define ICTYPE_VIDEO mmioFOURCC('v', 'i', 'd', 'c')
  420. #define ICTYPE_AUDIO mmioFOURCC('a', 'u', 'd', 'c')
  421. #endif
  422. #endif
  423. #endif /* __WINE_MMREG_H */