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