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:
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];