From 133b068dcb836cf2c58e26e48c0b5ddc040cffd6 Mon Sep 17 00:00:00 2001 From: ed Date: Tue, 21 Jan 2020 17:14:00 +0000 Subject: [PATCH] Added support for selecting fewer input/output channels than the max supported by the plug-in in the standalone plug-in audio settings --- .../Standalone/juce_StandaloneFilterWindow.h | 35 ++++++------------- 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h b/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h index 0cc15378bd..2069d93ee6 100644 --- a/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h +++ b/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h @@ -255,36 +255,23 @@ public: { DialogWindow::LaunchOptions o; - int minNumInputs = std::numeric_limits::max(), maxNumInputs = 0, - minNumOutputs = std::numeric_limits::max(), maxNumOutputs = 0; - - auto updateMinAndMax = [] (int newValue, int& minValue, int& maxValue) - { - minValue = jmin (minValue, newValue); - maxValue = jmax (maxValue, newValue); - }; + int maxNumInputs = 0, maxNumOutputs = 0; if (channelConfiguration.size() > 0) { - auto defaultConfig = channelConfiguration.getReference (0); - updateMinAndMax ((int) defaultConfig.numIns, minNumInputs, maxNumInputs); - updateMinAndMax ((int) defaultConfig.numOuts, minNumOutputs, maxNumOutputs); + auto& defaultConfig = channelConfiguration.getReference (0); + + maxNumInputs = jmax (0, (int) defaultConfig.numIns); + maxNumOutputs = jmax (0, (int) defaultConfig.numOuts); } if (auto* bus = processor->getBus (true, 0)) - updateMinAndMax (bus->getDefaultLayout().size(), minNumInputs, maxNumInputs); + maxNumInputs = jmax (0, bus->getDefaultLayout().size()); if (auto* bus = processor->getBus (false, 0)) - updateMinAndMax (bus->getDefaultLayout().size(), minNumOutputs, maxNumOutputs); + maxNumOutputs = jmax (0, bus->getDefaultLayout().size()); - minNumInputs = jmin (minNumInputs, maxNumInputs); - minNumOutputs = jmin (minNumOutputs, maxNumOutputs); - - o.content.setOwned (new SettingsComponent (*this, deviceManager, - minNumInputs, - maxNumInputs, - minNumOutputs, - maxNumOutputs)); + o.content.setOwned (new SettingsComponent (*this, deviceManager, maxNumInputs, maxNumOutputs)); o.content->setSize (500, 550); o.dialogTitle = TRANS("Audio/MIDI Settings"); @@ -425,14 +412,12 @@ private: public: SettingsComponent (StandalonePluginHolder& pluginHolder, AudioDeviceManager& deviceManagerToUse, - int minAudioInputChannels, int maxAudioInputChannels, - int minAudioOutputChannels, int maxAudioOutputChannels) : owner (pluginHolder), deviceSelector (deviceManagerToUse, - minAudioInputChannels, maxAudioInputChannels, - minAudioOutputChannels, maxAudioOutputChannels, + 0, maxAudioInputChannels, + 0, maxAudioOutputChannels, true, (pluginHolder.processor.get() != nullptr && pluginHolder.processor->producesMidi()), true, false),