Browse Source

Fixed compatibility with JUCE_FORCE_LEGACY_PARAMETER_AUTOMATION_TYPE

tags/2021-05-28
Tom Poole 5 years ago
parent
commit
0ceadf510b
2 changed files with 20 additions and 24 deletions
  1. +15
    -15
      modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm
  2. +5
    -9
      modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp

+ 15
- 15
modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm View File

@@ -1167,8 +1167,9 @@ private:
| kAudioUnitParameterFlag_HasCFNameString
| kAudioUnitParameterFlag_ValuesHaveStrings);
if (! forceLegacyParamIDs)
flags |= (UInt32) kAudioUnitParameterFlag_IsHighResolution;
#if ! JUCE_FORCE_LEGACY_PARAMETER_AUTOMATION_TYPE
flags |= (UInt32) kAudioUnitParameterFlag_IsHighResolution;
#endif
// Set whether the param is automatable (unnamed parameters aren't allowed to be automated).
if (name.isEmpty() || ! parameter->isAutomatable())
@@ -1193,24 +1194,23 @@ private:
}
else
{
if (! forceLegacyParamIDs)
#if ! JUCE_FORCE_LEGACY_PARAMETER_AUTOMATION_TYPE
if (parameter->isDiscrete())
{
if (parameter->isDiscrete())
{
unit = parameter->isBoolean() ? kAudioUnitParameterUnit_Boolean : kAudioUnitParameterUnit_Indexed;
auto maxValue = getMaximumParameterValue (parameter);
auto numSteps = parameter->getNumSteps();
unit = parameter->isBoolean() ? kAudioUnitParameterUnit_Boolean : kAudioUnitParameterUnit_Indexed;
auto maxValue = getMaximumParameterValue (parameter);
auto numSteps = parameter->getNumSteps();
// Some hosts can't handle the huge numbers of discrete parameter values created when
// using the default number of steps.
jassert (numSteps != AudioProcessor::getDefaultNumParameterSteps());
// Some hosts can't handle the huge numbers of discrete parameter values created when
// using the default number of steps.
jassert (numSteps != AudioProcessor::getDefaultNumParameterSteps());
valueStrings.reset ([NSMutableArray new]);
valueStrings.reset ([NSMutableArray new]);
for (int i = 0; i < numSteps; ++i)
[valueStrings.get() addObject: juceStringToNS (parameter->getText ((float) i / maxValue, 0))];
}
for (int i = 0; i < numSteps; ++i)
[valueStrings.get() addObject: juceStringToNS (parameter->getText ((float) i / maxValue, 0))];
}
#endif
}
AUParameterAddress address = generateAUParameterAddress (parameter);


+ 5
- 9
modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp View File

@@ -423,7 +423,7 @@ public:
{
Param (JuceVST3EditController& editController, AudioProcessorParameter& p,
Vst::ParamID vstParamID, Vst::UnitID vstUnitID,
bool isBypassParameter, bool forceLegacyParamIDs)
bool isBypassParameter)
: owner (editController), param (p)
{
info.id = vstParamID;
@@ -435,7 +435,9 @@ public:
info.stepCount = (Steinberg::int32) 0;
if (! forceLegacyParamIDs && param.isDiscrete())
#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);
@@ -954,12 +956,6 @@ private:
if (parameters.getParameterCount() <= 0)
{
#if JUCE_FORCE_USE_LEGACY_PARAM_IDS
const bool forceLegacyParamIDs = true;
#else
const bool forceLegacyParamIDs = false;
#endif
auto n = audioProcessor->getNumParameters();
for (int i = 0; i < n; ++i)
@@ -970,7 +966,7 @@ private:
auto unitID = JuceAudioProcessor::getUnitID (parameterGroup);
parameters.addParameter (new Param (*this, *juceParam, vstParamID, unitID,
(vstParamID == audioProcessor->bypassParamID), forceLegacyParamIDs));
(vstParamID == audioProcessor->bypassParamID)));
}
if (pluginInstance->getNumPrograms() > 1)


Loading…
Cancel
Save