From e91e7386b6ee62c2e160f0b92c5ee14ea74b6cd3 Mon Sep 17 00:00:00 2001 From: falkTX Date: Mon, 21 Sep 2020 05:42:45 +0100 Subject: [PATCH] Do not enable all 64 max buses for AU plugins --- source/backend/plugin/CarlaPluginJuce.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/source/backend/plugin/CarlaPluginJuce.cpp b/source/backend/plugin/CarlaPluginJuce.cpp index 5367c26d0..6e1b6e3ce 100644 --- a/source/backend/plugin/CarlaPluginJuce.cpp +++ b/source/backend/plugin/CarlaPluginJuce.cpp @@ -58,10 +58,18 @@ static const ExternalMidiNote kExternalMidiNoteFallback = { -1, 0, 0 }; // ------------------------------------------------------------------------------------------------------------------- // find all available plugin audio ports -static void findMaxTotalChannels(juce::AudioProcessor* const filter, uint32_t& maxTotalIns, uint32_t& maxTotalOuts) +static void findMaxTotalChannels(juce::AudioProcessor* const filter, + const bool isAU, uint32_t& maxTotalIns, uint32_t& maxTotalOuts) { filter->enableAllBuses(); + if (isAU) + { + maxTotalIns = filter->getTotalNumInputChannels(); + maxTotalOuts = filter->getTotalNumOutputChannels(); + return; + } + const int numInputBuses = filter->getBusCount(true); const int numOutputBuses = filter->getBusCount(false); @@ -502,7 +510,8 @@ public: bool needsCtrlIn, needsCtrlOut; needsCtrlIn = needsCtrlOut = false; - findMaxTotalChannels(fInstance.get(), aIns, aOuts); + const bool isAU = fDesc.pluginFormatName == "AU" || fDesc.pluginFormatName == "AudioUnit"; + findMaxTotalChannels(fInstance.get(), isAU, aIns, aOuts); fInstance->refreshParameterList(); params = static_cast(std::max(fInstance->getNumParameters(), 0));