mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-23 01:44:22 +00:00
Made the AAX wrapper support the isSuspended() flag
This commit is contained in:
parent
923e8fabdb
commit
e4e78c8591
1 changed files with 30 additions and 19 deletions
|
|
@ -860,33 +860,41 @@ struct AAXClasses
|
|||
const int numIns = pluginInstance->getTotalNumInputChannels();
|
||||
const int numOuts = pluginInstance->getTotalNumOutputChannels();
|
||||
|
||||
const int mainNumIns = numIns > 0 ? pluginInstance->busArrangement.inputBuses.getReference (0).channels.size() : 0;
|
||||
const int sidechain = busUtils.getNumEnabledBuses (true) >= 2 ? sideChainBufferIdx : -1;
|
||||
|
||||
if (numOuts >= numIns)
|
||||
if (pluginInstance->isSuspended())
|
||||
{
|
||||
for (int i = 0; i < numIns; ++i)
|
||||
memcpy (outputs[i], getAudioBufferForInput (inputs, sidechain, mainNumIns, i), (size_t) bufferSize * sizeof (float));
|
||||
|
||||
process (outputs, numOuts, bufferSize, bypass, midiNodeIn, midiNodesOut);
|
||||
for (int i = 0; i < numOuts; ++i)
|
||||
FloatVectorOperations::clear (outputs[i], bufferSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (channelList.size() <= numIns)
|
||||
channelList.insertMultiple (-1, nullptr, 1 + numIns - channelList.size());
|
||||
const int mainNumIns = numIns > 0 ? pluginInstance->busArrangement.inputBuses.getReference (0).channels.size() : 0;
|
||||
const int sidechain = busUtils.getNumEnabledBuses (true) >= 2 ? sideChainBufferIdx : -1;
|
||||
|
||||
float** channels = channelList.getRawDataPointer();
|
||||
|
||||
for (int i = 0; i < numOuts; ++i)
|
||||
if (numOuts >= numIns)
|
||||
{
|
||||
memcpy (outputs[i], getAudioBufferForInput (inputs, sidechain, mainNumIns, i), (size_t) bufferSize * sizeof (float));
|
||||
channels[i] = outputs[i];
|
||||
for (int i = 0; i < numIns; ++i)
|
||||
memcpy (outputs[i], getAudioBufferForInput (inputs, sidechain, mainNumIns, i), (size_t) bufferSize * sizeof (float));
|
||||
|
||||
process (outputs, numOuts, bufferSize, bypass, midiNodeIn, midiNodesOut);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (channelList.size() <= numIns)
|
||||
channelList.insertMultiple (-1, nullptr, 1 + numIns - channelList.size());
|
||||
|
||||
for (int i = numOuts; i < numIns; ++i)
|
||||
channels[i] = const_cast<float*> (getAudioBufferForInput (inputs, sidechain, mainNumIns, i));
|
||||
float** channels = channelList.getRawDataPointer();
|
||||
|
||||
process (channels, numIns, bufferSize, bypass, midiNodeIn, midiNodesOut);
|
||||
for (int i = 0; i < numOuts; ++i)
|
||||
{
|
||||
memcpy (outputs[i], getAudioBufferForInput (inputs, sidechain, mainNumIns, i), (size_t) bufferSize * sizeof (float));
|
||||
channels[i] = outputs[i];
|
||||
}
|
||||
|
||||
for (int i = numOuts; i < numIns; ++i)
|
||||
channels[i] = const_cast<float*> (getAudioBufferForInput (inputs, sidechain, mainNumIns, i));
|
||||
|
||||
process (channels, numIns, bufferSize, bypass, midiNodeIn, midiNodesOut);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1160,7 +1168,10 @@ struct AAXClasses
|
|||
{
|
||||
const JUCEAlgorithmContext& i = **iter;
|
||||
|
||||
int sideChainBufferIdx = static_cast<int> (i.pluginInstance->parameters.supportsSidechain() && i.sideChainBuffers != nullptr ? *i.sideChainBuffers : static_cast<int32_t> (-1));
|
||||
int sideChainBufferIdx = i.pluginInstance->parameters.supportsSidechain() && i.sideChainBuffers != nullptr
|
||||
? static_cast<int> (*i.sideChainBuffers)
|
||||
: -1;
|
||||
|
||||
i.pluginInstance->parameters.process (i.inputChannels, i.outputChannels, sideChainBufferIdx,
|
||||
*(i.bufferSize), *(i.bypass) != 0,
|
||||
getMidiNodeIn(i), getMidiNodeOut(i));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue