diff --git a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h index 4c498f9b28..a9e22912b7 100644 --- a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h +++ b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h @@ -498,7 +498,7 @@ public: valueRange, defaultParameterValue, AudioProcessorValueTreeStateParameterAttributes().withLabel (labelText) - .withStringFromValueFunction ([valueToTextFunction] (float v, int) { return valueToTextFunction (v); }) + .withStringFromValueFunction (adaptSignature (std::move (valueToTextFunction))) .withValueFromStringFunction (std::move (textToValueFunction)) .withMeta (isMetaParameter) .withAutomatable (isAutomatableParameter) @@ -515,6 +515,14 @@ public: bool isBoolean() const override; private: + static std::function adaptSignature (std::function func) + { + if (func == nullptr) + return nullptr; + + return [func = std::move (func)] (float v, int) { return func (v); }; + } + void valueChanged (float) override; std::function onValueChanged;