mmreg.h 28.7 KB
Newer Older
1
/*
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
 * Declarations for MultiMedia-REGistration
 *
 * Copyright (C) 1999 Eric Pouech
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * 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 22
#ifndef __WIDL__

23 24
#ifndef __WINE_MMREG_H
#define __WINE_MMREG_H
25

26 27
#include <pshpack1.h>

28 29 30 31
/***********************************************************************
 * Defines/Enums
 */

32 33 34
#ifndef _ACM_WAVEFILTER
#define _ACM_WAVEFILTER

35 36 37 38 39 40 41 42
#define WAVE_FILTER_UNKNOWN     0x0000
#define WAVE_FILTER_DEVELOPMENT 0xFFFF

typedef struct _WAVEFILTER {
  DWORD   cbStruct;
  DWORD   dwFilterTag;
  DWORD   fdwFilter;
  DWORD   dwReserved[5];
43 44 45
} WAVEFILTER, *PWAVEFILTER, *NPWAVEFILTER, *LPWAVEFILTER;
#endif /* _ACM_WAVEFILTER */

46 47
#ifndef WAVE_FILTER_VOLUME
#define WAVE_FILTER_VOLUME      0x0001
48

49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
typedef struct _WAVEFILTER_VOLUME {
   WAVEFILTER      wfltr;
   DWORD           dwVolume;
} VOLUMEWAVEFILTER, *PVOLUMEWAVEFILTER, *NPVOLUMEWAVEFILTER, *LPVOLUMEWAVEFILTER;
#endif  /* WAVE_FILTER_VOLUME */

#ifndef WAVE_FILTER_ECHO
#define WAVE_FILTER_ECHO        0x0002

typedef struct WAVEFILTER_ECHO {
   WAVEFILTER      wfltr;
   DWORD           dwVolume;
   DWORD           dwDelay;
} ECHOWAVEFILTER, *PECHOWAVEFILTER, *NPECHOWAVEFILTER, *LPECHOWAVEFILTER;
#endif  /* WAVEFILTER_ECHO */
64

65 66
#ifndef _WAVEFORMATEX_
#define _WAVEFORMATEX_
67 68 69 70 71 72 73 74
typedef struct _WAVEFORMATEX {
  WORD   wFormatTag;
  WORD   nChannels;
  DWORD  nSamplesPerSec;
  DWORD  nAvgBytesPerSec;
  WORD   nBlockAlign;
  WORD   wBitsPerSample;
  WORD   cbSize;
75 76
} WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX;
#endif /* _WAVEFORMATEX_ */
77

78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
#ifndef  WAVE_FORMAT_PCM
typedef struct waveformat_tag {
  WORD    wFormatTag;
  WORD    nChannels;
  DWORD   nSamplesPerSec;
  DWORD   nAvgBytesPerSec;
  WORD    nBlockAlign;
} WAVEFORMAT, *PWAVEFORMAT, *NPWAVEFORMAT, *LPWAVEFORMAT;

typedef struct pcmwaveformat_tag {
  WAVEFORMAT  wf;
  WORD        wBitsPerSample;
} PCMWAVEFORMAT, *PPCMWAVEFORMAT, *NPPCMWAVEFORMAT, *LPPCMWAVEFORMAT;
#endif /* WAVE_FORMAT_PCM */

93 94
/* WAVE form wFormatTag IDs */
#define  WAVE_FORMAT_UNKNOWN			0x0000	/*  Microsoft Corporation  */
95 96 97
#ifndef  WAVE_FORMAT_PCM
#define  WAVE_FORMAT_PCM			0x0001
#endif
98
#define  WAVE_FORMAT_ADPCM			0x0002	/*  Microsoft Corporation  */
99
#define  WAVE_FORMAT_IEEE_FLOAT			0x0003	/*  Microsoft Corporation  */
100
#define  WAVE_FORMAT_VSELP			0x0004
101 102 103
#define  WAVE_FORMAT_IBM_CVSD			0x0005	/*  IBM Corporation  */
#define  WAVE_FORMAT_ALAW			0x0006	/*  Microsoft Corporation  */
#define  WAVE_FORMAT_MULAW			0x0007	/*  Microsoft Corporation  */
104 105 106
#define  WAVE_FORMAT_DTS			0x0008
#define  WAVE_FORMAT_DRM			0x0009
#define  WAVE_FORMAT_WMAVOICE9			0x000a
107 108 109 110 111 112 113 114 115
#define  WAVE_FORMAT_OKI_ADPCM			0x0010	/*  OKI  */
#define  WAVE_FORMAT_DVI_ADPCM			0x0011	/*  Intel Corporation  */
#define  WAVE_FORMAT_IMA_ADPCM			(WAVE_FORMAT_DVI_ADPCM)	/*  Intel Corporation  */
#define  WAVE_FORMAT_MEDIASPACE_ADPCM		0x0012	/*  Videologic  */
#define  WAVE_FORMAT_SIERRA_ADPCM		0x0013	/*  Sierra Semiconductor Corp  */
#define  WAVE_FORMAT_G723_ADPCM			0x0014	/*  Antex Electronics Corporation  */
#define  WAVE_FORMAT_DIGISTD			0x0015	/*  DSP Solutions, Inc.  */
#define  WAVE_FORMAT_DIGIFIX			0x0016	/*  DSP Solutions, Inc.  */
#define  WAVE_FORMAT_DIALOGIC_OKI_ADPCM		0x0017	/*  Dialogic Corporation  */
116 117 118
#define  WAVE_FORMAT_MEDIAVISION_ADPCM		0x0018
#define  WAVE_FORMAT_CU_CODEC			0x0019
#define  WAVE_FORMAT_HP_DYN_VOICE		0x001a
119 120 121 122 123 124 125
#define  WAVE_FORMAT_YAMAHA_ADPCM		0x0020	/*  Yamaha Corporation of America  */
#define  WAVE_FORMAT_SONARC			0x0021	/*  Speech Compression  */
#define  WAVE_FORMAT_DSPGROUP_TRUESPEECH	0x0022	/*  DSP Group, Inc  */
#define  WAVE_FORMAT_ECHOSC1			0x0023	/*  Echo Speech Corporation  */
#define  WAVE_FORMAT_AUDIOFILE_AF36		0x0024	/*    */
#define  WAVE_FORMAT_APTX			0x0025	/*  Audio Processing Technology  */
#define  WAVE_FORMAT_AUDIOFILE_AF10		0x0026	/*    */
126 127
#define  WAVE_FORMAT_PROSODY_1612		0x0027
#define  WAVE_FORMAT_LRC			0x0028
128 129
#define  WAVE_FORMAT_DOLBY_AC2			0x0030	/*  Dolby Laboratories  */
#define  WAVE_FORMAT_GSM610			0x0031	/*  Microsoft Corporation  */
130
#define  WAVE_FORMAT_MSNAUDIO			0x0032
131 132 133 134 135 136
#define  WAVE_FORMAT_ANTEX_ADPCME		0x0033	/*  Antex Electronics Corporation  */
#define  WAVE_FORMAT_CONTROL_RES_VQLPC		0x0034	/*  Control Resources Limited  */
#define  WAVE_FORMAT_DIGIREAL			0x0035	/*  DSP Solutions, Inc.  */
#define  WAVE_FORMAT_DIGIADPCM			0x0036	/*  DSP Solutions, Inc.  */
#define  WAVE_FORMAT_CONTROL_RES_CR10		0x0037	/*  Control Resources Limited  */
#define  WAVE_FORMAT_NMS_VBXADPCM		0x0038	/*  Natural MicroSystems  */
137 138 139 140 141
#define  WAVE_FORMAT_CS_IMAADPCM		0x0039
#define  WAVE_FORMAT_ECHOSC3			0x003a
#define  WAVE_FORMAT_ROCKWELL_ADPCM		0x003b
#define  WAVE_FORMAT_ROCKWELL_DIGITALK		0x003c
#define  WAVE_FORMAT_XEBEC			0x003d
142
#define  WAVE_FORMAT_G721_ADPCM			0x0040	/*  Antex Electronics Corporation  */
143 144 145 146 147
#define  WAVE_FORMAT_G728_CELP			0x0041
#define  WAVE_FORMAT_MSG723			0x0042
#define  WAVE_FORMAT_INTEL_G723_1		0x0043
#define  WAVE_FORMAT_INTEL_G729			0x0044
#define  WAVE_FORMAT_SHARP_G726			0x0045
148
#define  WAVE_FORMAT_MPEG			0x0050	/*  Microsoft Corporation  */
149 150
#define  WAVE_FORMAT_RT24			0x0052
#define  WAVE_FORMAT_PAC			0x0053
151
#define  WAVE_FORMAT_MPEGLAYER3			0x0055
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
#define  WAVE_FORMAT_LUCENT_G723		0x0059
#define  WAVE_FORMAT_CIRRUS			0x0060
#define  WAVE_FORMAT_ESPCM			0x0061
#define  WAVE_FORMAT_VOXWARE			0x0062
#define  WAVE_FORMAT_CANOPUS_ATRAC		0x0063
#define  WAVE_FORMAT_G726_ADPCM			0x0064
#define  WAVE_FORMAT_G722_ADPCM			0x0065
#define  WAVE_FORMAT_DSAT			0x0066
#define  WAVE_FORMAT_DSAT_DISPLAY		0x0067
#define  WAVE_FORMAT_VOXWARE_BYTE_ALIGNED	0x0069
#define  WAVE_FORMAT_VOXWARE_AC8		0x0070
#define  WAVE_FORMAT_VOXWARE_AC10		0x0071
#define  WAVE_FORMAT_VOXWARE_AC16		0x0072
#define  WAVE_FORMAT_VOXWARE_AC20		0x0073
#define  WAVE_FORMAT_VOXWARE_RT24		0x0074
#define  WAVE_FORMAT_VOXWARE_RT29		0x0075
#define  WAVE_FORMAT_VOXWARE_RT29HW		0x0076
#define  WAVE_FORMAT_VOXWARE_VR12		0x0077
#define  WAVE_FORMAT_VOXWARE_VR18		0x0078
#define  WAVE_FORMAT_VOXWARE_TQ40		0x0079
#define  WAVE_FORMAT_VOXWARE_SC3		0x007a
#define  WAVE_FORMAT_VOXWARE_SC3_1		0x007b
#define  WAVE_FORMAT_SOFTSOUND			0x0080
#define  WAVE_FORMAT_VOXWARE_TQ60		0x0081
176
#define  WAVE_FORMAT_MSRT24			0x0082  /*  Microsoft Corporation */
177 178 179 180 181 182 183 184 185 186 187
#define  WAVE_FORMAT_G729A			0x0083
#define  WAVE_FORMAT_MVI_MVI2			0x0084
#define  WAVE_FORMAT_DF_G726			0x0085
#define  WAVE_FORMAT_DF_GSM610			0x0086
#define  WAVE_FORMAT_ISIAUDIO			0x0088
#define  WAVE_FORMAT_ONLIVE			0x0089
#define  WAVE_FORMAT_MULTITUDE_FT_SX20		0x008a
#define  WAVE_FORMAT_INFOCOM_ITS_G721_ADPCM	0x008b
#define  WAVE_FORMAT_CONVEDIA_G729		0x008c
#define  WAVE_FORMAT_CONGRUENCY			0x008d
#define  WAVE_FORMAT_SBC24			0x0091
188
#define  WAVE_FORMAT_DOLBY_AC3_SPDIF		0x0092
189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221
#define  WAVE_FORMAT_MEDIASONIC_G723		0x0093
#define  WAVE_FORMAT_PROSODY_8KBPS		0x0094
#define  WAVE_FORMAT_ZYXEL_ADPCM		0x0097
#define  WAVE_FORMAT_PHILIPS_LPCBB		0x0098
#define  WAVE_FORMAT_PACKED			0x0099
#define  WAVE_FORMAT_MALDEN_PHONYTALK		0x00a0
#define  WAVE_FORMAT_RACAL_RECORDER_GSM		0x00a1
#define  WAVE_FORMAT_RACAL_RECORDER_G720_A	0x00a2
#define  WAVE_FORMAT_RACAL_RECORDER_G723_1	0x00a3
#define  WAVE_FORMAT_RACAL_RECORDER_TETRA_ACELP	0x00a4
#define  WAVE_FORMAT_NEC_AAC			0x00b0
#define  WAVE_FORMAT_RAW_AAC1			0x00ff
#define  WAVE_FORMAT_RHETOREX_ADPCM		0x0100
#define  WAVE_FORMAT_IRAT			0x0101
#define  WAVE_FORMAT_VIVO_G723			0x0111
#define  WAVE_FORMAT_VIVO_SIREN			0x0112
#define  WAVE_FORMAT_PHILIPS_CELP		0x0120
#define  WAVE_FORMAT_PHILIPS_GRUNDIG		0x0121
#define  WAVE_FORMAT_DIGITAL_G723		0x0123
#define  WAVE_FORMAT_SANYO_LD_ADPCM		0x0125
#define  WAVE_FORMAT_SIPROLAB_ACEPLNET		0x0130
#define  WAVE_FORMAT_SIPROLAB_ACELP4800		0x0131
#define  WAVE_FORMAT_SIPROLAB_ACELP8V3		0x0132
#define  WAVE_FORMAT_SIPROLAB_G729		0x0133
#define  WAVE_FORMAT_SIPROLAB_G729A		0x0134
#define  WAVE_FORMAT_SIPROLAB_KELVIN		0x0135
#define  WAVE_FORMAT_VOICEAGE_AMR		0x0136
#define  WAVE_FORMAT_G726ADPCM			0x0140
#define  WAVE_FORMAT_DICTAPHONE_CELP68		0x0141
#define  WAVE_FORMAT_DICTAPHONE_CELP54		0x0142
#define  WAVE_FORMAT_QUALCOMM_PUREVOICE		0x0150
#define  WAVE_FORMAT_QUALCOMM_HALFRATE		0x0151
#define  WAVE_FORMAT_TUBGSM			0x0155
222
#define  WAVE_FORMAT_MSAUDIO1			0x0160
223 224 225 226
#define  WAVE_FORMAT_WMAUDIO2			0x0161
#define  WAVE_FORMAT_WMAUDIO3			0x0162
#define  WAVE_FORMAT_WMAUDIO_LOSSLESS		0x0163
#define  WAVE_FORMAT_WMASPDIF			0x0164
227 228 229 230 231 232 233 234 235 236 237
#define  WAVE_FORMAT_UNISYS_NAP_ADPCM		0x0170
#define  WAVE_FORMAT_UNISYS_NAP_ULAW		0x0171
#define  WAVE_FORMAT_UNISYS_NAP_ALAW		0x0172
#define  WAVE_FORMAT_UNISYS_NAP_16K		0x0173
#define  WAVE_FORMAT_SYCOM_ACM_SYC008		0x0174
#define  WAVE_FORMAT_SYCOM_ACM_SYC701_G726L	0x0175
#define  WAVE_FORMAT_SYCOM_ACM_SYC701_CELP54	0x0176
#define  WAVE_FORMAT_SYCOM_ACM_SYC701_CELP68	0x0177
#define  WAVE_FORMAT_KNOWLEDGE_ADVENTURE_ADPCM	0x0178
#define  WAVE_FORMAT_FRAUNHOFER_IIS_MPEG2_AAC	0x0180
#define  WAVE_FORMAT_DTS_DS			0x0190
238 239 240
#define  WAVE_FORMAT_CREATIVE_ADPCM		0x0200	/*  Creative Labs, Inc  */
#define  WAVE_FORMAT_CREATIVE_FASTSPEECH8	0x0202	/*  Creative Labs, Inc  */
#define  WAVE_FORMAT_CREATIVE_FASTSPEECH10	0x0203	/*  Creative Labs, Inc  */
241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258
#define  WAVE_FORMAT_UHER_ADPCM			0x0210
#define  WAVE_FORMAT_ULEAD_DV_AUDIO		0x0215
#define  WAVE_FORMAT_ULEAD_DV_AUDIO_1		0x0216
#define  WAVE_FORMAT_QUARTERDECK		0x0220
#define  WAVE_FORMAT_ILINK_VC			0x0230
#define  WAVE_FORMAT_RAW_SPORT			0x0240
#define  WAVE_FORMAT_ESST_AC3			0x0241
#define  WAVE_FORMAT_GENERIC_PASSTHRU		0x0249
#define  WAVE_FORMAT_IPI_HSX			0x0250
#define  WAVE_FORMAT_IPI_RPELP			0x0251
#define  WAVE_FORMAT_CS2			0x0260
#define  WAVE_FORMAT_SONY_SCX			0x0270
#define  WAVE_FORMAT_SONY_SCY			0x0271
#define  WAVE_FORMAT_SONY_ATRAC3		0x0272
#define  WAVE_FORMAT_SONY_SPC			0x0273
#define  WAVE_FORMAT_TELUM_AUDIO		0x0280
#define  WAVE_FORMAT_TELUM_IA_AUDIO		0x0281
#define  WAVE_FORMAT_NORCOM_VOICE_SYSTEMS_ADPCM	0x0285
259
#define  WAVE_FORMAT_FM_TOWNS_SND		0x0300	/*  Fujitsu Corp.  */
260 261 262 263 264 265 266 267 268 269 270
#define  WAVE_FORMAT_MICRONAS			0x0350
#define  WAVE_FORMAT_MICRONAS_CELP833		0x0351
#define  WAVE_FORMAT_BTV_DIGITAL		0x0400
#define  WAVE_FORMAT_INTEL_MUSIC_CODER		0x0401
#define  WAVE_FORMAT_INDEO_AUDIO		0x0402
#define  WAVE_FORMAT_QDESIGN_MUSIC		0x0450
#define  WAVE_FORMAT_ON2_VP7_AUDIO		0x0500
#define  WAVE_FORMAT_ON2_VP6_AUDIO		0x0501
#define  WAVE_FORMAT_VME_VMPCM			0x0680
#define  WAVE_FORMAT_TPC			0x0681
#define  WAVE_FORMAT_LIGHTWAVE_LOSSLESS		0x08ae
271 272 273 274 275
#define  WAVE_FORMAT_OLIGSM			0x1000	/*  Ing C. Olivetti & C., S.p.A.  */
#define  WAVE_FORMAT_OLIADPCM			0x1001	/*  Ing C. Olivetti & C., S.p.A.  */
#define  WAVE_FORMAT_OLICELP			0x1002	/*  Ing C. Olivetti & C., S.p.A.  */
#define  WAVE_FORMAT_OLISBC			0x1003	/*  Ing C. Olivetti & C., S.p.A.  */
#define  WAVE_FORMAT_OLIOPR			0x1004	/*  Ing C. Olivetti & C., S.p.A.  */
276 277 278 279 280 281 282 283
#define  WAVE_FORMAT_LH_CODEC			0x1100
#define  WAVE_FORMAT_LH_CODEC_CELP		0x1101
#define  WAVE_FORMAT_LH_CODEC_SBC8		0x1102
#define  WAVE_FORMAT_LH_CODEC_SBC12		0x1103
#define  WAVE_FORMAT_LH_CODEC_SBC16		0x1104
#define  WAVE_FORMAT_NORRIS			0x1400
#define  WAVE_FORMAT_ISIAUDIO_2			0x1401
#define  WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS	0x1500
284
#define  WAVE_FORMAT_MPEG_ADTS_AAC		0x1600
285
#define  WAVE_FORMAT_MPEG_RAW_AAC		0x1601
286
#define  WAVE_FORMAT_MPEG_LOAS			0x1602
287 288 289 290
#define  WAVE_FORMAT_NOKIA_MPEG_ADTS_AAC	0x1608
#define  WAVE_FORMAT_NOKIA_MPEG_RAW_AAC		0x1609
#define  WAVE_FORMAT_VODAFONE_MPEG_ADTS_AAC	0x160a
#define  WAVE_FORMAT_VODAFONE_MPEG_RAW_AAC	0x160b
291
#define  WAVE_FORMAT_MPEG_HEAAC			0x1610
292 293 294 295 296 297 298 299
#define  WAVE_FORMAT_VOXWARE_RT24_SPEECH	0x181c
#define  WAVE_FORMAT_SONICFOUNDRY_LOSSLESS	0x1971
#define  WAVE_FORMAT_INNINGS_TELECOM_ADPCM	0x1979
#define  WAVE_FORMAT_LUCENT_SX8300P		0x1c07
#define  WAVE_FORMAT_LUCENT_SX5363S		0x1c0c
#define  WAVE_FORMAT_CUSEEME			0x1f03
#define  WAVE_FORMAT_NTCSOFT_ALF2CM_ACM		0x1fc4
#define  WAVE_FORMAT_DVM			0x2000
300
#define  WAVE_FORMAT_DTS2			0x2001
301 302 303 304 305 306 307
#define  WAVE_FORMAT_MAKEAVIS			0x3313
#define  WAVE_FORMAT_DIVIO_MPEG4_AAC		0x4143
#define  WAVE_FORMAT_NOKIA_ADAPTIVE_MULTIRATE	0x4201
#define  WAVE_FORMAT_DIVIO_G726			0x4243
#define  WAVE_FORMAT_LEAD_SPEECH		0x434c
#define  WAVE_FORMAT_LEAD_VORBIS		0x564c
#define  WAVE_FORMAT_WAVPACK_AUDIO		0x5756
308
#define  WAVE_FORMAT_ALAC			0x6c61
309 310 311 312 313 314 315
#define  WAVE_FORMAT_OGG_VORBIS_MODE_1		0x674f
#define  WAVE_FORMAT_OGG_VORBIS_MODE_2		0x6750
#define  WAVE_FORMAT_OGG_VORBIS_MODE_3		0x6751
#define  WAVE_FORMAT_OGG_VORBIS_MODE_1_PLUS	0x676f
#define  WAVE_FORMAT_OGG_VORBIS_MODE_2_PLUS	0x6770
#define  WAVE_FORMAT_OGG_VORBIS_MODE_3_PLUS	0x6771
#define  WAVE_FORMAT_3COM_NBX			0x7000
316
#define  WAVE_FORMAT_OPUS			0x704f
317
#define  WAVE_FORMAT_FAAD_AAC			0x706d
318 319 320
#define  WAVE_FORMAT_AMR_NB			0x7361
#define  WAVE_FORMAT_AMR_WB			0x7362
#define  WAVE_FORMAT_AMR_WP			0x7363
321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359
#define  WAVE_FORMAT_GSM_AMR_CBR		0x7a21
#define  WAVE_FORMAT_GSM_AMR_VBR_SID		0x7a22
#define  WAVE_FORMAT_COMVERSE_INFOSYS_G723_1	0xa100
#define  WAVE_FORMAT_COMVERSE_INFOSYS_AVQSBC	0xa101
#define  WAVE_FORMAT_COMVERSE_INFOSYS_SBC	0xa102
#define  WAVE_FORMAT_SYMBOL_G729_A		0xa103
#define  WAVE_FORMAT_VOICEAGE_AMR_WB		0xa104
#define  WAVE_FORMAT_INGENIENT_G726		0xa105
#define  WAVE_FORMAT_MPEG4_AAC			0xa106
#define  WAVE_FORMAT_ENCORE_G726		0xa107
#define  WAVE_FORMAT_ZOLL_ASAO			0xa108
#define  WAVE_FORMAT_SPEEX_VOICE		0xa109
#define  WAVE_FORMAT_VIANIX_MASC		0xa10a
#define  WAVE_FORMAT_WM9_SPECTRUM_ANALYZER	0xa10b
#define  WAVE_FORMAT_WMF_SPECTRUM_ANAYZER	0xa10c
#define  WAVE_FORMAT_GSM_610			0xa10d
#define  WAVE_FORMAT_GSM_620			0xa10e
#define  WAVE_FORMAT_GSM_660			0xa10f
#define  WAVE_FORMAT_GSM_690			0xa110
#define  WAVE_FORMAT_GSM_ADAPTIVE_MULTIRATE_WB	0xa111
#define  WAVE_FORMAT_POLYCOM_G722		0xa112
#define  WAVE_FORMAT_POLYCOM_G728		0xa113
#define  WAVE_FORMAT_POLYCOM_G729_A		0xa114
#define  WAVE_FORMAT_POLYCOM_SIREN		0xa115
#define  WAVE_FORMAT_GLOBAL_IP_ILBC		0xa116
#define  WAVE_FORMAT_RADIOTIME_TIME_SHIFT_RADIO	0xa117
#define  WAVE_FORMAT_NICE_ACA			0xa118
#define  WAVE_FORMAT_NICE_ADPCM			0xa119
#define  WAVE_FORMAT_VOCORD_G721		0xa11a
#define  WAVE_FORMAT_VOCORD_G726		0xa11b
#define  WAVE_FORMAT_VOCORD_G722_1		0xa11c
#define  WAVE_FORMAT_VOCORD_G728		0xa11d
#define  WAVE_FORMAT_VOCORD_G729		0xa11e
#define  WAVE_FORMAT_VOCORD_G729_A		0xa11f
#define  WAVE_FORMAT_VOCORD_G723_1		0xa120
#define  WAVE_FORMAT_VOCORD_LBC			0xa121
#define  WAVE_FORMAT_NICE_G728			0xa122
#define  WAVE_FORMAT_FRACE_TELECOM_G729		0xa123
#define  WAVE_FORMAT_CODIAN			0xa124
360
#define  WAVE_FORMAT_FLAC			0xf1ac
361 362 363 364
#if !defined(WAVE_FORMAT_EXTENSIBLE)
#define  WAVE_FORMAT_EXTENSIBLE			0xfffe  /* Microsoft */
#endif
#define WAVE_FORMAT_DEVELOPMENT			(0xffff)
365

