#pragma once #include #include #include "common/common_types.h" #include "common/util/BinaryReader.h" #include "common/util/FileUtil.h" // The header data for a simple wave file struct WaveFileHeader { // wave file header char chunk_id[4]; s32 chunk_size; char format[4]; // format chunk char subchunk1_id[4]; s32 subchunk1_size; s16 aud_format; s16 num_channels; s32 sample_rate; s32 byte_rate; s16 block_align; s16 bits_per_sample; // data chunk char subchunk2_id[4]; s32 subchunk2_size; }; void write_wave_file(const std::vector& left_samples, const std::vector& right_samples, s32 sample_rate, const fs::path& name); std::pair, std::vector> decode_adpcm(BinaryReader& reader, const bool mono); std::vector encode_adpcm(const std::vector& samples);