gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

commit f80db5d08a34e3eb36a091aacc394f969015e8c0
parent 0acc73fdd324c0c3dfaa2a7afd0f0a8e55d9af01
Author: dsp56300 <lyve2909+githubdsp56300@gmail.com>
Date:   Wed, 14 Jul 2021 02:03:33 +0200

add support for bank requests

Diffstat:
Msource/virusLib/microcontroller.cpp | 33++++++++++++++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)

diff --git a/source/virusLib/microcontroller.cpp b/source/virusLib/microcontroller.cpp @@ -243,7 +243,7 @@ bool Microcontroller::sendSysex(const std::vector<uint8_t>& _data, bool _cancelI std::copy_n(_data.data() + g_sysexPresetHeaderSize, dump.size(), dump.begin()); return writeSingle(bank, program, dump, _cancelIfFull); } - case DUMP_MULTI: + case DUMP_MULTI: { const uint8_t bank = _data[7]; const uint8_t program = _data[8]; @@ -263,6 +263,37 @@ bool Microcontroller::sendSysex(const std::vector<uint8_t>& _data, bool _cancelI buildPresetResponse(DUMP_SINGLE, bank, program, dump); break; } + case REQUEST_BANK_SINGLE: + { + const uint8_t bank = _data[7]; + + if(bank > 0 && bank < m_singles.size()) + { + // eat this, host, whoever you are. 128 single packets + for(uint8_t i=0; i<m_singles[bank].size(); ++i) + { + TPreset data; + const auto res = requestSingle(bank, i, data); + buildPresetResponse(DUMP_SINGLE, bank, i, data); + } + } + break; + } + case REQUEST_BANK_MULTI: + { + const uint8_t bank = _data[7]; + if(bank == 1) + { + // eat this, host, whoever you are. 128 multi packets + for(uint8_t i=0; i<128; ++i) + { + TPreset data; + const auto res = requestMulti(bank, i, data); + buildPresetResponse(DUMP_MULTI, bank, i, data); + } + } + break; + } case REQUEST_MULTI: { const uint8_t bank = _data[7];