commit 9fefc36a3ef013b51cc29d5daac50a7415333126
parent b088b732f2a0318a7e39b03db249924ca9d509d4
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Wed, 1 May 2024 13:48:05 +0200
add ability to read rom from midi file in memory
Diffstat:
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/source/wLib/wRom.cpp b/source/wLib/wRom.cpp
@@ -43,6 +43,11 @@ namespace wLib
return loadFromSysExBuffer(_buffer, data);
}
+ bool ROM::loadFromMidiData(std::vector<uint8_t>& _buffer, const std::vector<uint8_t>& _midiData)
+ {
+ return loadFromSysExBuffer(_buffer, _midiData, true);
+ }
+
bool ROM::loadFromSysExFile(std::vector<uint8_t>& _buffer, const std::string& _filename)
{
_buffer.clear();
@@ -53,12 +58,12 @@ namespace wLib
return loadFromSysExBuffer(_buffer, buf);
}
- bool ROM::loadFromSysExBuffer(std::vector<unsigned char>& _buffer, const std::vector<uint8_t>& _sysex)
+ bool ROM::loadFromSysExBuffer(std::vector<unsigned char>& _buffer, const std::vector<uint8_t>& _sysex, bool _isMidiFileData/* = false*/)
{
_buffer.reserve(_sysex.size());
std::vector<std::vector<uint8_t>> messages;
- synthLib::MidiToSysex::splitMultipleSysex(messages, _sysex);
+ synthLib::MidiToSysex::splitMultipleSysex(messages, _sysex, _isMidiFileData);
uint16_t expectedCounter = 1;
diff --git a/source/wLib/wRom.h b/source/wLib/wRom.h
@@ -23,8 +23,9 @@ namespace wLib
virtual uint32_t getSize() const = 0;
static bool loadFromMidi(std::vector<uint8_t>& _buffer, const std::string& _filename);
+ static bool loadFromMidiData(std::vector<uint8_t>& _buffer, const std::vector<uint8_t>& _midiData);
static bool loadFromSysExFile(std::vector<uint8_t>& _buffer, const std::string& _filename);
- static bool loadFromSysExBuffer(std::vector<uint8_t> &_buffer, const std::vector<uint8_t> &_sysex);
+ static bool loadFromSysExBuffer(std::vector<uint8_t> &_buffer, const std::vector<uint8_t> &_sysex, bool _isMidiFileData = false);
private:
bool loadFromFile(const std::string& _filename, uint32_t _expectedSize);