Can you please make AudioProcessorValueTreeState’s methods createAndAddParameter() and getParameter() return a AudioProcessorParameterWithID* instead of just AudioProcessorParameter* ?
This would, for example, to later use AudioProcessorValueTreeState::getRawParameterValue(), by getting the ID of the parameter you created, assuming you have a reference to it, but not to the ID you used to create it.
Sorry, I’m a bit confused about what you want to do. Why would the creation ID be different?
It wouldn’t be - it just makes it easier to get the ID (you don’t have to keep a reference to the ID, once you finished creating the parameter. You can get the ID from the AudioProcessorParameterWithID which would be returned.
AudioProcessorParameterWithID is a direct base class of
AudioProcessorValueTreeState::Parameter, so you can just do
auto* paramWithID = dynamic_cast<AudioProcessorParameterWithID*> (param);
Of course, and even a static_cast would work. But it’s better if the right
class is just returned.
Yes, fair point. There’s no real reason for it to return the base class pointer when it could return the more specialised one.
(In fact, it’s a good general rule: always return the most specialised subclass where possible. Of course if you’re overloading a virtual method that has a fixed return type, you can’t always do this)
This change has been made on the develop branch.