44 lines
894 B
C
44 lines
894 B
C
|
#ifndef _riff_acm_h_
|
||
|
#define _riff_acm_h_
|
||
|
|
||
|
#include <stdint.h>
|
||
|
#include <stddef.h>
|
||
|
|
||
|
#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_ */
|