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