Can someone make me an example of Parameter Listener for AudioProfeccorValueTreeState?
I have:
parameters.createAndAddParameter("pitchLAVal", "Pitch Left A Value", String(), NormalisableRange<float> (-1.0, 1.0), 1.0, nullptr, nullptr);
And I assume that I can add a listener in this way:
parameters.addParameterListener("pitchLAVal", ??? );
I don’t know what is ???..
t0m
January 19, 2017, 2:14pm
2
If you look at the header file you can see the definition of the function:
void addParameterListener (StringRef parameterID, Listener* listener);
Just above it you can see how a Listener
is defined:
struct JUCE_API Listener
{
Listener();
virtual ~Listener();
/** This callback method is called by the AudioProcessorValueTreeState when a parameter changes. */
virtual void parameterChanged (const String& parameterID, float newValue) = 0;
};
So, the second parameter needs to be a pointer to a class that inherits from Listener (and thus implements the parameterChanged
method). This class will have its parameterChanged
method called on parameter changes.
Ok but in the header I have to derive from the Listener as SliderListener?
Something like:
class IntellifexAudioProcessorEditor : public AudioProcessorEditor,
private SliderListener,
private ButtonListener,
private Timer
Or I have to build a custom class?
t0m
January 20, 2017, 9:39am
4
Neither of those:
class IntellifexAudioProcessorEditor : private AudioProcessorValueTreeState::Listener
: parameters (*this, nullptr)
{
public:
IntellifexAudioProcessorEditor() {
...
parameters.addParameterListener ("yourParamId", this);
}
private:
void parameterChanged (const String& parameterID, float newValue) override
{
// Called when parameter "yourParamId" is changed.
}
}
I would suggest that you do a lot of reading about C++ to learn about how these things work before continuing to use JUCE.
Thank you very much…
Your are right… Even friends of mine said that… But is more funny learning C++ by using JUCE…
Bitwise I didn’t know only the string for the listener in the constructor…
t0m
January 20, 2017, 10:00am
6
You don’t have to add a parameter listener in the constructor - I was just putting it there as an example.
Go and find a good C++ book!