#ifndef WAV_H_INCLUDED #define WAV_H_INCLUDED #ifdef _WIN32 #pragma pack(push,1) #endif typedef struct { unsigned short format ; unsigned short channels ; unsigned int samplerate ; unsigned int bytespersec ; unsigned short blockalign ; unsigned short bitwidth ; } MIN_WAV_FMT ; typedef struct { unsigned short format ; unsigned short channels ; unsigned int samplerate ; unsigned int bytespersec ; unsigned short blockalign ; unsigned short bitwidth ; unsigned short extrabytes ; unsigned short dummy ; } WAV_FMT_SIZE20 ; typedef struct { unsigned short format ; unsigned short channels ; unsigned int samplerate ; unsigned int bytespersec ; unsigned short blockalign ; unsigned short bitwidth ; unsigned short extrabytes ; unsigned short samplesperblock ; unsigned short numcoeffs ; struct { short coeff1 ; short coeff2 ; } coeffs [7] ; } MS_ADPCM_WAV_FMT ; typedef struct { unsigned short format ; unsigned short channels ; unsigned int samplerate ; unsigned int bytespersec ; unsigned short blockalign ; unsigned short bitwidth ; unsigned short extrabytes ; unsigned short samplesperblock ; } IMA_ADPCM_WAV_FMT ; typedef struct { unsigned short format ; unsigned short channels ; unsigned int samplerate ; unsigned int bytespersec ; unsigned short blockalign ; unsigned short bitwidth ; unsigned short extrabytes ; unsigned short samplesperblock ; } GSM610_WAV_FMT ; typedef struct { unsigned int esf_field1 ; unsigned short esf_field2 ; unsigned short esf_field3 ; unsigned char esf_field4 [8] ; } EXT_SUBFORMAT ; typedef struct { unsigned short format ; unsigned short channels ; unsigned int samplerate ; unsigned int bytespersec ; unsigned short blockalign ; unsigned short bitwidth ; unsigned short extrabytes ; unsigned short validbits ; unsigned int channelmask ; EXT_SUBFORMAT esf ; } EXTENSIBLE_WAV_FMT ; typedef union { unsigned short format ; MIN_WAV_FMT min ; IMA_ADPCM_WAV_FMT ima ; MS_ADPCM_WAV_FMT msadpcm ; EXTENSIBLE_WAV_FMT ext ; GSM610_WAV_FMT gsm610 ; WAV_FMT_SIZE20 size20 ; char padding [512] ; } WAV_FMT ; typedef struct { unsigned int samples ; } FACT_CHUNK ; /*------------------------------------------------------------------------------------ ** Functions defined in wav_ima_adpcm.c */ int wav_ima_reader_init (SF_PRIVATE *psf, WAV_FMT *fmt) ; int wav_ima_writer_init (SF_PRIVATE *psf) ; /*------------------------------------------------------------------------------------ ** Functions defined in wav_ms_adpcm.c */ int wav_msadpcm_reader_init (SF_PRIVATE *psf, WAV_FMT *fmt) ; int wav_msadpcm_writer_init (SF_PRIVATE *psf) ; /*------------------------------------------------------------------------------------ ** Functions defined in wav_gsm610.c */ int wav_gsm610_reader_init (SF_PRIVATE *psf, WAV_FMT *fmt) ; int wav_gsm610_writer_init (SF_PRIVATE *psf) ; #ifdef _WIN32 #pragma pack(pop,1) #endif #endif