ntdll: Adjust PC according to THUMB/ARM flag.
[wine.git] / include / mmreg.h
blobe7d70bbd63b1925c56e9614da8658d9a904aa374
1 /*
2 * Declarations for MultiMedia-REGistration
4 * Copyright (C) 1999 Eric Pouech
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.
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.
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #ifndef __WIDL__
23 #ifndef __WINE_MMREG_H
24 #define __WINE_MMREG_H
26 #include <pshpack1.h>
28 /***********************************************************************
29 * Defines/Enums
32 #ifndef _ACM_WAVEFILTER
33 #define _ACM_WAVEFILTER
35 #define WAVE_FILTER_UNKNOWN 0x0000
36 #define WAVE_FILTER_DEVELOPMENT 0xFFFF
38 typedef struct _WAVEFILTER {
39 DWORD cbStruct;
40 DWORD dwFilterTag;
41 DWORD fdwFilter;
42 DWORD dwReserved[5];
43 } WAVEFILTER, *PWAVEFILTER, *NPWAVEFILTER, *LPWAVEFILTER;
44 #endif /* _ACM_WAVEFILTER */
46 #ifndef WAVE_FILTER_VOLUME
47 #define WAVE_FILTER_VOLUME 0x0001
49 typedef struct _WAVEFILTER_VOLUME {
50 WAVEFILTER wfltr;
51 DWORD dwVolume;
52 } VOLUMEWAVEFILTER, *PVOLUMEWAVEFILTER, *NPVOLUMEWAVEFILTER, *LPVOLUMEWAVEFILTER;
53 #endif /* WAVE_FILTER_VOLUME */
55 #ifndef WAVE_FILTER_ECHO
56 #define WAVE_FILTER_ECHO 0x0002
58 typedef struct WAVEFILTER_ECHO {
59 WAVEFILTER wfltr;
60 DWORD dwVolume;
61 DWORD dwDelay;
62 } ECHOWAVEFILTER, *PECHOWAVEFILTER, *NPECHOWAVEFILTER, *LPECHOWAVEFILTER;
63 #endif /* WAVEFILTER_ECHO */
65 #ifndef _WAVEFORMATEX_
66 #define _WAVEFORMATEX_
67 typedef struct _WAVEFORMATEX {
68 WORD wFormatTag;
69 WORD nChannels;
70 DWORD nSamplesPerSec;
71 DWORD nAvgBytesPerSec;
72 WORD nBlockAlign;
73 WORD wBitsPerSample;
74 WORD cbSize;
75 } WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX;
76 #endif /* _WAVEFORMATEX_ */
78 /* WAVE form wFormatTag IDs */
79 #define WAVE_FORMAT_UNKNOWN 0x0000 /* Microsoft Corporation */
80 #ifndef WAVE_FORMAT_PCM
81 #define WAVE_FORMAT_PCM 0x0001
82 #endif
83 #define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
84 #define WAVE_FORMAT_IEEE_FLOAT 0x0003 /* Microsoft Corporation */
85 #define WAVE_FORMAT_IBM_CVSD 0x0005 /* IBM Corporation */
86 #define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
87 #define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
88 #define WAVE_FORMAT_DTS 0x0008
89 #define WAVE_FORMAT_DRM 0x0009
90 #define WAVE_FORMAT_WMAVOICE9 0x000a
91 #define WAVE_FORMAT_OKI_ADPCM 0x0010 /* OKI */
92 #define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
93 #define WAVE_FORMAT_IMA_ADPCM (WAVE_FORMAT_DVI_ADPCM) /* Intel Corporation */
94 #define WAVE_FORMAT_MEDIASPACE_ADPCM 0x0012 /* Videologic */
95 #define WAVE_FORMAT_SIERRA_ADPCM 0x0013 /* Sierra Semiconductor Corp */
96 #define WAVE_FORMAT_G723_ADPCM 0x0014 /* Antex Electronics Corporation */
97 #define WAVE_FORMAT_DIGISTD 0x0015 /* DSP Solutions, Inc. */
98 #define WAVE_FORMAT_DIGIFIX 0x0016 /* DSP Solutions, Inc. */
99 #define WAVE_FORMAT_DIALOGIC_OKI_ADPCM 0x0017 /* Dialogic Corporation */
100 #define WAVE_FORMAT_YAMAHA_ADPCM 0x0020 /* Yamaha Corporation of America */
101 #define WAVE_FORMAT_SONARC 0x0021 /* Speech Compression */
102 #define WAVE_FORMAT_DSPGROUP_TRUESPEECH 0x0022 /* DSP Group, Inc */
103 #define WAVE_FORMAT_ECHOSC1 0x0023 /* Echo Speech Corporation */
104 #define WAVE_FORMAT_AUDIOFILE_AF36 0x0024 /* */
105 #define WAVE_FORMAT_APTX 0x0025 /* Audio Processing Technology */
106 #define WAVE_FORMAT_AUDIOFILE_AF10 0x0026 /* */
107 #define WAVE_FORMAT_DOLBY_AC2 0x0030 /* Dolby Laboratories */
108 #define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */
109 #define WAVE_FORMAT_ANTEX_ADPCME 0x0033 /* Antex Electronics Corporation */
110 #define WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034 /* Control Resources Limited */
111 #define WAVE_FORMAT_DIGIREAL 0x0035 /* DSP Solutions, Inc. */
112 #define WAVE_FORMAT_DIGIADPCM 0x0036 /* DSP Solutions, Inc. */
113 #define WAVE_FORMAT_CONTROL_RES_CR10 0x0037 /* Control Resources Limited */
114 #define WAVE_FORMAT_NMS_VBXADPCM 0x0038 /* Natural MicroSystems */
115 #define WAVE_FORMAT_G721_ADPCM 0x0040 /* Antex Electronics Corporation */
116 #define WAVE_FORMAT_MPEG 0x0050 /* Microsoft Corporation */
117 #define WAVE_FORMAT_MPEGLAYER3 0x0055
118 #define WAVE_FORMAT_MSRT24 0x0082 /* Microsoft Corporation */
119 #define WAVE_FORMAT_DOLBY_AC3_SPDIF 0x0092
120 #define WAVE_FORMAT_WMAUDIO2 0x0161
121 #define WAVE_FORMAT_WMAUDIO3 0x0162
122 #define WAVE_FORMAT_WMAUDIO_LOSSLESS 0x0163
123 #define WAVE_FORMAT_WMASPDIF 0x0164
124 #define WAVE_FORMAT_CREATIVE_ADPCM 0x0200 /* Creative Labs, Inc */
125 #define WAVE_FORMAT_CREATIVE_FASTSPEECH8 0x0202 /* Creative Labs, Inc */
126 #define WAVE_FORMAT_CREATIVE_FASTSPEECH10 0x0203 /* Creative Labs, Inc */
127 #define WAVE_FORMAT_FM_TOWNS_SND 0x0300 /* Fujitsu Corp. */
128 #define WAVE_FORMAT_OLIGSM 0x1000 /* Ing C. Olivetti & C., S.p.A. */
129 #define WAVE_FORMAT_OLIADPCM 0x1001 /* Ing C. Olivetti & C., S.p.A. */
130 #define WAVE_FORMAT_OLICELP 0x1002 /* Ing C. Olivetti & C., S.p.A. */
131 #define WAVE_FORMAT_OLISBC 0x1003 /* Ing C. Olivetti & C., S.p.A. */
132 #define WAVE_FORMAT_OLIOPR 0x1004 /* Ing C. Olivetti & C., S.p.A. */
133 #define WAVE_FORMAT_MPEG_ADTS_AAC 0x1600
134 #define WAVE_FORMAT_MPEG_HEAAC 0x1610
135 #define WAVE_FORMAT_ALAC 0x6c61
136 #define WAVE_FORMAT_OPUS 0x704f
137 #define WAVE_FORMAT_AMR_NB 0x7361
138 #define WAVE_FORMAT_AMR_WB 0x7362
139 #define WAVE_FORMAT_AMR_WP 0x7363
140 #define WAVE_FORMAT_FLAC 0xf1ac
142 #ifndef MM_MICROSOFT
143 #define MM_MICROSOFT 0x01
144 #endif
145 #define MM_MSFT_ACM_MSADPCM 0x21
146 #define MM_MSFT_ACM_IMAADPCM 0x22
147 #define MM_MSFT_ACM_GSM610 0x24
148 #define MM_MSFT_ACM_G711 0x25
149 #define MM_MSFT_ACM_PCM 0x26
151 #define MM_FRAUNHOFER_IIS 0xAC
152 #define MM_FHGIIS_MPEGLAYER3_DECODE 0x09
153 #define MM_FHGIIS_MPEGLAYER3_PROFESSIONAL 0x0d
155 #if !defined(WAVE_FORMAT_EXTENSIBLE)
156 #define WAVE_FORMAT_EXTENSIBLE 0xFFFE /* Microsoft */
157 #endif
159 #define WAVE_FORMAT_DEVELOPMENT (0xFFFF)
161 typedef struct adpcmcoef_tag {
162 short iCoef1;
163 short iCoef2;
164 } ADPCMCOEFSET;
165 typedef ADPCMCOEFSET *PADPCMCOEFSET,
166 *NPADPCMCOEFSET, *LPADPCMCOEFSET;
168 typedef struct adpcmwaveformat_tag {
169 WAVEFORMATEX wfx;
170 WORD wSamplesPerBlock;
171 WORD wNumCoef;
172 /* FIXME: this should be aCoef[0] */
173 ADPCMCOEFSET aCoef[1];
174 } ADPCMWAVEFORMAT;
175 typedef ADPCMWAVEFORMAT *PADPCMWAVEFORMAT,
176 *NPADPCMWAVEFORMAT, *LPADPCMWAVEFORMAT;
178 typedef struct dvi_adpcmwaveformat_tag {
179 WAVEFORMATEX wfx;
180 WORD wSamplesPerBlock;
181 } DVIADPCMWAVEFORMAT;
182 typedef DVIADPCMWAVEFORMAT *PDVIADPCMWAVEFORMAT,
183 *NPDVIADPCMWAVEFORMAT, *LPDVIADPCMWAVEFORMAT;
185 typedef struct ima_adpcmwaveformat_tag {
186 WAVEFORMATEX wfx;
187 WORD wSamplesPerBlock;
188 } IMAADPCMWAVEFORMAT;
189 typedef IMAADPCMWAVEFORMAT *PIMAADPCMWAVEFORMAT, *NPIMAADPCMWAVEFORMAT,
190 *LPIMAADPCMWAVEFORMAT;
192 typedef struct mediaspace_adpcmwaveformat_tag {
193 WAVEFORMATEX wfx;
194 WORD wRevision;
195 } MEDIASPACEADPCMWAVEFORMAT;
196 typedef MEDIASPACEADPCMWAVEFORMAT *PMEDIASPACEADPCMWAVEFORMAT,
197 *NPMEDIASPACEADPCMWAVEFORMAT, *LPMEDIASPACEADPCMWAVEFORMAT;
199 typedef struct sierra_adpcmwaveformat_tag {
200 WAVEFORMATEX wfx;
201 WORD wRevision;
202 } SIERRAADPCMWAVEFORMAT;
203 typedef SIERRAADPCMWAVEFORMAT *PSIERRAADPCMWAVEFORMAT,
204 *NPSIERRAADPCMWAVEFORMAT, *LPSIERRAADPCMWAVEFORMAT;
206 typedef struct g723_adpcmwaveformat_tag {
207 WAVEFORMATEX wfx;
208 WORD cbExtraSize;
209 WORD nAuxBlockSize;
210 } G723_ADPCMWAVEFORMAT;
211 typedef G723_ADPCMWAVEFORMAT *PG723_ADPCMWAVEFORMAT,
212 *NPG723_ADPCMWAVEFORMAT, *LPG723_ADPCMWAVEFORMAT;
214 typedef struct digistdwaveformat_tag {
215 WAVEFORMATEX wfx;
216 } DIGISTDWAVEFORMAT;
217 typedef DIGISTDWAVEFORMAT *PDIGISTDWAVEFORMAT,
218 *NPDIGISTDWAVEFORMAT, *LPDIGISTDWAVEFORMAT;
220 typedef struct digifixwaveformat_tag {
221 WAVEFORMATEX wfx;
222 } DIGIFIXWAVEFORMAT;
223 typedef DIGIFIXWAVEFORMAT *PDIGIFIXWAVEFORMAT,
224 *NPDIGIFIXWAVEFORMAT, *LPDIGIFIXWAVEFORMAT;
226 typedef struct creative_fastspeechformat_tag {
227 WAVEFORMATEX ewf;
228 } DIALOGICOKIADPCMWAVEFORMAT;
229 typedef DIALOGICOKIADPCMWAVEFORMAT *PDIALOGICOKIADPCMWAVEFORMAT,
230 *NPDIALOGICOKIADPCMWAVEFORMAT, *LPDIALOGICOKIADPCMWAVEFORMAT;
232 typedef struct yamaha_adpmcwaveformat_tag {
233 WAVEFORMATEX wfx;
234 } YAMAHA_ADPCMWAVEFORMAT;
235 typedef YAMAHA_ADPCMWAVEFORMAT *PYAMAHA_ADPCMWAVEFORMAT,
236 *NPYAMAHA_ADPCMWAVEFORMAT, *LPYAMAHA_ADPCMWAVEFORMAT;
238 typedef struct sonarcwaveformat_tag {
239 WAVEFORMATEX wfx;
240 WORD wCompType;
241 } SONARCWAVEFORMAT;
242 typedef SONARCWAVEFORMAT *PSONARCWAVEFORMAT,
243 *NPSONARCWAVEFORMAT,*LPSONARCWAVEFORMAT;
245 typedef struct truespeechwaveformat_tag {
246 WAVEFORMATEX wfx;
247 WORD wRevision;
248 WORD nSamplesPerBlock;
249 BYTE abReserved[28];
250 } TRUESPEECHWAVEFORMAT;
251 typedef TRUESPEECHWAVEFORMAT *PTRUESPEECHWAVEFORMAT,
252 *NPTRUESPEECHWAVEFORMAT, *LPTRUESPEECHWAVEFORMAT;
254 typedef struct echosc1waveformat_tag {
255 WAVEFORMATEX wfx;
256 } ECHOSC1WAVEFORMAT;
257 typedef ECHOSC1WAVEFORMAT *PECHOSC1WAVEFORMAT,
258 *NPECHOSC1WAVEFORMAT, *LPECHOSC1WAVEFORMAT;
260 typedef struct audiofile_af36waveformat_tag {
261 WAVEFORMATEX wfx;
262 } AUDIOFILE_AF36WAVEFORMAT;
263 typedef AUDIOFILE_AF36WAVEFORMAT *PAUDIOFILE_AF36WAVEFORMAT,
264 *NPAUDIOFILE_AF36WAVEFORMAT, *LPAUDIOFILE_AF36WAVEFORMAT;
266 typedef struct aptxwaveformat_tag {
267 WAVEFORMATEX wfx;
268 } APTXWAVEFORMAT;
269 typedef APTXWAVEFORMAT *PAPTXWAVEFORMAT,
270 *NPAPTXWAVEFORMAT, *LPAPTXWAVEFORMAT;
272 typedef struct audiofile_af10waveformat_tag {
273 WAVEFORMATEX wfx;
274 } AUDIOFILE_AF10WAVEFORMAT;
275 typedef AUDIOFILE_AF10WAVEFORMAT *PAUDIOFILE_AF10WAVEFORMAT,
276 *NPAUDIOFILE_AF10WAVEFORMAT, *LPAUDIOFILE_AF10WAVEFORMAT;
278 typedef struct dolbyac2waveformat_tag {
279 WAVEFORMATEX wfx;
280 WORD nAuxBitsCode;
281 } DOLBYAC2WAVEFORMAT;
283 typedef struct gsm610waveformat_tag {
284 WAVEFORMATEX wfx;
285 WORD wSamplesPerBlock;
286 } GSM610WAVEFORMAT;
287 typedef GSM610WAVEFORMAT *PGSM610WAVEFORMAT,
288 *NPGSM610WAVEFORMAT, *LPGSM610WAVEFORMAT;
290 typedef struct adpcmewaveformat_tag {
291 WAVEFORMATEX wfx;
292 WORD wSamplesPerBlock;
293 } ADPCMEWAVEFORMAT;
294 typedef ADPCMEWAVEFORMAT *PADPCMEWAVEFORMAT,
295 *NPADPCMEWAVEFORMAT, *LPADPCMEWAVEFORMAT;
297 typedef struct contres_vqlpcwaveformat_tag {
298 WAVEFORMATEX wfx;
299 WORD wSamplesPerBlock;
300 } CONTRESVQLPCWAVEFORMAT;
301 typedef CONTRESVQLPCWAVEFORMAT *PCONTRESVQLPCWAVEFORMAT,
302 *NPCONTRESVQLPCWAVEFORMAT, *LPCONTRESVQLPCWAVEFORMAT;
304 typedef struct digirealwaveformat_tag {
305 WAVEFORMATEX wfx;
306 WORD wSamplesPerBlock;
307 } DIGIREALWAVEFORMAT;
308 typedef DIGIREALWAVEFORMAT *PDIGIREALWAVEFORMAT,
309 *NPDIGIREALWAVEFORMAT, *LPDIGIREALWAVEFORMAT;
311 typedef struct digiadpcmmwaveformat_tag {
312 WAVEFORMATEX wfx;
313 WORD wSamplesPerBlock;
314 } DIGIADPCMWAVEFORMAT;
315 typedef DIGIADPCMWAVEFORMAT *PDIGIADPCMWAVEFORMAT,
316 *NPDIGIADPCMWAVEFORMAT, *LPDIGIADPCMWAVEFORMAT;
318 typedef struct contres_cr10waveformat_tag {
319 WAVEFORMATEX wfx;
320 WORD wSamplesPerBlock;
321 } CONTRESCR10WAVEFORMAT;
322 typedef CONTRESCR10WAVEFORMAT *PCONTRESCR10WAVEFORMAT,
323 *NPCONTRESCR10WAVEFORMAT, *LPCONTRESCR10WAVEFORMAT;
325 typedef struct nms_vbxadpcmmwaveformat_tag {
326 WAVEFORMATEX wfx;
327 WORD wSamplesPerBlock;
328 } NMS_VBXADPCMWAVEFORMAT;
329 typedef NMS_VBXADPCMWAVEFORMAT *PNMS_VBXADPCMWAVEFORMAT,
330 *NPNMS_VBXADPCMWAVEFORMAT, *LPNMS_VBXADPCMWAVEFORMAT;
332 typedef struct g721_adpcmwaveformat_tag {
333 WAVEFORMATEX wfx;
334 WORD nAuxBlockSize;
335 } G721_ADPCMWAVEFORMAT;
336 typedef G721_ADPCMWAVEFORMAT *PG721_ADPCMWAVEFORMAT,
337 *NG721_ADPCMWAVEFORMAT, *LPG721_ADPCMWAVEFORMAT;
339 typedef struct creative_adpcmwaveformat_tag {
340 WAVEFORMATEX wfx;
341 WORD wRevision;
342 } CREATIVEADPCMWAVEFORMAT;
343 typedef CREATIVEADPCMWAVEFORMAT *PCREATIVEADPCMWAVEFORMAT,
344 *NPCREATIVEADPCMWAVEFORMAT, *LPCREATIVEADPCMWAVEFORMAT;
346 typedef struct creative_fastspeech8format_tag {
347 WAVEFORMATEX wfx;
348 WORD wRevision;
349 } CREATIVEFASTSPEECH8WAVEFORMAT;
350 typedef CREATIVEFASTSPEECH8WAVEFORMAT *PCREATIVEFASTSPEECH8WAVEFORMAT,
351 *NPCREATIVEFASTSPEECH8WAVEFORMAT, *LPCREATIVEFASTSPEECH8WAVEFORMAT;
353 typedef struct creative_fastspeech10format_tag {
354 WAVEFORMATEX wfx;
355 WORD wRevision;
356 } CREATIVEFASTSPEECH10WAVEFORMAT;
357 typedef CREATIVEFASTSPEECH10WAVEFORMAT *PCREATIVEFASTSPEECH10WAVEFORMAT,
358 *NPCREATIVEFASTSPEECH10WAVEFORMAT, *LPCREATIVEFASTSPEECH10WAVEFORMAT;
360 typedef struct fmtowns_snd_waveformat_tag {
361 WAVEFORMATEX wfx;
362 WORD wRevision;
363 } FMTOWNS_SND_WAVEFORMAT;
364 typedef FMTOWNS_SND_WAVEFORMAT *PFMTOWNS_SND_WAVEFORMAT,
365 *NPFMTOWNS_SND_WAVEFORMAT, *LPFMTOWNS_SND_WAVEFORMAT;
367 typedef struct oligsmwaveformat_tag {
368 WAVEFORMATEX wfx;
369 } OLIGSMWAVEFORMAT;
370 typedef OLIGSMWAVEFORMAT *POLIGSMWAVEFORMAT,
371 *NPOLIGSMWAVEFORMAT, *LPOLIGSMWAVEFORMAT;
373 typedef struct oliadpcmwaveformat_tag {
374 WAVEFORMATEX wfx;
375 } OLIADPCMWAVEFORMAT;
376 typedef OLIADPCMWAVEFORMAT *POLIADPCMWAVEFORMAT,
377 *NPOLIADPCMWAVEFORMAT, *LPOLIADPCMWAVEFORMAT;
379 typedef struct olicelpwaveformat_tag {
380 WAVEFORMATEX wfx;
381 } OLICELPWAVEFORMAT;
382 typedef OLICELPWAVEFORMAT *POLICELPWAVEFORMAT,
383 *NPOLICELPWAVEFORMAT, *LPOLICELPWAVEFORMAT;
385 typedef struct olisbcwaveformat_tag {
386 WAVEFORMATEX wfx;
387 } OLISBCWAVEFORMAT;
388 typedef OLISBCWAVEFORMAT *POLISBCWAVEFORMAT,
389 *NPOLISBCWAVEFORMAT, *LPOLISBCWAVEFORMAT;
391 typedef struct olioprwaveformat_tag {
392 WAVEFORMATEX wfx;
393 } OLIOPRWAVEFORMAT;
394 typedef OLIOPRWAVEFORMAT *POLIOPRWAVEFORMAT,
395 *NPOLIOPRWAVEFORMAT, *LPOLIOPRWAVEFORMAT;
397 typedef struct csimaadpcmwaveformat_tag {
398 WAVEFORMATEX wfx;
399 } CSIMAADPCMWAVEFORMAT;
400 typedef CSIMAADPCMWAVEFORMAT *PCSIMAADPCMWAVEFORMAT,
401 *NPCSIMAADPCMWAVEFORMAT, *LPCSIMAADPCMWAVEFORMAT;
403 typedef struct mpeg1waveformat_tag {
404 WAVEFORMATEX wfx;
405 WORD fwHeadLayer;
406 DWORD dwHeadBitrate;
407 WORD fwHeadMode;
408 WORD fwHeadModeExt;
409 WORD wHeadEmphasis;
410 WORD fwHeadFlags;
411 DWORD dwPTSLow;
412 DWORD dwPTSHigh;
413 } MPEG1WAVEFORMAT,* PMPEG1WAVEFORMAT;
415 #define ACM_MPEG_LAYER1 0x0001
416 #define ACM_MPEG_LAYER2 0x0002
417 #define ACM_MPEG_LAYER3 0x0004
419 #define ACM_MPEG_STEREO 0x0001
420 #define ACM_MPEG_JOINTSTEREO 0x0002
421 #define ACM_MPEG_DUALCHANNEL 0x0004
422 #define ACM_MPEG_SINGLECHANNEL 0x0008
423 #define ACM_MPEG_PRIVATEBIT 0x0001
424 #define ACM_MPEG_COPYRIGHT 0x0002
425 #define ACM_MPEG_ORIGINALHOME 0x0004
426 #define ACM_MPEG_PROTECTIONBIT 0x0008
427 #define ACM_MPEG_ID_MPEG1 0x0010
429 typedef struct mpeglayer3waveformat_tag {
430 WAVEFORMATEX wfx;
431 WORD wID;
432 DWORD fdwFlags;
433 WORD nBlockSize;
434 WORD nFramesPerBlock;
435 WORD nCodecDelay;
436 } MPEGLAYER3WAVEFORMAT;
438 #define MPEGLAYER3_WFX_EXTRA_BYTES 12
440 #define MPEGLAYER3_ID_UNKNOWN 0
441 #define MPEGLAYER3_ID_MPEG 1
442 #define MPEGLAYER3_ID_CONSTANTFRAMESIZE 2
444 #define MPEGLAYER3_FLAG_PADDING_ISO 0x00000000
445 #define MPEGLAYER3_FLAG_PADDING_ON 0x00000001
446 #define MPEGLAYER3_FLAG_PADDING_OFF 0x00000002
448 #ifdef GUID_DEFINED
450 #ifndef _WAVEFORMATEXTENSIBLE_
451 #define _WAVEFORMATEXTENSIBLE_
452 typedef struct {
453 WAVEFORMATEX Format;
454 union {
455 WORD wValidBitsPerSample;
456 WORD wSamplesPerBlock;
457 WORD wReserved;
458 } Samples;
459 DWORD dwChannelMask;
460 GUID SubFormat;
461 } WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE;
462 #endif /* _WAVEFORMATEXTENSIBLE_ */
464 #endif /* GUID_DEFINED */
466 typedef WAVEFORMATEXTENSIBLE WAVEFORMATPCMEX;
467 typedef WAVEFORMATPCMEX* PWAVEFORMATPCMEX;
468 typedef WAVEFORMATPCMEX* NPWAVEFORMATPCMEX;
469 typedef WAVEFORMATPCMEX* LPWAVEFORMATPCMEX;
471 typedef WAVEFORMATEXTENSIBLE WAVEFORMATIEEEFLOATEX;
472 typedef WAVEFORMATIEEEFLOATEX* PWAVEFORMATIEEEFLOATEX;
473 typedef WAVEFORMATIEEEFLOATEX* NPWAVEFORMATIEEEFLOATEX;
474 typedef WAVEFORMATIEEEFLOATEX* LPWAVEFORMATIEEEFLOATEX;
476 #ifndef _SPEAKER_POSITIONS_
477 #define _SPEAKER_POSITIONS_
479 #define SPEAKER_FRONT_LEFT 0x00000001
480 #define SPEAKER_FRONT_RIGHT 0x00000002
481 #define SPEAKER_FRONT_CENTER 0x00000004
482 #define SPEAKER_LOW_FREQUENCY 0x00000008
483 #define SPEAKER_BACK_LEFT 0x00000010
484 #define SPEAKER_BACK_RIGHT 0x00000020
485 #define SPEAKER_FRONT_LEFT_OF_CENTER 0x00000040
486 #define SPEAKER_FRONT_RIGHT_OF_CENTER 0x00000080
487 #define SPEAKER_BACK_CENTER 0x00000100
488 #define SPEAKER_SIDE_LEFT 0x00000200
489 #define SPEAKER_SIDE_RIGHT 0x00000400
490 #define SPEAKER_TOP_CENTER 0x00000800
491 #define SPEAKER_TOP_FRONT_LEFT 0x00001000
492 #define SPEAKER_TOP_FRONT_CENTER 0x00002000
493 #define SPEAKER_TOP_FRONT_RIGHT 0x00004000
494 #define SPEAKER_TOP_BACK_LEFT 0x00008000
495 #define SPEAKER_TOP_BACK_CENTER 0x00010000
496 #define SPEAKER_TOP_BACK_RIGHT 0x00020000
497 #define SPEAKER_RESERVED 0x7FFC0000
498 #define SPEAKER_ALL 0x80000000
500 #endif /* _SPEAKER_POSITIONS_ */
503 /* DIB stuff */
505 #ifndef BI_BITFIELDS
506 #define BI_BITFIELDS 3
507 #endif
509 #ifndef QUERYDIBSUPPORT
510 #define QUERYDIBSUPPORT 3073
511 #define QDI_SETDIBITS 1
512 #define QDI_GETDIBITS 2
513 #define QDI_DIBTOSCREEN 4
514 #define QDI_STRETCHDIB 8
515 #endif
517 #ifndef NOBITMAP
518 typedef struct tagEXBMINFOHEADER {
519 BITMAPINFOHEADER bmi;
520 DWORD biExtDataOffset;
521 } EXBMINFOHEADER;
522 #endif
525 /* Video stuff */
527 #ifndef NONEWIC
529 #ifndef ICTYPE_VIDEO
530 #define ICTYPE_VIDEO mmioFOURCC('v', 'i', 'd', 'c')
531 #define ICTYPE_AUDIO mmioFOURCC('a', 'u', 'd', 'c')
532 #endif
534 #endif
536 #include <poppack.h>
538 #endif /* __WINE_MMREG_H */
540 #else /* __WIDL__ */
542 cpp_quote("#if 0")
543 #pragma pack(push, 1)
545 typedef struct tWAVEFORMATEX {
546 WORD wFormatTag;
547 WORD nChannels;
548 DWORD nSamplesPerSec;
549 DWORD nAvgBytesPerSec;
550 WORD nBlockAlign;
551 WORD wBitsPerSample;
552 WORD cbSize;
553 [size_is(cbSize)] BYTE pExtraBytes[];
554 } WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX;
556 typedef struct {
557 WORD wFormatTag;
558 WORD nChannels;
559 DWORD nSamplesPerSec;
560 DWORD nAvgBytesPerSec;
561 WORD nBlockAlign;
562 WORD wBitsPerSample;
563 WORD cbSize;
564 WORD wValidBitsPerSample;
565 DWORD dwChannelMask;
566 GUID SubFormat;
567 } WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE;
569 #pragma pack(pop)
570 cpp_quote("#endif")
572 #endif /* __WIDL__ */