/**************************************************************************** * * waveff.h - Audio Compression Manager File Formats Public Header File * * Copyright (c) 1991-1992 Microsoft Corporation. All Rights Reserved. * ***************************************************************************/ #ifndef _INC_WAVEFF #define _INC_WAVEFF /* #defined if waveff.h has been included */ #ifndef WAVE_FORMAT_PCM /* general waveform format structure (information common to all formats) */ typedef struct waveformat_tag { WORD wFormatTag; /* format type */ WORD nChannels; /* number of channels (i.e. mono, stereo...) */ DWORD nSamplesPerSec; /* sample rate */ DWORD nAvgBytesPerSec; /* for buffer estimation */ WORD nBlockAlign; /* block size of data */ } WAVEFORMAT; typedef WAVEFORMAT *PWAVEFORMAT; typedef WAVEFORMAT NEAR *NPWAVEFORMAT; typedef WAVEFORMAT FAR *LPWAVEFORMAT; /* flags for wFormatTag field of WAVEFORMAT */ #define WAVE_FORMAT_PCM 1 /* specific waveform format structure for PCM data */ typedef struct pcmwaveformat_tag { WAVEFORMAT wf; WORD wBitsPerSample; } PCMWAVEFORMAT; typedef PCMWAVEFORMAT *PPCMWAVEFORMAT; typedef PCMWAVEFORMAT NEAR *NPPCMWAVEFORMAT; typedef PCMWAVEFORMAT FAR *LPPCMWAVEFORMAT; #endif /* WAVE_FORMAT_PCM */ /* general extended waveform format structure */ /* Use this for all NON PCM formats */ /* (information common to all formats) */ typedef struct waveformat_extended_tag { WORD wFormatTag; /* format type */ WORD nChannels; /* number of channels (i.e. mono, stereo...) */ DWORD nSamplesPerSec; /* sample rate */ DWORD nAvgBytesPerSec; /* for buffer estimation */ WORD nBlockAlign; /* block size of data */ WORD wBitsPerSample; /* Number of bits per sample of mono data */ WORD cbSize; /* The count in bytes of the size */ /* SPECIFY TOTAL OR EXTRA */ } WAVEFORMATEX; typedef WAVEFORMATEX *PWAVEFORMATEX; typedef WAVEFORMATEX NEAR *NPWAVEFORMATEX; typedef WAVEFORMATEX FAR *LPWAVEFORMATEX; /* Define data for MS ADPCM */ #define WAVE_FORMAT_ADPCM 2 typedef struct adpcmcoef_tag { short iCoef1; short iCoef2; } ADPCMCOEFSET; typedef ADPCMCOEFSET *PADPCMCOEFSET; typedef ADPCMCOEFSET NEAR *NPADPCMCOEFSET; typedef ADPCMCOEFSET FAR *LPADPCMCOEFSET; typedef struct adpcmwaveformat_tag { WAVEFORMATEX wfx; WORD wSamplesPerBlock; WORD wNumCoef; ADPCMCOEFSET aCoef[]; } ADPCMWAVEFORMAT; typedef ADPCMWAVEFORMAT *PADPCMWAVEFORMAT; typedef ADPCMWAVEFORMAT NEAR *NPADPCMWAVEFORMAT; typedef ADPCMWAVEFORMAT FAR *LPADPCMWAVEFORMAT; #endif /* _INC_WAVEFF */