85 lines
2.7 KiB
C
85 lines
2.7 KiB
C
/****************************************************************************
|
|
*
|
|
* 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 */
|