Thanks for testing that. It sounds like the change is working for you, so I’ll try to get it merged at some point during this week.
re. the default constructor arguments, I’m not sure about the best approach. Forcing users to supply a version hint would break source compatibility, and require all of our users to make changes to their code. Not all users are building AU plugins in the first place, and even those who are might not care about Logic in particular. For that reason, checking at runtime and only when JucePlugin_Build_AU=1 seemed preferable. Having to supply all of the other constructor arguments is a bit annoying though.
One option would be to allow setting the version hint after construction, although allowing it to change at runtime makes me a bit uncomfortable. I suppose we could add a (runtime) check that the parameter hint may only be set prior to adding the parameter to an AudioProcessor. This would allow users to avoid setting otherwise-defaulted parameter attributes.
Another option would be a builder-style constructor, something like this:
const auto attributes = AudioParameterBool::Attributes ("id", "name")
.withDefaultValue (true)
.withLabel ("label")
.withVersionHint (2);
const auto param = std::make_unique<AudioParameterBool> (attributes);
Unfortunately, updating would still be a bit annoying due to the new constructor/method names.
I’ll discuss this a bit with the team too, but at the moment I think I’m leaning towards reverting the parameter constructors, and adding a setVersionHint function instead.
