[PSDK] Try to fix build
[reactos.git] / sdk / include / psdk / mmreg.h
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
48 typedef 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
59 typedef 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
68 typedef 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_
77 typedef 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
87 typedef 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
162 typedef struct adpcmcoef_tag {
163 short iCoef1;
164 short iCoef2;
165 } ADPCMCOEFSET;
166 typedef ADPCMCOEFSET *PADPCMCOEFSET,
167 *NPADPCMCOEFSET, *LPADPCMCOEFSET;
168
169 typedef 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;
176 typedef ADPCMWAVEFORMAT *PADPCMWAVEFORMAT,
177 *NPADPCMWAVEFORMAT, *LPADPCMWAVEFORMAT;
178
179 typedef struct dvi_adpcmwaveformat_tag {
180 WAVEFORMATEX wfx;
181 WORD wSamplesPerBlock;
182 } DVIADPCMWAVEFORMAT;
183 typedef DVIADPCMWAVEFORMAT *PDVIADPCMWAVEFORMAT,
184 *NPDVIADPCMWAVEFORMAT, *LPDVIADPCMWAVEFORMAT;
185
186 typedef struct ima_adpcmwaveformat_tag {
187 WAVEFORMATEX wfx;
188 WORD wSamplesPerBlock;
189 } IMAADPCMWAVEFORMAT;
190 typedef IMAADPCMWAVEFORMAT *PIMAADPCMWAVEFORMAT, *NPIMAADPCMWAVEFORMAT,
191 *LPIMAADPCMWAVEFORMAT;
192
193 typedef struct mediaspace_adpcmwaveformat_tag {
194 WAVEFORMATEX wfx;
195 WORD wRevision;
196 } MEDIASPACEADPCMWAVEFORMAT;
197 typedef MEDIASPACEADPCMWAVEFORMAT *PMEDIASPACEADPCMWAVEFORMAT,
198 *NPMEDIASPACEADPCMWAVEFORMAT, *LPMEDIASPACEADPCMWAVEFORMAT;
199
200 typedef struct sierra_adpcmwaveformat_tag {
201 WAVEFORMATEX wfx;
202 WORD wRevision;
203 } SIERRAADPCMWAVEFORMAT;
204 typedef SIERRAADPCMWAVEFORMAT *PSIERRAADPCMWAVEFORMAT,
205 *NPSIERRAADPCMWAVEFORMAT, *LPSIERRAADPCMWAVEFORMAT;
206
207 typedef struct g723_adpcmwaveformat_tag {
208 WAVEFORMATEX wfx;
209 WORD cbExtraSize;
210 WORD nAuxBlockSize;
211 } G723_ADPCMWAVEFORMAT;
212 typedef G723_ADPCMWAVEFORMAT *PG723_ADPCMWAVEFORMAT,
213 *NPG723_ADPCMWAVEFORMAT, *LPG723_ADPCMWAVEFORMAT;
214
215 typedef struct digistdwaveformat_tag {
216 WAVEFORMATEX wfx;
217 } DIGISTDWAVEFORMAT;
218 typedef DIGISTDWAVEFORMAT *PDIGISTDWAVEFORMAT,
219 *NPDIGISTDWAVEFORMAT, *LPDIGISTDWAVEFORMAT;
220
221 typedef struct digifixwaveformat_tag {
222 WAVEFORMATEX wfx;
223 } DIGIFIXWAVEFORMAT;
224 typedef DIGIFIXWAVEFORMAT *PDIGIFIXWAVEFORMAT,
225 *NPDIGIFIXWAVEFORMAT, *LPDIGIFIXWAVEFORMAT;
226
227 typedef struct creative_fastspeechformat_tag {
228 WAVEFORMATEX ewf;
229 } DIALOGICOKIADPCMWAVEFORMAT;
230 typedef DIALOGICOKIADPCMWAVEFORMAT *PDIALOGICOKIADPCMWAVEFORMAT,
231 *NPDIALOGICOKIADPCMWAVEFORMAT, *LPDIALOGICOKIADPCMWAVEFORMAT;
232
233 typedef struct yamaha_adpmcwaveformat_tag {
234 WAVEFORMATEX wfx;
235 } YAMAHA_ADPCMWAVEFORMAT;
236 typedef YAMAHA_ADPCMWAVEFORMAT *PYAMAHA_ADPCMWAVEFORMAT,
237 *NPYAMAHA_ADPCMWAVEFORMAT, *LPYAMAHA_ADPCMWAVEFORMAT;
238
239 typedef struct sonarcwaveformat_tag {
240 WAVEFORMATEX wfx;
241 WORD wCompType;
242 } SONARCWAVEFORMAT;
243 typedef SONARCWAVEFORMAT *PSONARCWAVEFORMAT,
244 *NPSONARCWAVEFORMAT,*LPSONARCWAVEFORMAT;
245
246 typedef struct truespeechwaveformat_tag {
247 WAVEFORMATEX wfx;
248 WORD wRevision;
249 WORD nSamplesPerBlock;
250 BYTE abReserved[28];
251 } TRUESPEECHWAVEFORMAT;
252 typedef TRUESPEECHWAVEFORMAT *PTRUESPEECHWAVEFORMAT,
253 *NPTRUESPEECHWAVEFORMAT, *LPTRUESPEECHWAVEFORMAT;
254
255 typedef struct echosc1waveformat_tag {
256 WAVEFORMATEX wfx;
257 } ECHOSC1WAVEFORMAT;
258 typedef ECHOSC1WAVEFORMAT *PECHOSC1WAVEFORMAT,
259 *NPECHOSC1WAVEFORMAT, *LPECHOSC1WAVEFORMAT;
260
261 typedef struct audiofile_af36waveformat_tag {
262 WAVEFORMATEX wfx;
263 } AUDIOFILE_AF36WAVEFORMAT;
264 typedef AUDIOFILE_AF36WAVEFORMAT *PAUDIOFILE_AF36WAVEFORMAT,
265 *NPAUDIOFILE_AF36WAVEFORMAT, *LPAUDIOFILE_AF36WAVEFORMAT;
266
267 typedef struct aptxwaveformat_tag {
268 WAVEFORMATEX wfx;
269 } APTXWAVEFORMAT;
270 typedef APTXWAVEFORMAT *PAPTXWAVEFORMAT,
271 *NPAPTXWAVEFORMAT, *LPAPTXWAVEFORMAT;
272
273 typedef struct audiofile_af10waveformat_tag {
274 WAVEFORMATEX wfx;
275 } AUDIOFILE_AF10WAVEFORMAT;
276 typedef AUDIOFILE_AF10WAVEFORMAT *PAUDIOFILE_AF10WAVEFORMAT,
277 *NPAUDIOFILE_AF10WAVEFORMAT, *LPAUDIOFILE_AF10WAVEFORMAT;
278
279 typedef struct dolbyac2waveformat_tag {
280 WAVEFORMATEX wfx;
281 WORD nAuxBitsCode;
282 } DOLBYAC2WAVEFORMAT;
283
284 typedef struct gsm610waveformat_tag {
285 WAVEFORMATEX wfx;
286 WORD wSamplesPerBlock;
287 } GSM610WAVEFORMAT;
288 typedef GSM610WAVEFORMAT *PGSM610WAVEFORMAT,
289 *NPGSM610WAVEFORMAT, *LPGSM610WAVEFORMAT;
290
291 typedef struct adpcmewaveformat_tag {
292 WAVEFORMATEX wfx;
293 WORD wSamplesPerBlock;
294 } ADPCMEWAVEFORMAT;
295 typedef ADPCMEWAVEFORMAT *PADPCMEWAVEFORMAT,
296 *NPADPCMEWAVEFORMAT, *LPADPCMEWAVEFORMAT;
297
298 typedef struct contres_vqlpcwaveformat_tag {
299 WAVEFORMATEX wfx;
300 WORD wSamplesPerBlock;
301 } CONTRESVQLPCWAVEFORMAT;
302 typedef CONTRESVQLPCWAVEFORMAT *PCONTRESVQLPCWAVEFORMAT,
303 *NPCONTRESVQLPCWAVEFORMAT, *LPCONTRESVQLPCWAVEFORMAT;
304
305 typedef struct digirealwaveformat_tag {
306 WAVEFORMATEX wfx;
307 WORD wSamplesPerBlock;
308 } DIGIREALWAVEFORMAT;
309 typedef DIGIREALWAVEFORMAT *PDIGIREALWAVEFORMAT,
310 *NPDIGIREALWAVEFORMAT, *LPDIGIREALWAVEFORMAT;
311
312 typedef struct digiadpcmmwaveformat_tag {
313 WAVEFORMATEX wfx;
314 WORD wSamplesPerBlock;
315 } DIGIADPCMWAVEFORMAT;
316 typedef DIGIADPCMWAVEFORMAT *PDIGIADPCMWAVEFORMAT,
317 *NPDIGIADPCMWAVEFORMAT, *LPDIGIADPCMWAVEFORMAT;
318
319 typedef struct contres_cr10waveformat_tag {
320 WAVEFORMATEX wfx;
321 WORD wSamplesPerBlock;
322 } CONTRESCR10WAVEFORMAT;
323 typedef CONTRESCR10WAVEFORMAT *PCONTRESCR10WAVEFORMAT,
324 *NPCONTRESCR10WAVEFORMAT, *LPCONTRESCR10WAVEFORMAT;
325
326 typedef struct nms_vbxadpcmmwaveformat_tag {
327 WAVEFORMATEX wfx;
328 WORD wSamplesPerBlock;
329 } NMS_VBXADPCMWAVEFORMAT;
330 typedef NMS_VBXADPCMWAVEFORMAT *PNMS_VBXADPCMWAVEFORMAT,
331 *NPNMS_VBXADPCMWAVEFORMAT, *LPNMS_VBXADPCMWAVEFORMAT;
332
333 typedef struct g721_adpcmwaveformat_tag {
334 WAVEFORMATEX wfx;
335 WORD nAuxBlockSize;
336 } G721_ADPCMWAVEFORMAT;
337 typedef G721_ADPCMWAVEFORMAT *PG721_ADPCMWAVEFORMAT,
338 *NG721_ADPCMWAVEFORMAT, *LPG721_ADPCMWAVEFORMAT;
339
340 typedef struct creative_adpcmwaveformat_tag {
341 WAVEFORMATEX wfx;
342 WORD wRevision;
343 } CREATIVEADPCMWAVEFORMAT;
344 typedef CREATIVEADPCMWAVEFORMAT *PCREATIVEADPCMWAVEFORMAT,
345 *NPCREATIVEADPCMWAVEFORMAT, *LPCREATIVEADPCMWAVEFORMAT;
346
347 typedef struct creative_fastspeech8format_tag {
348 WAVEFORMATEX wfx;
349 WORD wRevision;
350 } CREATIVEFASTSPEECH8WAVEFORMAT;
351 typedef CREATIVEFASTSPEECH8WAVEFORMAT *PCREATIVEFASTSPEECH8WAVEFORMAT,
352 *NPCREATIVEFASTSPEECH8WAVEFORMAT, *LPCREATIVEFASTSPEECH8WAVEFORMAT;
353
354 typedef struct creative_fastspeech10format_tag {
355 WAVEFORMATEX wfx;
356 WORD wRevision;
357 } CREATIVEFASTSPEECH10WAVEFORMAT;
358 typedef CREATIVEFASTSPEECH10WAVEFORMAT *PCREATIVEFASTSPEECH10WAVEFORMAT,
359 *NPCREATIVEFASTSPEECH10WAVEFORMAT, *LPCREATIVEFASTSPEECH10WAVEFORMAT;
360
361 typedef struct fmtowns_snd_waveformat_tag {
362 WAVEFORMATEX wfx;
363 WORD wRevision;
364 } FMTOWNS_SND_WAVEFORMAT;
365 typedef FMTOWNS_SND_WAVEFORMAT *PFMTOWNS_SND_WAVEFORMAT,
366 *NPFMTOWNS_SND_WAVEFORMAT, *LPFMTOWNS_SND_WAVEFORMAT;
367
368 typedef struct oligsmwaveformat_tag {
369 WAVEFORMATEX wfx;
370 } OLIGSMWAVEFORMAT;
371 typedef OLIGSMWAVEFORMAT *POLIGSMWAVEFORMAT,
372 *NPOLIGSMWAVEFORMAT, *LPOLIGSMWAVEFORMAT;
373
374 typedef struct oliadpcmwaveformat_tag {
375 WAVEFORMATEX wfx;
376 } OLIADPCMWAVEFORMAT;
377 typedef OLIADPCMWAVEFORMAT *POLIADPCMWAVEFORMAT,
378 *NPOLIADPCMWAVEFORMAT, *LPOLIADPCMWAVEFORMAT;
379
380 typedef struct olicelpwaveformat_tag {
381 WAVEFORMATEX wfx;
382 } OLICELPWAVEFORMAT;
383 typedef OLICELPWAVEFORMAT *POLICELPWAVEFORMAT,
384 *NPOLICELPWAVEFORMAT, *LPOLICELPWAVEFORMAT;
385
386 typedef struct olisbcwaveformat_tag {
387 WAVEFORMATEX wfx;
388 } OLISBCWAVEFORMAT;
389 typedef OLISBCWAVEFORMAT *POLISBCWAVEFORMAT,
390 *NPOLISBCWAVEFORMAT, *LPOLISBCWAVEFORMAT;
391
392 typedef struct olioprwaveformat_tag {
393 WAVEFORMATEX wfx;
394 } OLIOPRWAVEFORMAT;
395 typedef OLIOPRWAVEFORMAT *POLIOPRWAVEFORMAT,
396 *NPOLIOPRWAVEFORMAT, *LPOLIOPRWAVEFORMAT;
397
398 typedef struct csimaadpcmwaveformat_tag {
399 WAVEFORMATEX wfx;
400 } CSIMAADPCMWAVEFORMAT;
401 typedef CSIMAADPCMWAVEFORMAT *PCSIMAADPCMWAVEFORMAT,
402 *NPCSIMAADPCMWAVEFORMAT, *LPCSIMAADPCMWAVEFORMAT;
403
404 typedef 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
430 typedef 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_
453 typedef 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
467 typedef WAVEFORMATEXTENSIBLE WAVEFORMATPCMEX;
468 typedef WAVEFORMATPCMEX* PWAVEFORMATPCMEX;
469 typedef WAVEFORMATPCMEX* NPWAVEFORMATPCMEX;
470 typedef WAVEFORMATPCMEX* LPWAVEFORMATPCMEX;
471
472 typedef WAVEFORMATEXTENSIBLE WAVEFORMATIEEEFLOATEX;
473 typedef WAVEFORMATIEEEFLOATEX* PWAVEFORMATIEEEFLOATEX;
474 typedef WAVEFORMATIEEEFLOATEX* NPWAVEFORMATIEEEFLOATEX;
475 typedef 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
519 typedef 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
545 cpp_quote("#if 0")
546 #pragma pack(push, 1)
547
548 typedef 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
559 typedef 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)
573 cpp_quote("#endif")
574
575 #endif /* __WIDL__ */