77 lines
1.2 KiB
C
77 lines
1.2 KiB
C
/*
|
|
* Overreact - Mr. 4th Dimention
|
|
* Allen Webster
|
|
* 03.21.2015 (mm.dd.yyyy)
|
|
*
|
|
* Audio Layer.
|
|
*/
|
|
|
|
struct Sound{
|
|
i16 *samples;
|
|
i32 channels;
|
|
i32 samples_per_second;
|
|
i32 bytes_per_sample;
|
|
i32 memory_size;
|
|
i32 sample_count;
|
|
real32 scan_speed;
|
|
};
|
|
|
|
#pragma pack(push, 1)
|
|
struct Wav_Chunk{
|
|
i32 id;
|
|
i32 size;
|
|
};
|
|
|
|
struct Wav_Header{
|
|
Wav_Chunk chunk;
|
|
i32 wav_id;
|
|
};
|
|
|
|
struct Wav_Format_Chunk_16{
|
|
Wav_Chunk chunk;
|
|
i16 format_code;
|
|
i16 channels;
|
|
i32 samples_per_second;
|
|
i32 avg_bytes_per_second;
|
|
i16 block_align;
|
|
i16 bits_per_sample;
|
|
};
|
|
|
|
struct Wav_Format_Chunk_18{
|
|
Wav_Format_Chunk_16 s;
|
|
i16 extension_size;
|
|
};
|
|
|
|
struct Wav_Format_Chunk_40{
|
|
Wav_Format_Chunk_16 s;
|
|
i16 extension_size;
|
|
i16 valid_bits_per_sample;
|
|
i32 channel_mask;
|
|
u8 guid[16];
|
|
};
|
|
|
|
struct Wav_Fact_Chunk{
|
|
Wav_Chunk chunk;
|
|
i32 samples_per_channel;
|
|
};
|
|
|
|
struct Wav_Data_Chunk{
|
|
Wav_Chunk chunk;
|
|
};
|
|
|
|
#define WAV_CHUNK_RIFF 0x46464952
|
|
#define WAV_CHUNK_WAVE 0x45564157
|
|
#define WAV_CHUNK_fmt 0x20746D66
|
|
#define WAV_CHUNK_fact 0x74666163
|
|
#define WAV_CHUNK_data 0x61746164
|
|
|
|
#define WAV_FORMAT_PCM 0x0001
|
|
|
|
#pragma pack(pop)
|
|
|
|
struct Wav_File{
|
|
File file;
|
|
Wav_Header header;
|
|
};
|
|
|