mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
VST3 Client: Update ParameterInfo default value and numSteps when AudioProcessor changes
This commit is contained in:
parent
bf384427d1
commit
1d90ea72e7
1 changed files with 24 additions and 17 deletions
|
|
@ -810,19 +810,6 @@ public:
|
|||
|
||||
updateParameterInfo();
|
||||
|
||||
info.stepCount = (Steinberg::int32) 0;
|
||||
|
||||
#if ! JUCE_FORCE_LEGACY_PARAMETER_AUTOMATION_TYPE
|
||||
if (param.isDiscrete())
|
||||
#endif
|
||||
{
|
||||
const int numSteps = param.getNumSteps();
|
||||
info.stepCount = (Steinberg::int32) (numSteps > 0 && numSteps < 0x7fffffff ? numSteps - 1 : 0);
|
||||
}
|
||||
|
||||
info.defaultNormalizedValue = param.getDefaultValue();
|
||||
jassert (info.defaultNormalizedValue >= 0 && info.defaultNormalizedValue <= 1.0f);
|
||||
|
||||
// Is this a meter?
|
||||
if ((((unsigned int) param.getCategory() & 0xffff0000) >> 16) == 2)
|
||||
info.flags = Vst::ParameterInfo::kIsReadOnly;
|
||||
|
|
@ -846,9 +833,29 @@ public:
|
|||
return true;
|
||||
};
|
||||
|
||||
auto anyUpdated = updateParamIfChanged (info.title, param.getName (128));
|
||||
anyUpdated |= updateParamIfChanged (info.shortTitle, param.getName (8));
|
||||
anyUpdated |= updateParamIfChanged (info.units, param.getLabel());
|
||||
const auto updateParamIfScalarChanged = [] (auto& toChange, const auto newValue)
|
||||
{
|
||||
return ! exactlyEqual (std::exchange (toChange, newValue), newValue);
|
||||
};
|
||||
|
||||
const auto newStepCount = [&]
|
||||
{
|
||||
#if ! JUCE_FORCE_LEGACY_PARAMETER_AUTOMATION_TYPE
|
||||
if (! param.isDiscrete())
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
const auto numSteps = param.getNumSteps();
|
||||
return (Steinberg::int32) (0 < numSteps && numSteps < 0x7fffffff ? numSteps - 1 : 0);
|
||||
}();
|
||||
|
||||
auto anyUpdated = updateParamIfChanged (info.title, param.getName (128));
|
||||
anyUpdated |= updateParamIfChanged (info.shortTitle, param.getName (8));
|
||||
anyUpdated |= updateParamIfChanged (info.units, param.getLabel());
|
||||
anyUpdated |= updateParamIfScalarChanged (info.stepCount, newStepCount);
|
||||
anyUpdated |= updateParamIfScalarChanged (info.defaultNormalizedValue, (double) param.getDefaultValue());
|
||||
|
||||
jassert (0 <= info.defaultNormalizedValue && info.defaultNormalizedValue <= 1.0);
|
||||
|
||||
return anyUpdated;
|
||||
}
|
||||
|
|
@ -1333,7 +1340,7 @@ public:
|
|||
{
|
||||
for (int32 i = 0; i < parameters.getParameterCount(); ++i)
|
||||
if (auto* param = dynamic_cast<Param*> (parameters.getParameterByIndex (i)))
|
||||
if (param->updateParameterInfo() && (flags & Vst::kParamTitlesChanged) == 0)
|
||||
if (param->updateParameterInfo())
|
||||
flags |= Vst::kParamTitlesChanged;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue