void update (AudioProcessor& audioProcessor, bool forceLegacyParamIDs) { clear(); legacyParamIDs = forceLegacyParamIDs; auto numParameters = audioProcessor.getNumParameters(); usingManagedParameters = (audioProcessor.getParameters().size() == numParameters) && (! legacyParamIDs); for (int i = 0; i < numParameters; ++i) { AudioProcessorParameter* param = usingManagedParameters ? audioProcessor.getParameters()[i] : (legacy.add (new LegacyAudioParameter (audioProcessor, i))); params.add (param); } }
static int getParamIndex (AudioProcessor& processor, AudioProcessorParameter* param) noexcept { if (auto* legacy = dynamic_cast<LegacyAudioParameter*> (param)) { return legacy->parameterIndex; } else { auto n = processor.getNumParameters(); jassert (n == processor.getParameters().size()); for (int i = 0; i < n; ++i) { if (processor.getParameters()[i] == param) return i; } } return -1; }