From 1bb856906be05cd252d783b3f1f697c38c491b3a Mon Sep 17 00:00:00 2001 From: saker Date: Thu, 30 Jan 2025 21:37:06 -0500 Subject: [PATCH] Improve mono compatibility with LADSPA plugins --- include/AudioDevice.h | 11 +++++------ plugins/LadspaBrowser/LadspaDescription.cpp | 3 +-- plugins/LadspaEffect/LadspaEffect.cpp | 3 +-- plugins/LadspaEffect/LadspaSubPluginFeatures.cpp | 2 +- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/include/AudioDevice.h b/include/AudioDevice.h index 376aee26be4..80e392450b2 100644 --- a/include/AudioDevice.h +++ b/include/AudioDevice.h @@ -65,7 +65,6 @@ class AudioDevice virtual void unregisterPort( AudioPort * _port ); virtual void renamePort( AudioPort * _port ); - inline bool supportsCapture() const { return m_supportsCapture; @@ -76,11 +75,6 @@ class AudioDevice return m_sampleRate; } - ch_cnt_t channels() const - { - return m_channels; - } - void processNextBuffer(); virtual void startProcessing() @@ -109,6 +103,11 @@ class AudioDevice void clearS16Buffer( int_sample_t * _outbuf, const fpp_t _frames ); + ch_cnt_t channels() const + { + return m_channels; + } + inline void setSampleRate( const sample_rate_t _new_sr ) { m_sampleRate = _new_sr; diff --git a/plugins/LadspaBrowser/LadspaDescription.cpp b/plugins/LadspaBrowser/LadspaDescription.cpp index 7b1ede1c32e..a61e7f233a2 100644 --- a/plugins/LadspaBrowser/LadspaDescription.cpp +++ b/plugins/LadspaBrowser/LadspaDescription.cpp @@ -74,8 +74,7 @@ LadspaDescription::LadspaDescription( QWidget * _parent, QList pluginNames; for (const auto& plugin : plugins) { - ch_cnt_t audioDeviceChannels = Engine::audioEngine()->audioDev()->channels(); - if (_type != LadspaPluginType::Valid || manager->getDescription(plugin.second)->inputChannels <= audioDeviceChannels) + if (_type != LadspaPluginType::Valid || manager->getDescription(plugin.second)->inputChannels <= DEFAULT_CHANNELS) { pluginNames.push_back(plugin.first); m_pluginKeys.push_back(plugin.second); diff --git a/plugins/LadspaEffect/LadspaEffect.cpp b/plugins/LadspaEffect/LadspaEffect.cpp index 5baa3834c2e..eebe6938cad 100644 --- a/plugins/LadspaEffect/LadspaEffect.cpp +++ b/plugins/LadspaEffect/LadspaEffect.cpp @@ -279,9 +279,8 @@ void LadspaEffect::pluginInstantiation() Ladspa2LMMS * manager = Engine::getLADSPAManager(); // Calculate how many processing units are needed. - const ch_cnt_t lmms_chnls = Engine::audioEngine()->audioDev()->channels(); int effect_channels = manager->getDescription( m_key )->inputChannels; - setProcessorCount( lmms_chnls / effect_channels ); + setProcessorCount(DEFAULT_CHANNELS / effect_channels); // get inPlaceBroken property m_inPlaceBroken = manager->isInplaceBroken( m_key ); diff --git a/plugins/LadspaEffect/LadspaSubPluginFeatures.cpp b/plugins/LadspaEffect/LadspaSubPluginFeatures.cpp index fc46671528a..4349f621fe6 100644 --- a/plugins/LadspaEffect/LadspaSubPluginFeatures.cpp +++ b/plugins/LadspaEffect/LadspaSubPluginFeatures.cpp @@ -157,7 +157,7 @@ void LadspaSubPluginFeatures::listSubPluginKeys( for( l_sortable_plugin_t::const_iterator it = plugins.begin(); it != plugins.end(); ++it ) { - if( lm->getDescription( ( *it ).second )->inputChannels <= Engine::audioEngine()->audioDev()->channels() ) + if (lm->getDescription((*it).second)->inputChannels <= DEFAULT_CHANNELS) { _kl.push_back( ladspaKeyToSubPluginKey( _desc, ( *it ).first, ( *it ).second ) ); }