| /* | |
| * 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 | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| */ | |
| #ifndef __WINE_MMREG_H | |
| #define __WINE_MMREG_H | |
| /*********************************************************************** | |
| * Defines/Enums | |
| */ | |
| #ifndef _ACM_WAVEFILTER | |
| #define _ACM_WAVEFILTER | |
| #include "windef.h" | |
| #define WAVE_FILTER_UNKNOWN 0x0000 | |
| #define WAVE_FILTER_DEVELOPMENT 0xFFFF | |
| typedef struct _WAVEFILTER { | |
| DWORD cbStruct; | |
| DWORD dwFilterTag; | |
| DWORD fdwFilter; | |
| DWORD dwReserved[5]; | |
| } WAVEFILTER, *PWAVEFILTER, *NPWAVEFILTER, *LPWAVEFILTER; | |
| #endif /* _ACM_WAVEFILTER */ | |
| #ifndef WAVE_FILTER_VOLUME | |
| #define WAVE_FILTER_VOLUME 0x0001 | |
| 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 */ | |
| #ifndef _WAVEFORMATEX_ | |
| #define _WAVEFORMATEX_ | |
| typedef struct _WAVEFORMATEX { | |
| WORD wFormatTag; | |
| WORD nChannels; | |
| DWORD nSamplesPerSec; | |
| DWORD nAvgBytesPerSec; | |
| WORD nBlockAlign; | |
| WORD wBitsPerSample; | |
| WORD cbSize; | |
| } WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX; | |
| #endif /* _WAVEFORMATEX_ */ | |
| /* WAVE form wFormatTag IDs */ | |
| #define WAVE_FORMAT_UNKNOWN 0x0000 /* Microsoft Corporation */ | |
| #define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */ | |
| #define WAVE_FORMAT_IBM_CVSD 0x0005 /* IBM Corporation */ | |
| #define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */ | |
| #define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */ | |
| #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 */ | |
| #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 /* */ | |
| #define WAVE_FORMAT_DOLBY_AC2 0x0030 /* Dolby Laboratories */ | |
| #define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */ | |
| #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 */ | |
| #define WAVE_FORMAT_G721_ADPCM 0x0040 /* Antex Electronics Corporation */ | |
| #define WAVE_FORMAT_MPEG 0x0050 /* Microsoft Corporation */ | |
| #define WAVE_FORMAT_MPEGLAYER3 0x0055 | |
| #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 */ | |
| #define WAVE_FORMAT_FM_TOWNS_SND 0x0300 /* Fujitsu Corp. */ | |
| #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. */ | |
| #define WAVE_FORMAT_DEVELOPMENT (0xFFFF) | |
| typedef struct adpcmcoef_tag { | |
| short iCoef1; | |
| short iCoef2; | |
| } ADPCMCOEFSET; | |
| typedef ADPCMCOEFSET *PADPCMCOEFSET, | |
| *NPADPCMCOEFSET, *LPADPCMCOEFSET; | |
| typedef struct adpcmwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wSamplesPerBlock; | |
| WORD wNumCoef; | |
| /* FIXME: this should be aCoef[0] */ | |
| ADPCMCOEFSET aCoef[1]; | |
| } ADPCMWAVEFORMAT; | |
| typedef ADPCMWAVEFORMAT *PADPCMWAVEFORMAT, | |
| *NPADPCMWAVEFORMAT, *LPADPCMWAVEFORMAT; | |
| typedef struct dvi_adpcmwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wSamplesPerBlock; | |
| } DVIADPCMWAVEFORMAT; | |
| typedef DVIADPCMWAVEFORMAT *PDVIADPCMWAVEFORMAT, | |
| *NPDVIADPCMWAVEFORMAT, *LPDVIADPCMWAVEFORMAT; | |
| typedef struct ima_adpcmwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wSamplesPerBlock; | |
| } IMAADPCMWAVEFORMAT; | |
| typedef IMAADPCMWAVEFORMAT *PIMAADPCMWAVEFORMAT, *NPIMAADPCMWAVEFORMAT, | |
| *LPIMAADPCMWAVEFORMAT; | |
| typedef struct mediaspace_adpcmwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wRevision; | |
| } MEDIASPACEADPCMWAVEFORMAT; | |
| typedef MEDIASPACEADPCMWAVEFORMAT *PMEDIASPACEADPCMWAVEFORMAT, | |
| *NPMEDIASPACEADPCMWAVEFORMAT, *LPMEDIASPACEADPCMWAVEFORMAT; | |
| typedef struct sierra_adpcmwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wRevision; | |
| } SIERRAADPCMWAVEFORMAT; | |
| typedef SIERRAADPCMWAVEFORMAT *PSIERRAADPCMWAVEFORMAT, | |
| *NPSIERRAADPCMWAVEFORMAT, *LPSIERRAADPCMWAVEFORMAT; | |
| typedef struct g723_adpcmwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD cbExtraSize; | |
| WORD nAuxBlockSize; | |
| } G723_ADPCMWAVEFORMAT; | |
| typedef G723_ADPCMWAVEFORMAT *PG723_ADPCMWAVEFORMAT, | |
| *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; | |
| typedef SONARCWAVEFORMAT *PSONARCWAVEFORMAT, | |
| *NPSONARCWAVEFORMAT,*LPSONARCWAVEFORMAT; | |
| typedef struct truespeechwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wRevision; | |
| WORD nSamplesPerBlock; | |
| BYTE abReserved[28]; | |
| } TRUESPEECHWAVEFORMAT; | |
| typedef TRUESPEECHWAVEFORMAT *PTRUESPEECHWAVEFORMAT, | |
| *NPTRUESPEECHWAVEFORMAT, *LPTRUESPEECHWAVEFORMAT; | |
| typedef struct echosc1waveformat_tag { | |
| WAVEFORMATEX wfx; | |
| } ECHOSC1WAVEFORMAT; | |
| typedef ECHOSC1WAVEFORMAT *PECHOSC1WAVEFORMAT, | |
| *NPECHOSC1WAVEFORMAT, *LPECHOSC1WAVEFORMAT; | |
| typedef struct audiofile_af36waveformat_tag { | |
| WAVEFORMATEX wfx; | |
| } AUDIOFILE_AF36WAVEFORMAT; | |
| typedef AUDIOFILE_AF36WAVEFORMAT *PAUDIOFILE_AF36WAVEFORMAT, | |
| *NPAUDIOFILE_AF36WAVEFORMAT, *LPAUDIOFILE_AF36WAVEFORMAT; | |
| typedef struct aptxwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| } APTXWAVEFORMAT; | |
| typedef APTXWAVEFORMAT *PAPTXWAVEFORMAT, | |
| *NPAPTXWAVEFORMAT, *LPAPTXWAVEFORMAT; | |
| typedef struct audiofile_af10waveformat_tag { | |
| WAVEFORMATEX wfx; | |
| } AUDIOFILE_AF10WAVEFORMAT; | |
| typedef AUDIOFILE_AF10WAVEFORMAT *PAUDIOFILE_AF10WAVEFORMAT, | |
| *NPAUDIOFILE_AF10WAVEFORMAT, *LPAUDIOFILE_AF10WAVEFORMAT; | |
| typedef struct dolbyac2waveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD nAuxBitsCode; | |
| } DOLBYAC2WAVEFORMAT; | |
| typedef struct gsm610waveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wSamplesPerBlock; | |
| } GSM610WAVEFORMAT; | |
| typedef GSM610WAVEFORMAT *PGSM610WAVEFORMAT, | |
| *NPGSM610WAVEFORMAT, *LPGSM610WAVEFORMAT; | |
| typedef struct adpcmewaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wSamplesPerBlock; | |
| } ADPCMEWAVEFORMAT; | |
| typedef ADPCMEWAVEFORMAT *PADPCMEWAVEFORMAT, | |
| *NPADPCMEWAVEFORMAT, *LPADPCMEWAVEFORMAT; | |
| typedef struct contres_vqlpcwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wSamplesPerBlock; | |
| } CONTRESVQLPCWAVEFORMAT; | |
| typedef CONTRESVQLPCWAVEFORMAT *PCONTRESVQLPCWAVEFORMAT, | |
| *NPCONTRESVQLPCWAVEFORMAT, *LPCONTRESVQLPCWAVEFORMAT; | |
| typedef struct digirealwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wSamplesPerBlock; | |
| } DIGIREALWAVEFORMAT; | |
| typedef DIGIREALWAVEFORMAT *PDIGIREALWAVEFORMAT, | |
| *NPDIGIREALWAVEFORMAT, *LPDIGIREALWAVEFORMAT; | |
| typedef struct digiadpcmmwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wSamplesPerBlock; | |
| } DIGIADPCMWAVEFORMAT; | |
| typedef DIGIADPCMWAVEFORMAT *PDIGIADPCMWAVEFORMAT, | |
| *NPDIGIADPCMWAVEFORMAT, *LPDIGIADPCMWAVEFORMAT; | |
| typedef struct contres_cr10waveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wSamplesPerBlock; | |
| } CONTRESCR10WAVEFORMAT; | |
| typedef CONTRESCR10WAVEFORMAT *PCONTRESCR10WAVEFORMAT, | |
| *NPCONTRESCR10WAVEFORMAT, *LPCONTRESCR10WAVEFORMAT; | |
| typedef struct nms_vbxadpcmmwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wSamplesPerBlock; | |
| } NMS_VBXADPCMWAVEFORMAT; | |
| typedef NMS_VBXADPCMWAVEFORMAT *PNMS_VBXADPCMWAVEFORMAT, | |
| *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; | |
| typedef CREATIVEADPCMWAVEFORMAT *PCREATIVEADPCMWAVEFORMAT, | |
| *NPCREATIVEADPCMWAVEFORMAT, *LPCREATIVEADPCMWAVEFORMAT; | |
| typedef struct creative_fastspeech8format_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wRevision; | |
| } CREATIVEFASTSPEECH8WAVEFORMAT; | |
| typedef CREATIVEFASTSPEECH8WAVEFORMAT *PCREATIVEFASTSPEECH8WAVEFORMAT, | |
| *NPCREATIVEFASTSPEECH8WAVEFORMAT, *LPCREATIVEFASTSPEECH8WAVEFORMAT; | |
| typedef struct creative_fastspeech10format_tag { | |
| WAVEFORMATEX wfx; | |
| WORD wRevision; | |
| } CREATIVEFASTSPEECH10WAVEFORMAT; | |
| typedef CREATIVEFASTSPEECH10WAVEFORMAT *PCREATIVEFASTSPEECH10WAVEFORMAT, | |
| *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; | |
| typedef OLIGSMWAVEFORMAT *POLIGSMWAVEFORMAT, | |
| *NPOLIGSMWAVEFORMAT, *LPOLIGSMWAVEFORMAT; | |
| typedef struct oliadpcmwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| } OLIADPCMWAVEFORMAT; | |
| typedef OLIADPCMWAVEFORMAT *POLIADPCMWAVEFORMAT, | |
| *NPOLIADPCMWAVEFORMAT, *LPOLIADPCMWAVEFORMAT; | |
| typedef struct olicelpwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| } OLICELPWAVEFORMAT; | |
| typedef OLICELPWAVEFORMAT *POLICELPWAVEFORMAT, | |
| *NPOLICELPWAVEFORMAT, *LPOLICELPWAVEFORMAT; | |
| typedef struct olisbcwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| } OLISBCWAVEFORMAT; | |
| typedef OLISBCWAVEFORMAT *POLISBCWAVEFORMAT, | |
| *NPOLISBCWAVEFORMAT, *LPOLISBCWAVEFORMAT; | |
| typedef struct olioprwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| } OLIOPRWAVEFORMAT; | |
| typedef OLIOPRWAVEFORMAT *POLIOPRWAVEFORMAT, | |
| *NPOLIOPRWAVEFORMAT, *LPOLIOPRWAVEFORMAT; | |
| typedef struct csimaadpcmwaveformat_tag { | |
| WAVEFORMATEX wfx; | |
| } CSIMAADPCMWAVEFORMAT; | |
| typedef CSIMAADPCMWAVEFORMAT *PCSIMAADPCMWAVEFORMAT, | |
| *NPCSIMAADPCMWAVEFORMAT, *LPCSIMAADPCMWAVEFORMAT; | |
| typedef struct | |
| { | |
| WAVEFORMATEX wfx; | |
| WORD fwHeadLayer; | |
| DWORD dwHeadBitrate; | |
| WORD fwHeadMode; | |
| WORD fwHeadModeExt; | |
| WORD wHeadEmphasis; | |
| WORD fwHeadFlags; | |
| DWORD dwPTSLow; | |
| DWORD dwPTSHigh; | |
| } MPEG1WAVEFORMAT,* PMPEG1WAVEFORMAT; | |
| #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 | |
| typedef struct | |
| { | |
| WAVEFORMATEX wfx; | |
| WORD wID; | |
| DWORD fdwFlags; | |
| WORD nBlockSize; | |
| WORD nFramesPerBlock; | |
| WORD nCodecDelay; | |
| } MPEGLAYER3WAVEFORMAT; | |
| #define MPEGLAYER3_WFX_EXTRA_BYTES 12 | |
| #define MPEGLAYER3_ID_UNKNOWN 0 | |
| #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 | |
| #endif /* __WINE_MMREG_H */ |