mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
AAX: Fixed potential issues with older PT control surfaces not handling large numbers of parameter steps
This commit is contained in:
parent
c9a7b41864
commit
3687710c58
1 changed files with 10 additions and 3 deletions
|
|
@ -849,7 +849,7 @@ namespace AAXClasses
|
|||
AAX_Result GetParameterNumberofSteps (AAX_CParamID paramID, int32_t* result) const
|
||||
{
|
||||
if (auto* param = getParameterFromID (paramID))
|
||||
*result = param->getNumSteps();
|
||||
*result = getSafeNumberOfParameterSteps (*param);
|
||||
|
||||
return AAX_SUCCESS;
|
||||
}
|
||||
|
|
@ -1407,6 +1407,14 @@ namespace AAXClasses
|
|||
return false;
|
||||
}
|
||||
|
||||
// Some older Pro Tools control surfaces (EUCON [PT version 12.4] and
|
||||
// Avid S6 before version 2.1) cannot cope with a large number of
|
||||
// parameter steps.
|
||||
static int32_t getSafeNumberOfParameterSteps (const AudioProcessorParameter& param)
|
||||
{
|
||||
return jmax (param.getNumSteps(), 2048);
|
||||
}
|
||||
|
||||
void addAudioProcessorParameters()
|
||||
{
|
||||
auto& audioProcessor = getPluginInstance();
|
||||
|
|
@ -1448,7 +1456,6 @@ namespace AAXClasses
|
|||
aaxParamIDs.add (paramID);
|
||||
auto aaxParamID = aaxParamIDs.getReference (parameterIndex++).getCharPointer();
|
||||
|
||||
|
||||
paramMap.set (AAXClasses::getAAXParamHash (aaxParamID), juceParam);
|
||||
|
||||
// is this a meter?
|
||||
|
|
@ -1467,7 +1474,7 @@ namespace AAXClasses
|
|||
|
||||
parameter->AddShortenedName (juceParam->getName (4).toRawUTF8());
|
||||
|
||||
auto parameterNumSteps = juceParam->getNumSteps();
|
||||
auto parameterNumSteps = getSafeNumberOfParameterSteps (*juceParam);
|
||||
parameter->SetNumberOfSteps ((uint32_t) parameterNumSteps);
|
||||
|
||||
#if JUCE_FORCE_LEGACY_PARAMETER_AUTOMATION_TYPE
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue