From b15e5ede6cf886682bb509adb99080e0278ea8d5 Mon Sep 17 00:00:00 2001 From: falkTX Date: Wed, 22 Dec 2021 23:29:37 +0000 Subject: [PATCH] Fix main module audio/cv usage Signed-off-by: falkTX --- plugins/Cardinal/src/HostCV.cpp | 10 ++++++---- src/Cardinal/DistrhoPluginInfo.h | 3 +++ src/CardinalFX/DistrhoPluginInfo.h | 3 +++ src/CardinalPlugin.cpp | 26 +++++++++++--------------- src/CardinalSynth/DistrhoPluginInfo.h | 3 +++ src/PluginDriver.hpp | 24 ++++-------------------- 6 files changed, 30 insertions(+), 39 deletions(-) diff --git a/plugins/Cardinal/src/HostCV.cpp b/plugins/Cardinal/src/HostCV.cpp index 1d6d473..f0e4202 100644 --- a/plugins/Cardinal/src/HostCV.cpp +++ b/plugins/Cardinal/src/HostCV.cpp @@ -17,6 +17,8 @@ #include "plugincontext.hpp" +#define CARDINAL_AUDIO_IO_OFFSET 8 + // ----------------------------------------------------------------------------------------------------------- USE_NAMESPACE_DISTRHO; @@ -84,8 +86,8 @@ struct HostCV : Module { for (int i=0; i<5; ++i) { - outputs[i].setVoltage(dataIns[i+2][dataFrame] - outputOffset); - dataOuts[i+2][dataFrame] = inputs[i].getVoltage() + inputOffset; + outputs[i].setVoltage(dataIns[i+CARDINAL_AUDIO_IO_OFFSET][dataFrame] - outputOffset); + dataOuts[i+CARDINAL_AUDIO_IO_OFFSET][dataFrame] = inputs[i].getVoltage() + inputOffset; } inputOffset = params[BIPOLAR_INPUTS_6_10].getValue() > 0.1f ? 5.0f : 0.0f; @@ -93,8 +95,8 @@ struct HostCV : Module { for (int i=5; i<10; ++i) { - outputs[i].setVoltage(dataIns[i+2][dataFrame] - outputOffset); - dataOuts[i+2][dataFrame] = inputs[i].getVoltage() + inputOffset; + outputs[i].setVoltage(dataIns[i+CARDINAL_AUDIO_IO_OFFSET][dataFrame] - outputOffset); + dataOuts[i+CARDINAL_AUDIO_IO_OFFSET][dataFrame] = inputs[i].getVoltage() + inputOffset; } } } diff --git a/src/Cardinal/DistrhoPluginInfo.h b/src/Cardinal/DistrhoPluginInfo.h index 2239c69..80a50e6 100644 --- a/src/Cardinal/DistrhoPluginInfo.h +++ b/src/Cardinal/DistrhoPluginInfo.h @@ -40,4 +40,7 @@ // #define DISTRHO_PLUGIN_LV2_CATEGORY "lv2:AnalyserPlugin" // #define DISTRHO_PLUGIN_VST3_CATEGORIES "Fx|Analyzer" +#define CARDINAL_NUM_AUDIO_INPUTS 8 +#define CARDINAL_NUM_AUDIO_OUTPUTS 8 + #endif // DISTRHO_PLUGIN_INFO_H_INCLUDED diff --git a/src/CardinalFX/DistrhoPluginInfo.h b/src/CardinalFX/DistrhoPluginInfo.h index 919a314..d9891cb 100644 --- a/src/CardinalFX/DistrhoPluginInfo.h +++ b/src/CardinalFX/DistrhoPluginInfo.h @@ -40,4 +40,7 @@ // #define DISTRHO_PLUGIN_LV2_CATEGORY "lv2:AnalyserPlugin" // #define DISTRHO_PLUGIN_VST3_CATEGORIES "Fx|Analyzer" +#define CARDINAL_NUM_AUDIO_INPUTS DISTRHO_PLUGIN_NUM_INPUTS +#define CARDINAL_NUM_AUDIO_OUTPUTS DISTRHO_PLUGIN_NUM_OUTPUTS + #endif // DISTRHO_PLUGIN_INFO_H_INCLUDED diff --git a/src/CardinalPlugin.cpp b/src/CardinalPlugin.cpp index 37db620..46aeb75 100644 --- a/src/CardinalPlugin.cpp +++ b/src/CardinalPlugin.cpp @@ -942,20 +942,18 @@ protected: if (fCurrentAudioDevice != nullptr) { -#if DISTRHO_PLUGIN_NUM_INPUTS != 0 +#if CARDINAL_NUM_AUDIO_INPUTS != 0 for (uint32_t i=0, j=0; iprocessInput(fAudioBufferIn, 2, frames); + for (uint32_t k=0; kprocessInput(fAudioBufferIn, CARDINAL_NUM_AUDIO_INPUTS, frames); #else std::memset(fAudioBufferIn, 0, sizeof(float)*frames); fCurrentAudioDevice->processInput(fAudioBufferIn, 1, frames); #endif } -#if DISTRHO_PLUGIN_NUM_OUTPUTS != 2 +#if CARDINAL_NUM_AUDIO_OUTPUTS != 2 context->dataFrame = 0; context->dataIns = inputs; context->dataOuts = outputs; @@ -965,19 +963,17 @@ protected: if (fCurrentAudioDevice != nullptr) { - std::memset(fAudioBufferOut, 0, sizeof(float)*frames*2); - fCurrentAudioDevice->processOutput(fAudioBufferOut, 2, frames); + std::memset(fAudioBufferOut, 0, sizeof(float)*frames*CARDINAL_NUM_AUDIO_OUTPUTS); + fCurrentAudioDevice->processOutput(fAudioBufferOut, CARDINAL_NUM_AUDIO_OUTPUTS, frames); for (uint32_t i=0, j=0; i 10 - return DISTRHO_PLUGIN_NUM_INPUTS - 10; -#else - return std::min(2, DISTRHO_PLUGIN_NUM_INPUTS); -#endif + return CARDINAL_NUM_AUDIO_INPUTS; } int getNumOutputs() override { -#if DISTRHO_PLUGIN_NUM_OUTPUTS > 10 - return DISTRHO_PLUGIN_NUM_OUTPUTS - 10; -#else - return std::min(2, DISTRHO_PLUGIN_NUM_OUTPUTS); -#endif + return CARDINAL_NUM_AUDIO_OUTPUTS; } int getBlockSize() override @@ -117,20 +109,12 @@ struct CardinalAudioDriver : rack::audio::Driver int getDeviceNumInputs(int) override { -#if DISTRHO_PLUGIN_NUM_INPUTS > 10 - return DISTRHO_PLUGIN_NUM_INPUTS - 10; -#else - return std::min(2, DISTRHO_PLUGIN_NUM_INPUTS); -#endif + return CARDINAL_NUM_AUDIO_INPUTS; } int getDeviceNumOutputs(int) override { -#if DISTRHO_PLUGIN_NUM_OUTPUTS > 10 - return DISTRHO_PLUGIN_NUM_OUTPUTS - 10; -#else - return std::min(2, DISTRHO_PLUGIN_NUM_OUTPUTS); -#endif + return CARDINAL_NUM_AUDIO_OUTPUTS; } rack::audio::Device* subscribe(int, rack::audio::Port* const port) override