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