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 a78166a26b89bfde356ec6267af8f5e5888bfd3b
parent 46dd736d3cecd23500622ab948c38b326688b3dd
Author: Tal Aviram <me@talaviram.com>
Date:   Sat, 14 Aug 2021 09:43:50 +0300

controller - parameter now also complies to JUCE parameter interface.

Diffstat:
Msource/jucePlugin/VirusParameter.cpp | 10++++++----
Msource/jucePlugin/VirusParameter.h | 22+++++++++++++++++-----
2 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/source/jucePlugin/VirusParameter.cpp b/source/jucePlugin/VirusParameter.cpp @@ -4,10 +4,12 @@ namespace Virus { - Parameter::Parameter(Controller &ctrl, const Description desc, const uint8_t partNum) : - m_ctrl(ctrl), m_desc(desc), m_partNum(partNum) - { - m_value.addListener(this); + Parameter::Parameter(Controller &ctrl, const Description desc, const uint8_t partNum) : + m_ctrl(ctrl), m_desc(desc), m_partNum(partNum), juce::RangedAudioParameter(genId(), (m_desc.classFlags | Class::GLOBAL) ? "" : ("Ch " + juce::String(m_partNum + 1) + " ") + m_desc.name) + { + m_range.start = m_desc.range.getStart(); + m_range.end = m_desc.range.getEnd(); + m_value.addListener(this); } void Parameter::valueChanged(juce::Value &) diff --git a/source/jucePlugin/VirusParameter.h b/source/jucePlugin/VirusParameter.h @@ -7,8 +7,8 @@ namespace Virus class Controller; - class Parameter : private juce::Value::Listener - { + class Parameter : private juce::Value::Listener, public juce::RangedAudioParameter + { public: enum Class { @@ -52,13 +52,25 @@ namespace Virus const Description getDescription() const { return m_desc; }; - private: + const juce::NormalisableRange<float> &getNormalisableRange() const override { return m_range; } + + float getValue() const override { return m_value.getValue(); } + void setValue(float newValue) override { return m_value.setValue(newValue); }; + float getDefaultValue() const override { return 0; /* maybe return from ROM state? */ } + + float getValueForText(const juce::String &text) const override + { + return m_desc.textToValueFunction(text, m_desc); + } + + private: juce::String genId(); void valueChanged(juce::Value &) override; Controller &m_ctrl; - Description m_desc; - uint8_t m_paramNum, m_partNum; + const Description m_desc; + juce::NormalisableRange<float> m_range; + uint8_t m_paramNum, m_partNum; juce::Value m_value; }; } // namespace Virus