366

367 368 369 370 371 372 373 374
#ifndef MM_MICROSOFT
#define MM_MICROSOFT 0x01
#endif
#define MM_MSFT_ACM_MSADPCM 0x21
#define MM_MSFT_ACM_IMAADPCM 0x22
#define MM_MSFT_ACM_GSM610 0x24
#define MM_MSFT_ACM_G711 0x25
#define MM_MSFT_ACM_PCM 0x26
375 376 377
#define MM_MSFT_ACM_WMAUDIO 39
#define MM_MSFT_ACM_MSAUDIO1 39
#define MM_MSFT_ACM_WMAUDIO2 101
378 379 380

#define MM_FRAUNHOFER_IIS 0xAC
#define MM_FHGIIS_MPEGLAYER3_DECODE 0x09
381
#define MM_FHGIIS_MPEGLAYER3_PROFESSIONAL 0x0d
382

383 384 385 386
typedef struct adpcmcoef_tag {
	short   iCoef1;
	short   iCoef2;
} ADPCMCOEFSET;
387
typedef ADPCMCOEFSET *PADPCMCOEFSET,
388
	*NPADPCMCOEFSET, *LPADPCMCOEFSET;
389

390 391 392 393 394 395 396
typedef struct adpcmwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wSamplesPerBlock;
	WORD            wNumCoef;
	/* FIXME: this should be aCoef[0] */
	ADPCMCOEFSET    aCoef[1];
} ADPCMWAVEFORMAT;
397
typedef ADPCMWAVEFORMAT *PADPCMWAVEFORMAT,
398 399
	*NPADPCMWAVEFORMAT, *LPADPCMWAVEFORMAT;

400 401 402 403 404 405 406 407 408
typedef struct drmwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wReserved;
	ULONG           ulContentId;
	WAVEFORMATEX    wfxSecure;
} DRMWAVEFORMAT;
typedef DRMWAVEFORMAT *PDRMWAVEFORMAT, *NPDRMWAVEFORMAT,
	*LPDRMWAVEFORMAT;

409 410 411 412
typedef struct dvi_adpcmwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wSamplesPerBlock;
} DVIADPCMWAVEFORMAT;
413
typedef DVIADPCMWAVEFORMAT *PDVIADPCMWAVEFORMAT,
414 415 416 417 418 419
	*NPDVIADPCMWAVEFORMAT, *LPDVIADPCMWAVEFORMAT;

typedef struct ima_adpcmwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wSamplesPerBlock;
} IMAADPCMWAVEFORMAT;
420
typedef IMAADPCMWAVEFORMAT *PIMAADPCMWAVEFORMAT, *NPIMAADPCMWAVEFORMAT,
421 422 423 424 425 426
	*LPIMAADPCMWAVEFORMAT;

typedef struct mediaspace_adpcmwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wRevision;
} MEDIASPACEADPCMWAVEFORMAT;
427
typedef MEDIASPACEADPCMWAVEFORMAT *PMEDIASPACEADPCMWAVEFORMAT,
428 429 430 431 432 433
	*NPMEDIASPACEADPCMWAVEFORMAT, *LPMEDIASPACEADPCMWAVEFORMAT;

typedef struct sierra_adpcmwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wRevision;
} SIERRAADPCMWAVEFORMAT;
434
typedef SIERRAADPCMWAVEFORMAT *PSIERRAADPCMWAVEFORMAT,
435 436 437 438 439 440 441
	*NPSIERRAADPCMWAVEFORMAT, *LPSIERRAADPCMWAVEFORMAT;

typedef struct g723_adpcmwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            cbExtraSize;
	WORD            nAuxBlockSize;
} G723_ADPCMWAVEFORMAT;
442
typedef G723_ADPCMWAVEFORMAT *PG723_ADPCMWAVEFORMAT,
443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472
	*NPG723_ADPCMWAVEFORMAT, *LPG723_ADPCMWAVEFORMAT;

typedef struct digistdwaveformat_tag {
	WAVEFORMATEX    wfx;
} DIGISTDWAVEFORMAT;
typedef DIGISTDWAVEFORMAT *PDIGISTDWAVEFORMAT,
	*NPDIGISTDWAVEFORMAT, *LPDIGISTDWAVEFORMAT;

typedef struct digifixwaveformat_tag {
	WAVEFORMATEX    wfx;
} DIGIFIXWAVEFORMAT;
typedef DIGIFIXWAVEFORMAT *PDIGIFIXWAVEFORMAT,
	*NPDIGIFIXWAVEFORMAT, *LPDIGIFIXWAVEFORMAT;

typedef struct creative_fastspeechformat_tag {
	WAVEFORMATEX    ewf;
} DIALOGICOKIADPCMWAVEFORMAT;
typedef DIALOGICOKIADPCMWAVEFORMAT *PDIALOGICOKIADPCMWAVEFORMAT,
	*NPDIALOGICOKIADPCMWAVEFORMAT, *LPDIALOGICOKIADPCMWAVEFORMAT;

typedef struct yamaha_adpmcwaveformat_tag {
	WAVEFORMATEX    wfx;
} YAMAHA_ADPCMWAVEFORMAT;
typedef YAMAHA_ADPCMWAVEFORMAT *PYAMAHA_ADPCMWAVEFORMAT,
	*NPYAMAHA_ADPCMWAVEFORMAT, *LPYAMAHA_ADPCMWAVEFORMAT;

typedef struct sonarcwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wCompType;
} SONARCWAVEFORMAT;
473
typedef SONARCWAVEFORMAT *PSONARCWAVEFORMAT,
474 475 476 477 478 479 480 481
	*NPSONARCWAVEFORMAT,*LPSONARCWAVEFORMAT;

typedef struct truespeechwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wRevision;
	WORD            nSamplesPerBlock;
	BYTE            abReserved[28];
} TRUESPEECHWAVEFORMAT;
482
typedef TRUESPEECHWAVEFORMAT *PTRUESPEECHWAVEFORMAT,
483 484 485 486 487
	*NPTRUESPEECHWAVEFORMAT, *LPTRUESPEECHWAVEFORMAT;

typedef struct echosc1waveformat_tag {
	WAVEFORMATEX    wfx;
} ECHOSC1WAVEFORMAT;
488
typedef ECHOSC1WAVEFORMAT *PECHOSC1WAVEFORMAT,
489 490 491 492 493
	*NPECHOSC1WAVEFORMAT, *LPECHOSC1WAVEFORMAT;

typedef struct audiofile_af36waveformat_tag {
	WAVEFORMATEX    wfx;
} AUDIOFILE_AF36WAVEFORMAT;
494
typedef AUDIOFILE_AF36WAVEFORMAT *PAUDIOFILE_AF36WAVEFORMAT,
495 496 497 498 499
	*NPAUDIOFILE_AF36WAVEFORMAT, *LPAUDIOFILE_AF36WAVEFORMAT;

typedef struct aptxwaveformat_tag {
	WAVEFORMATEX    wfx;
} APTXWAVEFORMAT;
500
typedef APTXWAVEFORMAT *PAPTXWAVEFORMAT,
501 502 503 504 505
	*NPAPTXWAVEFORMAT, *LPAPTXWAVEFORMAT;

typedef struct audiofile_af10waveformat_tag {
	WAVEFORMATEX    wfx;
} AUDIOFILE_AF10WAVEFORMAT;
506
typedef AUDIOFILE_AF10WAVEFORMAT *PAUDIOFILE_AF10WAVEFORMAT,
507 508 509 510 511 512 513 514 515 516 517
	*NPAUDIOFILE_AF10WAVEFORMAT,  *LPAUDIOFILE_AF10WAVEFORMAT;

typedef struct dolbyac2waveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            nAuxBitsCode;
} DOLBYAC2WAVEFORMAT;

typedef struct gsm610waveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wSamplesPerBlock;
} GSM610WAVEFORMAT;
518
typedef GSM610WAVEFORMAT *PGSM610WAVEFORMAT,
519 520 521 522 523 524
	*NPGSM610WAVEFORMAT, *LPGSM610WAVEFORMAT;

typedef struct adpcmewaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wSamplesPerBlock;
} ADPCMEWAVEFORMAT;
525
typedef ADPCMEWAVEFORMAT *PADPCMEWAVEFORMAT,
526 527 528 529 530 531
	*NPADPCMEWAVEFORMAT, *LPADPCMEWAVEFORMAT;

typedef struct contres_vqlpcwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wSamplesPerBlock;
} CONTRESVQLPCWAVEFORMAT;
532
typedef CONTRESVQLPCWAVEFORMAT *PCONTRESVQLPCWAVEFORMAT,
533 534 535 536 537 538
	*NPCONTRESVQLPCWAVEFORMAT, *LPCONTRESVQLPCWAVEFORMAT;

typedef struct digirealwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wSamplesPerBlock;
} DIGIREALWAVEFORMAT;
539
typedef DIGIREALWAVEFORMAT *PDIGIREALWAVEFORMAT,
540 541 542 543 544 545
	*NPDIGIREALWAVEFORMAT, *LPDIGIREALWAVEFORMAT;

typedef struct digiadpcmmwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wSamplesPerBlock;
} DIGIADPCMWAVEFORMAT;
546
typedef DIGIADPCMWAVEFORMAT *PDIGIADPCMWAVEFORMAT,
547 548 549 550 551 552
	*NPDIGIADPCMWAVEFORMAT, *LPDIGIADPCMWAVEFORMAT;

typedef struct contres_cr10waveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wSamplesPerBlock;
} CONTRESCR10WAVEFORMAT;
553
typedef CONTRESCR10WAVEFORMAT *PCONTRESCR10WAVEFORMAT,
554 555 556 557 558 559
	*NPCONTRESCR10WAVEFORMAT, *LPCONTRESCR10WAVEFORMAT;

typedef struct nms_vbxadpcmmwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wSamplesPerBlock;
} NMS_VBXADPCMWAVEFORMAT;
560
typedef NMS_VBXADPCMWAVEFORMAT *PNMS_VBXADPCMWAVEFORMAT,
561 562 563 564 565 566 567 568 569 570 571 572 573
	*NPNMS_VBXADPCMWAVEFORMAT, *LPNMS_VBXADPCMWAVEFORMAT;

typedef struct g721_adpcmwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            nAuxBlockSize;
} G721_ADPCMWAVEFORMAT;
typedef G721_ADPCMWAVEFORMAT *PG721_ADPCMWAVEFORMAT,
	*NG721_ADPCMWAVEFORMAT, *LPG721_ADPCMWAVEFORMAT;

typedef struct creative_adpcmwaveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wRevision;
} CREATIVEADPCMWAVEFORMAT;
574
typedef CREATIVEADPCMWAVEFORMAT *PCREATIVEADPCMWAVEFORMAT,
575 576 577 578 579 580
	*NPCREATIVEADPCMWAVEFORMAT, *LPCREATIVEADPCMWAVEFORMAT;

typedef struct creative_fastspeech8format_tag {
	WAVEFORMATEX    wfx;
	WORD wRevision;
} CREATIVEFASTSPEECH8WAVEFORMAT;
581
typedef CREATIVEFASTSPEECH8WAVEFORMAT *PCREATIVEFASTSPEECH8WAVEFORMAT,
582 583 584 585 586 587
	*NPCREATIVEFASTSPEECH8WAVEFORMAT, *LPCREATIVEFASTSPEECH8WAVEFORMAT;

typedef struct creative_fastspeech10format_tag {
	WAVEFORMATEX    wfx;
	WORD wRevision;
} CREATIVEFASTSPEECH10WAVEFORMAT;
588
typedef CREATIVEFASTSPEECH10WAVEFORMAT *PCREATIVEFASTSPEECH10WAVEFORMAT,
589 590 591 592 593 594 595 596 597 598 599 600
	*NPCREATIVEFASTSPEECH10WAVEFORMAT, *LPCREATIVEFASTSPEECH10WAVEFORMAT;

typedef struct fmtowns_snd_waveformat_tag {
	WAVEFORMATEX    wfx;
	WORD            wRevision;
} FMTOWNS_SND_WAVEFORMAT;
typedef FMTOWNS_SND_WAVEFORMAT *PFMTOWNS_SND_WAVEFORMAT,
	*NPFMTOWNS_SND_WAVEFORMAT, *LPFMTOWNS_SND_WAVEFORMAT;

typedef struct oligsmwaveformat_tag {
	WAVEFORMATEX    wfx;
} OLIGSMWAVEFORMAT;
601
typedef OLIGSMWAVEFORMAT *POLIGSMWAVEFORMAT,
602 603 604 605 606
	*NPOLIGSMWAVEFORMAT, *LPOLIGSMWAVEFORMAT;

typedef struct oliadpcmwaveformat_tag {
	WAVEFORMATEX    wfx;
} OLIADPCMWAVEFORMAT;
607
typedef OLIADPCMWAVEFORMAT *POLIADPCMWAVEFORMAT,
608 609 610 611 612
	*NPOLIADPCMWAVEFORMAT, *LPOLIADPCMWAVEFORMAT;

typedef struct olicelpwaveformat_tag {
	WAVEFORMATEX    wfx;
} OLICELPWAVEFORMAT;
613
typedef OLICELPWAVEFORMAT *POLICELPWAVEFORMAT,
614 615 616 617 618
	*NPOLICELPWAVEFORMAT, *LPOLICELPWAVEFORMAT;

typedef struct olisbcwaveformat_tag {
	WAVEFORMATEX    wfx;
} OLISBCWAVEFORMAT;
619
typedef OLISBCWAVEFORMAT *POLISBCWAVEFORMAT,
620 621 622 623 624
	*NPOLISBCWAVEFORMAT, *LPOLISBCWAVEFORMAT;

typedef struct olioprwaveformat_tag {
	WAVEFORMATEX    wfx;
} OLIOPRWAVEFORMAT;
625
typedef OLIOPRWAVEFORMAT *POLIOPRWAVEFORMAT,
626 627 628 629 630
	*NPOLIOPRWAVEFORMAT, *LPOLIOPRWAVEFORMAT;

typedef struct csimaadpcmwaveformat_tag {
	WAVEFORMATEX    wfx;
} CSIMAADPCMWAVEFORMAT;
631
typedef CSIMAADPCMWAVEFORMAT *PCSIMAADPCMWAVEFORMAT,
632
	*NPCSIMAADPCMWAVEFORMAT, *LPCSIMAADPCMWAVEFORMAT;
633

634
typedef struct mpeg1waveformat_tag {
635 636 637 638 639 640 641 642 643
	WAVEFORMATEX	wfx;
	WORD		fwHeadLayer;
	DWORD		dwHeadBitrate;
	WORD		fwHeadMode;
	WORD		fwHeadModeExt;
	WORD		wHeadEmphasis;
	WORD		fwHeadFlags;
	DWORD		dwPTSLow;
	DWORD		dwPTSHigh;
644 645 646
} MPEG1WAVEFORMAT;
typedef MPEG1WAVEFORMAT *PMPEG1WAVEFORMAT,
	*NPMPEG1WAVEFORMAT, *LPMPEG1WAVEFORMAT;
647 648 649 650 651 652 653 654 655 656 657 658 659 660 661

#define	ACM_MPEG_LAYER1		0x0001
#define	ACM_MPEG_LAYER2		0x0002
#define	ACM_MPEG_LAYER3		0x0004

#define	ACM_MPEG_STEREO		0x0001
#define	ACM_MPEG_JOINTSTEREO	0x0002
#define	ACM_MPEG_DUALCHANNEL	0x0004
#define	ACM_MPEG_SINGLECHANNEL	0x0008
#define	ACM_MPEG_PRIVATEBIT	0x0001
#define	ACM_MPEG_COPYRIGHT	0x0002
#define	ACM_MPEG_ORIGINALHOME	0x0004
#define	ACM_MPEG_PROTECTIONBIT	0x0008
#define	ACM_MPEG_ID_MPEG1	0x0010

662
typedef struct mpeglayer3waveformat_tag {
663 664 665 666 667 668 669
	WAVEFORMATEX	wfx;
	WORD		wID;
	DWORD		fdwFlags;
	WORD		nBlockSize;
	WORD		nFramesPerBlock;
	WORD		nCodecDelay;
} MPEGLAYER3WAVEFORMAT;
670 671
typedef MPEGLAYER3WAVEFORMAT *PMPEGLAYER3WAVEFORMAT,
	*NPMPEGLAYER3WAVEFORMAT, *LPMPEGLAYER3WAVEFORMAT;
672

673 674 675
#define MPEGLAYER3_WFX_EXTRA_BYTES   12

#define MPEGLAYER3_ID_UNKNOWN           0
676 677 678 679 680 681 682
#define MPEGLAYER3_ID_MPEG		1
#define MPEGLAYER3_ID_CONSTANTFRAMESIZE	2

#define MPEGLAYER3_FLAG_PADDING_ISO	0x00000000
#define MPEGLAYER3_FLAG_PADDING_ON	0x00000001
#define MPEGLAYER3_FLAG_PADDING_OFF	0x00000002

683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718
typedef struct msaudio1waveformat_tag {
	WAVEFORMATEX wfx;
	WORD         wSamplesPerBlock;
	WORD         wEncodeOptions;
} MSAUDIO1WAVEFORMAT, *LPMSAUDIO1WAVEFORMAT;

#define WMAUDIO_BITS_PER_SAMPLE 16
#define WMAUDIO_MAX_CHANNELS     2

#define MSAUDIO1_BITS_PER_SAMPLE     WMAUDIO_BITS_PER_SAMPLE
#define MSAUDIO1_MAX_CHANNELS        WMAUDIO_MAX_CHANNELS
#define MSAUDIO1_WFX_EXTRA_BYTES     (sizeof(MSAUDIO1WAVEFORMAT) - sizeof(WAVEFORMATEX))

typedef struct wmaudio2waveformat_tag {
	WAVEFORMATEX wfx;
	DWORD        dwSamplesPerBlock;
	WORD         wEncodeOptions;
	DWORD        dwSuperBlockAlign;
} WMAUDIO2WAVEFORMAT, *LPWMAUDIO2WAVEFORMAT;

#define WMAUDIO2_BITS_PER_SAMPLE     WMAUDIO_BITS_PER_SAMPLE
#define WMAUDIO2_MAX_CHANNELS        WMAUDIO_MAX_CHANNELS
#define WMAUDIO2_WFX_EXTRA_BYTES     (sizeof(WMAUDIO2WAVEFORMAT) - sizeof(WAVEFORMATEX))

typedef struct wmaudio3waveformat_tag {
	WAVEFORMATEX wfx;
	WORD         wValidBitsPerSample;
	DWORD        dwChannelMask;
	DWORD        dwReserved1;
	DWORD        dwReserved2;
	WORD         wEncodeOptions;
	WORD         wReserved3;
} WMAUDIO3WAVEFORMAT, *LPWMAUDIO3WAVEFORMAT;

#define WMAUDIO3_WFX_EXTRA_BYTES     (sizeof(WMAUDIO3WAVEFORMAT) - sizeof(WAVEFORMATEX))

719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772
#ifdef GUID_DEFINED

#ifndef _WAVEFORMATEXTENSIBLE_
#define _WAVEFORMATEXTENSIBLE_
typedef struct {
    WAVEFORMATEX    Format;
    union {
        WORD        wValidBitsPerSample;
        WORD        wSamplesPerBlock;
        WORD        wReserved;
    } Samples;
    DWORD           dwChannelMask;
    GUID            SubFormat;
} WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE;
#endif /* _WAVEFORMATEXTENSIBLE_ */

#endif /* GUID_DEFINED */

typedef WAVEFORMATEXTENSIBLE    WAVEFORMATPCMEX;
typedef WAVEFORMATPCMEX*        PWAVEFORMATPCMEX;
typedef WAVEFORMATPCMEX*        NPWAVEFORMATPCMEX;
typedef WAVEFORMATPCMEX*        LPWAVEFORMATPCMEX;

typedef WAVEFORMATEXTENSIBLE    WAVEFORMATIEEEFLOATEX;
typedef WAVEFORMATIEEEFLOATEX*  PWAVEFORMATIEEEFLOATEX;
typedef WAVEFORMATIEEEFLOATEX*  NPWAVEFORMATIEEEFLOATEX;
typedef WAVEFORMATIEEEFLOATEX*  LPWAVEFORMATIEEEFLOATEX;

#ifndef _SPEAKER_POSITIONS_
#define _SPEAKER_POSITIONS_

#define SPEAKER_FRONT_LEFT              0x00000001
#define SPEAKER_FRONT_RIGHT             0x00000002
#define SPEAKER_FRONT_CENTER            0x00000004
#define SPEAKER_LOW_FREQUENCY           0x00000008
#define SPEAKER_BACK_LEFT               0x00000010
#define SPEAKER_BACK_RIGHT              0x00000020
#define SPEAKER_FRONT_LEFT_OF_CENTER    0x00000040
#define SPEAKER_FRONT_RIGHT_OF_CENTER   0x00000080
#define SPEAKER_BACK_CENTER             0x00000100
#define SPEAKER_SIDE_LEFT               0x00000200
#define SPEAKER_SIDE_RIGHT              0x00000400
#define SPEAKER_TOP_CENTER              0x00000800
#define SPEAKER_TOP_FRONT_LEFT          0x00001000
#define SPEAKER_TOP_FRONT_CENTER        0x00002000
#define SPEAKER_TOP_FRONT_RIGHT         0x00004000
#define SPEAKER_TOP_BACK_LEFT           0x00008000
#define SPEAKER_TOP_BACK_CENTER         0x00010000
#define SPEAKER_TOP_BACK_RIGHT          0x00020000
#define SPEAKER_RESERVED                0x7FFC0000
#define SPEAKER_ALL                     0x80000000

#endif /* _SPEAKER_POSITIONS_ */

773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805
/* DIB stuff */

#ifndef BI_BITFIELDS
#define BI_BITFIELDS     3
#endif

#ifndef QUERYDIBSUPPORT
#define	QUERYDIBSUPPORT		3073
#define	QDI_SETDIBITS		1
#define	QDI_GETDIBITS		2
#define	QDI_DIBTOSCREEN		4
#define	QDI_STRETCHDIB		8
#endif

#ifndef NOBITMAP
typedef struct tagEXBMINFOHEADER {
    BITMAPINFOHEADER bmi;
    DWORD biExtDataOffset;
} EXBMINFOHEADER;
#endif


/* Video stuff */

#ifndef NONEWIC

#ifndef ICTYPE_VIDEO
#define ICTYPE_VIDEO		mmioFOURCC('v', 'i', 'd', 'c')
#define ICTYPE_AUDIO		mmioFOURCC('a', 'u', 'd', 'c')
#endif

#endif

806 807
#include <poppack.h>

808
#endif /* __WINE_MMREG_H */
809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842

#else /* __WIDL__ */

cpp_quote("#if 0")
#pragma pack(push, 1)

typedef struct tWAVEFORMATEX {
    WORD wFormatTag;
    WORD nChannels;
    DWORD nSamplesPerSec;
    DWORD nAvgBytesPerSec;
    WORD nBlockAlign;
    WORD wBitsPerSample;
    WORD cbSize;
    [size_is(cbSize)] BYTE pExtraBytes[];
} WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX;

typedef struct {
    WORD wFormatTag;
    WORD nChannels;
    DWORD nSamplesPerSec;
    DWORD nAvgBytesPerSec;
    WORD nBlockAlign;
    WORD wBitsPerSample;
    WORD cbSize;
    WORD wValidBitsPerSample;
    DWORD dwChannelMask;
    GUID SubFormat;
} WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE;

#pragma pack(pop)
cpp_quote("#endif")

#endif /* __WIDL__ */