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 37b267ef77bc7253e0c800def35eb60673c02014
parent fbc7d2b31998db202d6c82a8c84ce18f7133ca55
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Fri,  2 Aug 2024 01:44:11 +0200

dispatch event when current part is changed

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

diff --git a/source/jucePluginLib/controller.cpp b/source/jucePluginLib/controller.cpp @@ -495,6 +495,14 @@ namespace pluginLib return false; } + void Controller::setCurrentPart(const uint8_t _part) + { + if(_part == m_currentPart) + return; + m_currentPart = _part; + onCurrentPartChanged(m_currentPart); + } + bool Controller::parseMidiMessage(const synthLib::SMidiEvent& _e) { if(_e.sysex.empty()) diff --git a/source/jucePluginLib/controller.h b/source/jucePluginLib/controller.h @@ -11,6 +11,8 @@ #include "parameterlinks.h" +#include "event.h" + namespace juce { class AudioProcessor; @@ -27,6 +29,8 @@ namespace pluginLib public: static constexpr uint32_t InvalidParameterIndex = 0xffffffff; + Event<uint8_t> onCurrentPartChanged; + explicit Controller(Processor& _processor, const std::string& _parameterDescJson); ~Controller() override; @@ -59,7 +63,7 @@ namespace pluginLib const auto& getExposedParameters() const { return m_synthParams; } uint8_t getCurrentPart() const { return m_currentPart; } - void setCurrentPart(const uint8_t _part) { m_currentPart = _part; } + virtual void setCurrentPart(uint8_t _part); virtual uint8_t getPartCount() { return 16; } virtual bool parseSysexMessage(const SysEx&, synthLib::MidiEventSource) = 0;