diff options
Diffstat (limited to 'src/factories/AudioHeaderFactory.cpp')
| -rw-r--r-- | src/factories/AudioHeaderFactory.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/factories/AudioHeaderFactory.cpp b/src/factories/AudioHeaderFactory.cpp index d1cceb5..8234552 100644 --- a/src/factories/AudioHeaderFactory.cpp +++ b/src/factories/AudioHeaderFactory.cpp @@ -1,9 +1,29 @@ #include "AudioHeaderFactory.h" #include <vector> +#include "Companion.h" #include "audio/AudioManager.h" +void AudioAIFCExporter::Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) { + + auto samples = AudioManager::Instance->get_samples(); + + int temp = 0; + for(auto& sample : samples){ + LUS::BinaryWriter writer = LUS::BinaryWriter(); + std::string dpath = Companion::Instance->GetOutputPath() + "/" + (*replacement); + if(!exists(fs::path(dpath).parent_path())){ + create_directories(fs::path(dpath).parent_path()); + } + std::ofstream file(dpath + "_bank_" + std::to_string(++temp) + ".aifc", std::ios::binary); + AudioManager::write_aifc(sample, writer); + writer.Finish(file); + file.close(); + } +} + std::optional<std::shared_ptr<IParsedData>> AudioHeaderFactory::parse(std::vector<uint8_t>& buffer, YAML::Node& data) { AudioManager::Instance->initialize(buffer, data); - return std::nullopt; + auto parsed = std::make_shared<IParsedData>(); + return parsed; }
\ No newline at end of file |
