summaryrefslogtreecommitdiff
path: root/src/factories/AudioHeaderFactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/factories/AudioHeaderFactory.cpp')
-rw-r--r--src/factories/AudioHeaderFactory.cpp22
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