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 5d962e8b4741d866cf9074b1851b27a1b02457a5
parent debe78c20542d80966efb05ae7c1d11647bc6e12
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Thu, 19 May 2022 18:23:11 +0200

additional packet parsing variants

Diffstat:
Msource/jucePluginLib/controller.cpp | 23++++++++++++++++++++++-
Msource/jucePluginLib/controller.h | 2++
2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/source/jucePluginLib/controller.cpp b/source/jucePluginLib/controller.cpp @@ -197,13 +197,34 @@ namespace pluginLib return true; } + bool Controller::parseMidiPacket(const MidiPacket& _packet, MidiPacket::Data& _data, MidiPacket::ParamValues& _parameterValues, const std::vector<uint8_t>& _src) const + { + _data.clear(); + _parameterValues.clear(); + return _packet.parse(_data, _parameterValues, m_descriptions, _src); + } + bool Controller::parseMidiPacket(const std::string& _name, MidiPacket::Data& _data, MidiPacket::ParamValues& _parameterValues, const std::vector<uint8_t>& _src) const { auto* m = getMidiPacket(_name); assert(m); if(!m) return false; + return parseMidiPacket(*m, _data, _parameterValues, _src); + } - return m->parse(_data, _parameterValues, m_descriptions, _src); + bool Controller::parseMidiPacket(std::string& _name, MidiPacket::Data& _data, MidiPacket::ParamValues& _parameterValues, const std::vector<uint8_t>& _src) const + { + const auto packets = m_descriptions.getMidiPackets(); + + for (const auto& packet : packets) + { + if(!parseMidiPacket(packet.second, _data, _parameterValues, _src)) + continue; + + _name = packet.first; + return true; + } + return false; } } diff --git a/source/jucePluginLib/controller.h b/source/jucePluginLib/controller.h @@ -26,7 +26,9 @@ namespace pluginLib bool createMidiDataFromPacket(std::vector<uint8_t>& _sysex, const std::string& _packetName, const std::map<MidiDataType, uint8_t>& _params, uint8_t _part) const; + bool parseMidiPacket(const MidiPacket& _packet, MidiPacket::Data& _data, MidiPacket::ParamValues& _parameterValues, const std::vector<uint8_t>& _src) const; bool parseMidiPacket(const std::string& _name, MidiPacket::Data& _data, MidiPacket::ParamValues& _parameterValues, const std::vector<uint8_t>& _src) const; + bool parseMidiPacket(std::string& _name, MidiPacket::Data& _data, MidiPacket::ParamValues& _parameterValues, const std::vector<uint8_t>& _src) const; protected: virtual Parameter* createParameter(Controller& _controller, const Description& _desc, uint8_t _part, int _uid) = 0;