summaryrefslogtreecommitdiff
path: root/tools/src
diff options
context:
space:
mode:
authorHenny022p <info@henny022.de>2021-11-27 07:23:35 +0100
committerHenny022p <info@henny022.de>2021-11-27 07:23:35 +0100
commit9e9dc07d23d42863f6f7ef5891898c87eb2fa015 (patch)
treeb2b60ad2957db1904e93d66c814ab173d64e0c5f /tools/src
parent48aa1d77201689a72959f630d4eb16a2a11dae6d (diff)
use simple stdio for binary buffer writes instead of filestream
Diffstat (limited to 'tools/src')
-rw-r--r--tools/src/asset_processor/CMakeLists.txt2
-rw-r--r--tools/src/asset_processor/assets/asset.cpp12
-rw-r--r--tools/src/asset_processor/assets/midi.cpp17
3 files changed, 10 insertions, 21 deletions
diff --git a/tools/src/asset_processor/CMakeLists.txt b/tools/src/asset_processor/CMakeLists.txt
index 387b4ab5..4709cd52 100644
--- a/tools/src/asset_processor/CMakeLists.txt
+++ b/tools/src/asset_processor/CMakeLists.txt
@@ -3,6 +3,6 @@ file(GLOB_RECURSE sources *.cpp)
add_executable(asset_processor ${sources})
target_include_directories(asset_processor PRIVATE .)
target_link_libraries(asset_processor PRIVATE project_settings)
-target_link_libraries(asset_processor PRIVATE fmt::fmt nlohmann_json::nlohmann_json filesystem)
+target_link_libraries(asset_processor PRIVATE fmt::fmt nlohmann_json::nlohmann_json filesystem util)
install(TARGETS asset_processor RUNTIME DESTINATION bin)
diff --git a/tools/src/asset_processor/assets/asset.cpp b/tools/src/asset_processor/assets/asset.cpp
index d75f50b9..ff81e810 100644
--- a/tools/src/asset_processor/assets/asset.cpp
+++ b/tools/src/asset_processor/assets/asset.cpp
@@ -1,11 +1,7 @@
#include "asset.h"
-#include <fstream>
+#include <util/file.h>
void BaseAsset::extractBinary(const std::vector<char>& baserom) {
- auto first = baserom.begin() + start;
- auto last = baserom.begin() + start + size;
- std::vector<char> data(first, last);
- std::fstream file(path, std::ios::out | std::ios::binary);
- file.write(&data[0], static_cast<std::streamsize>(data.size()));
- file.close();
-} \ No newline at end of file
+ auto file = util::open_file(path.string(), "w");
+ std::fwrite(baserom.data() + start, 1, static_cast<size_t>(size), file.get());
+}
diff --git a/tools/src/asset_processor/assets/midi.cpp b/tools/src/asset_processor/assets/midi.cpp
index 1a3f1852..1c383877 100644
--- a/tools/src/asset_processor/assets/midi.cpp
+++ b/tools/src/asset_processor/assets/midi.cpp
@@ -4,6 +4,7 @@
#include <filesystem>
#include <iostream>
#include <fstream>
+#include <util/file.h>
#include <nlohmann/json.hpp>
#include <fmt/format.h>
@@ -32,21 +33,13 @@ void MidiAsset::extractBinary(const std::vector<char>& baserom) {
// Extract tracks
{
- auto first = baserom.begin() + start;
- auto last = baserom.begin() + start + headerOffset;
- std::vector<char> data(first, last);
- std::fstream file(tracksPath, std::ios::out | std::ios::binary);
- file.write(&data[0], static_cast<std::streamsize>(data.size()));
- file.close();
+ auto file = util::open_file(tracksPath.string(), "w");
+ std::fwrite(baserom.data() + start, 1, static_cast<size_t>(headerOffset), file.get());
}
// Extract header
{
- auto first = baserom.begin() + start + headerOffset;
- auto last = baserom.begin() + start + size;
- std::vector<char> data(first, last);
- std::fstream file(headerPath, std::ios::out | std::ios::binary);
- file.write(&data[0], static_cast<std::streamsize>(data.size()));
- file.close();
+ auto file = util::open_file(headerPath.string(), "w");
+ std::fwrite(baserom.data() + start + headerOffset, 1, static_cast<size_t>(size - headerOffset), file.get());
}
// Create dummy .s file.