mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-02-02 03:20:06 +00:00
AAX: Fixed an issue where an AAX plug-in would hit an internal ProTool assertion if it had meters (and no sidechain)
This commit is contained in:
parent
66fa7e7411
commit
ab13359c66
1 changed files with 24 additions and 3 deletions
|
|
@ -301,9 +301,10 @@ namespace AAXClasses
|
|||
|
||||
PluginInstanceInfo* pluginInstance;
|
||||
int32_t* isPrepared;
|
||||
int32_t* sideChainBuffers;
|
||||
|
||||
float* const* meterTapBuffers;
|
||||
|
||||
int32_t* sideChainBuffers;
|
||||
};
|
||||
|
||||
struct JUCEAlgorithmIDs
|
||||
|
|
@ -326,9 +327,9 @@ namespace AAXClasses
|
|||
pluginInstance = AAX_FIELD_INDEX (JUCEAlgorithmContext, pluginInstance),
|
||||
preparedFlag = AAX_FIELD_INDEX (JUCEAlgorithmContext, isPrepared),
|
||||
|
||||
sideChainBuffers = AAX_FIELD_INDEX (JUCEAlgorithmContext, sideChainBuffers),
|
||||
meterTapBuffers = AAX_FIELD_INDEX (JUCEAlgorithmContext, meterTapBuffers),
|
||||
|
||||
meterTapBuffers = AAX_FIELD_INDEX (JUCEAlgorithmContext, meterTapBuffers)
|
||||
sideChainBuffers = AAX_FIELD_INDEX (JUCEAlgorithmContext, sideChainBuffers)
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -697,6 +698,20 @@ namespace AAXClasses
|
|||
|
||||
break;
|
||||
}
|
||||
case JUCEAlgorithmIDs::meterTapBuffers:
|
||||
{
|
||||
// this is a dummy field only when there are no aaxMeters
|
||||
jassert (aaxMeters.size() == 0);
|
||||
|
||||
{
|
||||
const size_t numObjects = dataSize / sizeof (float*);
|
||||
float** const objects = static_cast<float**> (data);
|
||||
|
||||
for (size_t i = 0; i < numObjects; ++i)
|
||||
new (objects + i) (float*) (nullptr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return AAX_SUCCESS;
|
||||
|
|
@ -1772,6 +1787,12 @@ namespace AAXClasses
|
|||
|
||||
check (desc.AddMeters (JUCEAlgorithmIDs::meterTapBuffers, meterIDs.getData(), static_cast<uint32_t> (numMeters)));
|
||||
}
|
||||
else
|
||||
{
|
||||
// AAX does not allow there to be any gaps in the fields of the algorithm context structure
|
||||
// so just add a dummy one here if there aren't any meters
|
||||
check (desc.AddPrivateData (JUCEAlgorithmIDs::meterTapBuffers, sizeof (uintptr_t)));
|
||||
}
|
||||
|
||||
// Create a property map
|
||||
AAX_IPropertyMap* const properties = desc.NewPropertyMap();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue