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__ */ 576