mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
AAX Client: Remove channel layout compatibility checks
It's important that the plugin always returns the full set of available components. The plugin may be scanned by a separate process from the 'main' DAW process, and these processes may report different compatibility levels. If the scanner has more restricted compatibility than the 'main' DAW process, then some channel layouts may not be registered, and will be hidden in the DAW.
This commit is contained in:
parent
0aaaea265a
commit
4e6440c3d7
1 changed files with 8 additions and 36 deletions
|
|
@ -2546,30 +2546,6 @@ namespace AAXClasses
|
|||
check (desc.AddProcessProc_Native (algorithmProcessCallback, properties));
|
||||
}
|
||||
|
||||
static inline bool hostSupportsStemFormat (AAX_EStemFormat stemFormat, const AAX_IFeatureInfo* featureInfo)
|
||||
{
|
||||
if (featureInfo != nullptr)
|
||||
{
|
||||
AAX_ESupportLevel supportLevel;
|
||||
|
||||
if (featureInfo->SupportLevel (supportLevel) == AAX_SUCCESS && supportLevel == AAX_eSupportLevel_ByProperty)
|
||||
{
|
||||
std::unique_ptr<const AAX_IPropertyMap> props (featureInfo->AcquireProperties());
|
||||
|
||||
// Due to a bug in ProTools 12.8, ProTools thinks that AAX_eStemFormat_Ambi_1_ACN is not supported
|
||||
// To workaround this bug, check if ProTools supports AAX_eStemFormat_Ambi_2_ACN, and, if yes,
|
||||
// we can safely assume that it will also support AAX_eStemFormat_Ambi_1_ACN
|
||||
if (stemFormat == AAX_eStemFormat_Ambi_1_ACN)
|
||||
stemFormat = AAX_eStemFormat_Ambi_2_ACN;
|
||||
|
||||
if (props != nullptr && props->GetProperty ((AAX_EProperty) stemFormat, (AAX_CPropertyValue*) &supportLevel) != 0)
|
||||
return (supportLevel == AAX_eSupportLevel_Supported);
|
||||
}
|
||||
}
|
||||
|
||||
return (AAX_STEM_FORMAT_INDEX (stemFormat) <= 12);
|
||||
}
|
||||
|
||||
static void getPlugInDescription (AAX_IEffectDescriptor& descriptor, [[maybe_unused]] const AAX_IFeatureInfo* featureInfo)
|
||||
{
|
||||
auto plugin = createPluginFilterOfType (AudioProcessor::wrapperType_AAX);
|
||||
|
|
@ -2628,19 +2604,15 @@ namespace AAXClasses
|
|||
auto aaxOutFormat = numOuts > 0 ? aaxFormats[outIdx] : AAX_eStemFormat_None;
|
||||
auto outLayout = channelSetFromStemFormat (aaxOutFormat, false);
|
||||
|
||||
if (hostSupportsStemFormat (aaxInFormat, featureInfo)
|
||||
&& hostSupportsStemFormat (aaxOutFormat, featureInfo))
|
||||
AudioProcessor::BusesLayout fullLayout;
|
||||
|
||||
if (! JuceAAX_Processor::fullBusesLayoutFromMainLayout (*plugin, inLayout, outLayout, fullLayout))
|
||||
continue;
|
||||
|
||||
if (auto* desc = descriptor.NewComponentDescriptor())
|
||||
{
|
||||
AudioProcessor::BusesLayout fullLayout;
|
||||
|
||||
if (! JuceAAX_Processor::fullBusesLayoutFromMainLayout (*plugin, inLayout, outLayout, fullLayout))
|
||||
continue;
|
||||
|
||||
if (auto* desc = descriptor.NewComponentDescriptor())
|
||||
{
|
||||
createDescriptor (*desc, fullLayout, *plugin, pluginIds, numMeters);
|
||||
check (descriptor.AddComponent (desc));
|
||||
}
|
||||
createDescriptor (*desc, fullLayout, *plugin, pluginIds, numMeters);
|
||||
check (descriptor.AddComponent (desc));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue