mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-02-08 04:20:09 +00:00
Improve Multi channel AudioUnit code
This commit is contained in:
parent
cee5a77123
commit
28c2bd9d74
1 changed files with 19 additions and 11 deletions
|
|
@ -509,21 +509,29 @@ public:
|
|||
AudioChannelLayout *outLayoutPtr,
|
||||
Boolean &outWritable)
|
||||
{
|
||||
if (element == 0)
|
||||
if (element == 0 && (scope == kAudioUnitScope_Output || scope == kAudioUnitScope_Input))
|
||||
{
|
||||
outWritable = true;
|
||||
if (scope == kAudioUnitScope_Output)
|
||||
|
||||
const int numChannels = (scope == kAudioUnitScope_Output) ? findNumOutputChannels()
|
||||
: findNumInputChannels();
|
||||
|
||||
if (outLayoutPtr != nullptr)
|
||||
{
|
||||
return static_cast<UInt32> (findNumOutputChannels());
|
||||
}
|
||||
else if (scope == kAudioUnitScope_Input)
|
||||
{
|
||||
#if JucePlugin_IsSynth
|
||||
return 0;
|
||||
#else
|
||||
return static_cast<UInt32> (findNumInputChannels());
|
||||
#endif
|
||||
zeromem (outLayoutPtr, numChannels * sizeof (AudioChannelLayout));
|
||||
|
||||
for (int i = 0; i < numChannels; ++i)
|
||||
{
|
||||
AudioChannelLayout& layout = outLayoutPtr [i];
|
||||
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_UseChannelDescriptions;
|
||||
layout.mNumberChannelDescriptions = 1;
|
||||
layout.mChannelDescriptions[0].mChannelLabel = kAudioChannelLabel_Unused;
|
||||
layout.mChannelDescriptions[0].mChannelFlags = kAudioChannelFlags_AllOff;
|
||||
}
|
||||
}
|
||||
|
||||
return numChannels * sizeof (AudioChannelLayout);
|
||||
}
|
||||
|
||||
return JuceAUBaseClass::GetAudioChannelLayout(scope, element, outLayoutPtr, outWritable);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue