#ifndef _riff_acm_h_ #define _riff_acm_h_ #include #include #ifndef WAVE_FORMAT_PCM #define WAVE_FORMAT_PCM 1 #define WAVE_FORMAT_ADPCM 2 #define WAVE_FORMAT_ALAW 6 #define WAVE_FORMAT_MULAW 7 #endif #if defined(__cplusplus) extern "C" { #endif #pragma pack(push) #pragma pack(1) struct wave_format_t { uint16_t wFormatTag; uint16_t nChannels; uint32_t nSamplesPerSec; uint32_t nAvgBytesPerSec; uint16_t nBlockAlign; uint16_t wBitsPerSample; uint16_t cbSize; // WAVEFORMATEXTENSIBLE(only cbSize > 0) uint16_t Samples; uint32_t dwChannelMask; uint8_t SubFormat[16]; }; #pragma pack(pop) int wave_format_load(const uint8_t* data, int bytes, struct wave_format_t* wav); int wave_format_save(const struct wave_format_t* wav, uint8_t* data, int bytes); #if defined(__cplusplus) } #endif #endif /* !_riff_acm_h_ */