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