commit e2b8cab9d0861868ddad47ae0122dd08489d9cbe
parent c424448e380d83791fef634757b1a99c9a95a1f4
Author: Tal Aviram <me@talaviram.com>
Date: Tue, 7 Sep 2021 18:51:15 +0300
controller - parameter, add more audio parameter hooks.
Diffstat:
1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/source/jucePlugin/VirusParameter.h b/source/jucePlugin/VirusParameter.h
@@ -38,11 +38,11 @@ namespace Virus
uint8_t index;
juce::String name;
juce::Range<int> range;
- std::function<juce::String(float, Description ctx)> valueToTextFunction;
- std::function<float(const juce::String &, Description ctx)> textToValueFunction;
- bool isPublic;
- bool isDiscrete;
- bool isBool;
+ std::function<juce::String(float, Description ctx)> valueToTextFunction;
+ std::function<float(const juce::String &, Description ctx)> textToValueFunction;
+ bool isPublic;
+ bool isDiscrete;
+ bool isBool;
};
Parameter(Controller &, const Description desc, uint8_t partNum = 0x40);
@@ -58,10 +58,23 @@ namespace Virus
void setValue(float newValue) override { return m_value.setValue(convertFrom0to1(newValue)); };
void setValueFromSynth(int newValue, bool notifyHost = true);
float getDefaultValue() const override { return 0; /* maybe return from ROM state? */ }
+ bool isDiscrete() const override { return m_desc.isDiscrete; }
+ bool isBoolean() const override { return m_desc.isBool; }
float getValueForText(const juce::String &text) const override
{
- return m_desc.textToValueFunction(text, m_desc);
+ if (m_desc.textToValueFunction)
+ return convertTo0to1(m_desc.textToValueFunction(text, m_desc));
+ else
+ return convertTo0to1(text.getFloatValue());
+ }
+
+ juce::String getText(float normalisedValue, int /*maximumStringLength*/) const override
+ {
+ if (m_desc.valueToTextFunction)
+ return m_desc.valueToTextFunction(convertFrom0to1(normalisedValue), m_desc);
+ else
+ return juce::String(juce::roundToInt(convertFrom0to1(normalisedValue)));
}
// allow 'injecting' additional code for specific parameter.