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