diff options
| author | KiritoDv <kiritodev01@gmail.com> | 2023-09-03 23:29:11 -0600 |
|---|---|---|
| committer | KiritoDv <kiritodev01@gmail.com> | 2023-09-03 23:29:11 -0600 |
| commit | 50b6c6f65bc0da4a2c07e24c75dcd19baba60083 (patch) | |
| tree | 19fd3432904b3ad5cc4ad5ad7274f8a2434f2778 /src/audio/AIFCWriter.cpp | |
| parent | 063224c69d564d6e10dd4febf25caa9f59fccfda (diff) | |
Added full SM64 -> AIFF Decoding
Diffstat (limited to 'src/audio/AIFCWriter.cpp')
| -rw-r--r-- | src/audio/AIFCWriter.cpp | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/src/audio/AIFCWriter.cpp b/src/audio/AIFCWriter.cpp deleted file mode 100644 index 1df5813..0000000 --- a/src/audio/AIFCWriter.cpp +++ /dev/null @@ -1,48 +0,0 @@ -#include "AIFCWriter.h" - -#include "hj/pyutils.h" - -#define ALIGN(val, al) (size_t) ((val + (al - 1)) & -al) - -std::vector<char> AIFCWriter::pack(const std::string& str) { - std::vector<char> result; - result.insert(result.end(), str.begin(), str.end()); - return result; -} - -std::vector<char> AIFCWriter::pstring(const std::vector<char>& data) { - std::vector<char> result; - result.insert(result.end(), data.begin(), data.end()); - if (data.size() % 2 == 0) { - result.push_back('\0'); - } - return result; -} - -void AIFCWriter::add_section(AIFC::MagicValues magic, const std::vector<char>& data) { - sections.emplace_back(magic, data); - total_size += ALIGN(data.size(), 2) + 8; -} - -void AIFCWriter::add_custom_section(const std::string& section, const std::vector<char>& data) { - this->add_section(AIFC::MagicValues::AAPL, pack("stoc") + pstring(pack(section)) + data); -} - -void AIFCWriter::finish() { - // total_size isn't used and is regularly wrong. - // In particular, vadpcm_enc preserves the size of the input file... - total_size += 4; - - out.Write(BSWAP32(AIFC::MagicValues::FORM)); - out.Write((uint32_t) BSWAP32(total_size)); - out.Write(BSWAP32(AIFC::MagicValues::AIFC)); - - for (const auto& section : sections) { - out.Write((uint32_t) BSWAP32(section.first)); - out.Write((uint32_t) BSWAP32(section.second.size())); - out.Write((char*) section.second.data(), section.second.size()); - if(section.second.size() % 2) { - out.Write('\0'); - } - } -} |
