2016-01-27 16:42:15 +01:00
|
|
|
#ifndef WAV_H
|
|
|
|
#define WAV_H
|
2015-01-24 09:44:57 +01:00
|
|
|
|
2015-01-26 04:04:27 +01:00
|
|
|
#include "../types.h"
|
2015-01-24 09:44:57 +01:00
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
char chunkId[4];
|
|
|
|
u32 chunkSize;
|
2017-01-20 05:03:33 +01:00
|
|
|
} WavChunkHeader;
|
|
|
|
|
2015-01-24 09:44:57 +01:00
|
|
|
typedef struct {
|
|
|
|
u16 format;
|
|
|
|
u16 numChannels;
|
|
|
|
u32 sampleRate;
|
|
|
|
u32 byteRate;
|
|
|
|
u16 align;
|
|
|
|
u16 bitsPerSample;
|
2017-01-20 05:03:33 +01:00
|
|
|
} WavFormatChunk;
|
2015-01-24 09:44:57 +01:00
|
|
|
|
|
|
|
typedef struct {
|
2017-01-20 05:03:33 +01:00
|
|
|
u32 size;
|
2015-01-26 04:04:27 +01:00
|
|
|
u8* data;
|
2017-01-20 05:03:33 +01:00
|
|
|
} WavDataChunk;
|
2015-01-24 09:44:57 +01:00
|
|
|
|
|
|
|
typedef struct {
|
2017-01-20 05:03:33 +01:00
|
|
|
WavFormatChunk format;
|
|
|
|
WavDataChunk data;
|
2015-01-24 09:44:57 +01:00
|
|
|
} WAV;
|
|
|
|
|
2016-01-24 14:59:14 +01:00
|
|
|
WAV* wav_read(FILE* fd);
|
2015-01-26 04:04:27 +01:00
|
|
|
void wav_free(WAV* wav);
|
2015-01-24 09:44:57 +01:00
|
|
|
|
|
|
|
#endif
|