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 9ec818b2aee0abbf1d15ead8cbfae4c8e8b064e2
parent b20a5750f09602ca71541a4b8d404277168d0b06
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Fri, 31 May 2024 15:42:14 +0200

parameter binding now using new event system too

Diffstat:
Msource/jucePluginLib/parameterbinding.cpp | 17+++++++++--------
Msource/jucePluginLib/parameterbinding.h | 6+++---
2 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/source/jucePluginLib/parameterbinding.cpp b/source/jucePluginLib/parameterbinding.cpp @@ -171,9 +171,7 @@ namespace pluginLib v->getValueObject().setValue(id - 1); }; - const auto listenerId = m_nextListenerId++; - - v->onValueChanged.emplace_back(listenerId, [this, &_combo, v]() + const auto listenerId = v->evValueChanged.addListener([this, &_combo](pluginLib::Parameter* v) { const auto value = static_cast<int>(v->getValueObject().getValueSource().getValue()); _combo.setSelectedId(value + 1, juce::dontSendNotification); @@ -268,7 +266,7 @@ namespace pluginLib onBind(_boundParameter); } - void ParameterBinding::disableBinding(const BoundParameter& _b) + void ParameterBinding::disableBinding(BoundParameter& _b) { onUnbind(_b); @@ -291,13 +289,16 @@ namespace pluginLib if(button != nullptr) button->getToggleStateValue().referTo(juce::Value()); - if(_b.onChangeListenerId) - _b.parameter->removeListener(_b.onChangeListenerId); + if(_b.onChangeListenerId != ParameterValueChangeListener::InvalidListenerId) + { + _b.parameter->evValueChanged.removeListener(_b.onChangeListenerId); + _b.onChangeListenerId = ParameterValueChangeListener::InvalidListenerId; + } } void ParameterBinding::clearBindings() { - for (const auto& b : m_bindings) + for (auto& b : m_bindings) disableBinding(b); clear(); } @@ -325,7 +326,7 @@ namespace pluginLib m_disabledBindings.clear(); std::swap(m_bindings, m_disabledBindings); - for (const auto& b : m_disabledBindings) + for (auto& b : m_disabledBindings) disableBinding(b); } diff --git a/source/jucePluginLib/parameterbinding.h b/source/jucePluginLib/parameterbinding.h @@ -3,6 +3,7 @@ #include "juce_gui_basics/juce_gui_basics.h" #include "event.h" +#include "parameter.h" namespace juce { @@ -43,7 +44,7 @@ namespace pluginLib juce::Component* component = nullptr; uint32_t type = 0xffffffff; uint8_t part = CurrentPart; - uint32_t onChangeListenerId = 0; + size_t onChangeListenerId = ParameterValueChangeListener::InvalidListenerId; }; Event<BoundParameter> onBind; @@ -76,7 +77,7 @@ namespace pluginLib void removeMouseListener(juce::Slider& _slider); void addBinding(const BoundParameter& _boundParameter); - void disableBinding(const BoundParameter& _b); + void disableBinding(BoundParameter& _b); Controller& m_controller; @@ -87,6 +88,5 @@ namespace pluginLib std::map<const pluginLib::Parameter*, juce::Component*> m_boundParameters; std::map<const juce::Component*, pluginLib::Parameter*> m_boundComponents; std::map<juce::Slider*, MouseListener*> m_sliderMouseListeners; - uint32_t m_nextListenerId = 100000; }; }