commit 9b6e27e5efd01161114c8e1c3358e4298903db18
parent 42670efbd642f92105a1e2552fb6acf2de7680a4
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Sat, 17 Aug 2024 11:29:36 +0200
focused parameter shouldn't display soft knob name/value but the target parameter name/value while being dragged
Diffstat:
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/source/jucePluginEditorLib/focusedParameter.cpp b/source/jucePluginEditorLib/focusedParameter.cpp
@@ -143,6 +143,8 @@ namespace jucePluginEditorLib
stopTimer();
+ _param = resolveSoftKnob(_param);
+
if(!_param || !_component)
{
m_currentPriority = Priority::None;
@@ -181,13 +183,17 @@ namespace jucePluginEditorLib
const auto* param = m_controller.getParameter(paramIdx, static_cast<uint8_t>(part));
- // do not show soft knob parameter if the softknob is bound to another parameter
- if(param && param->getDescription().isSoftKnob())
+ return param;
+ }
+
+ const pluginLib::Parameter* FocusedParameter::resolveSoftKnob(const pluginLib::Parameter* _sourceParam) const
+ {
+ if(_sourceParam && _sourceParam->getDescription().isSoftKnob())
{
- const auto* softKnob = m_controller.getSoftknob(param);
+ const auto* softKnob = m_controller.getSoftknob(_sourceParam);
if(softKnob && softKnob->isBound())
return softKnob->getTargetParameter();
}
- return param;
+ return _sourceParam;
}
}
diff --git a/source/jucePluginEditorLib/focusedParameter.h b/source/jucePluginEditorLib/focusedParameter.h
@@ -48,8 +48,11 @@ namespace jucePluginEditorLib
void updateControlLabel(juce::Component* _component, Priority _prio);
void updateControlLabel(juce::Component* _component, const pluginLib::Parameter* _param);
void updateControlLabel(juce::Component* _component, const pluginLib::Parameter* _param, Priority _priority);
+
const pluginLib::Parameter* getParameterFromComponent(juce::Component* _component) const;
+ const pluginLib::Parameter* resolveSoftKnob(const pluginLib::Parameter* _sourceParam) const;
+
const pluginLib::ParameterBinding& m_parameterBinding;
const pluginLib::Controller& m_controller;