summaryrefslogtreecommitdiff
path: root/src/factories/oot/OoTAudioSampleWriter.h
diff options
context:
space:
mode:
authorbriaguya <70942617+briaguya0@users.noreply.github.com>2026-07-24 18:09:55 -0400
committerGitHub <noreply@github.com>2026-07-24 18:09:55 -0400
commit4cae44160693e1beb562e39dc301bd42278be1f9 (patch)
tree5d247f7821a6040221b4bf34d2cae2b87c42d23a /src/factories/oot/OoTAudioSampleWriter.h
parentcd33252589a61d044138f449041a87adee2a8291 (diff)
oot support (#219)
Diffstat (limited to 'src/factories/oot/OoTAudioSampleWriter.h')
-rw-r--r--src/factories/oot/OoTAudioSampleWriter.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/factories/oot/OoTAudioSampleWriter.h b/src/factories/oot/OoTAudioSampleWriter.h
new file mode 100644
index 0000000..5522402
--- /dev/null
+++ b/src/factories/oot/OoTAudioSampleWriter.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "OoTAudioTypes.h"
+
+namespace OoT {
+
+class AudioSampleWriter {
+public:
+ bool Extract(std::vector<uint8_t>& buffer, YAML::Node& node,
+ SafeAudioBankReader& audioBank,
+ const std::vector<AudioTableEntry>& fontTable,
+ const std::vector<AudioTableEntry>& sampleBankTable,
+ std::map<uint32_t, SampleInfo>& sampleMap);
+
+private:
+ void DiscoverSamples(const std::vector<AudioTableEntry>& fontTable, AudioParseContext& ctx);
+ void WriteCompanionFiles(const std::map<uint32_t, SampleInfo>& sampleMap,
+ const std::vector<uint8_t>& audioTable);
+ std::map<int, std::map<int, std::string>> ParseSampleNames(YAML::Node& node);
+ void ParseSample(int bankIndex, uint32_t sampleAddr, uint32_t baseOffset, AudioParseContext& ctx);
+ void ParseSFESample(int bankIndex, uint32_t sfeAddr, uint32_t baseOffset, AudioParseContext& ctx);
+};
+
+} // namespace OoT