From 9dc2c376e5adde08e470f20e84a49638576cea83 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 4 Aug 2018 10:01:02 +0200 Subject: Add convenience internal isParameterInput, and use it --- distrho/src/DistrhoPluginInternal.hpp | 7 ++++++- distrho/src/DistrhoPluginLADSPA+DSSI.cpp | 2 +- distrho/src/DistrhoPluginLV2.cpp | 2 +- distrho/src/DistrhoPluginLV2export.cpp | 8 ++++---- distrho/src/DistrhoPluginVST.cpp | 2 +- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/distrho/src/DistrhoPluginInternal.hpp b/distrho/src/DistrhoPluginInternal.hpp index 6e40a258..785bfbd6 100644 --- a/distrho/src/DistrhoPluginInternal.hpp +++ b/distrho/src/DistrhoPluginInternal.hpp @@ -346,9 +346,14 @@ public: return fData->parameters[index].designation; } + bool isParameterInput(const uint32_t index) const noexcept + { + return (getParameterHints(index) & kParameterIsOutput) == 0x0; + } + bool isParameterOutput(const uint32_t index) const noexcept { - return (getParameterHints(index) & kParameterIsOutput); + return (getParameterHints(index) & kParameterIsOutput) != 0x0; } const String& getParameterName(const uint32_t index) const noexcept diff --git a/distrho/src/DistrhoPluginLADSPA+DSSI.cpp b/distrho/src/DistrhoPluginLADSPA+DSSI.cpp index 34b93fbe..b370da80 100644 --- a/distrho/src/DistrhoPluginLADSPA+DSSI.cpp +++ b/distrho/src/DistrhoPluginLADSPA+DSSI.cpp @@ -187,7 +187,7 @@ public: curValue = *fPortControls[i]; - if (d_isNotEqual(fLastControlValues[i], curValue) && ! fPlugin.isParameterOutput(i)) + if (fPlugin.isParameterInput(i) && d_isNotEqual(fLastControlValues[i], curValue)) { fLastControlValues[i] = curValue; fPlugin.setParameterValue(i, curValue); diff --git a/distrho/src/DistrhoPluginLV2.cpp b/distrho/src/DistrhoPluginLV2.cpp index 5e516932..6eb8be9e 100644 --- a/distrho/src/DistrhoPluginLV2.cpp +++ b/distrho/src/DistrhoPluginLV2.cpp @@ -519,7 +519,7 @@ public: curValue = *fPortControls[i]; - if (d_isNotEqual(fLastControlValues[i], curValue) && ! fPlugin.isParameterOutput(i)) + if (fPlugin.isParameterInput(i) && d_isNotEqual(fLastControlValues[i], curValue)) { fLastControlValues[i] = curValue; diff --git a/distrho/src/DistrhoPluginLV2export.cpp b/distrho/src/DistrhoPluginLV2export.cpp index 2d001731..6ed2f7c5 100644 --- a/distrho/src/DistrhoPluginLV2export.cpp +++ b/distrho/src/DistrhoPluginLV2export.cpp @@ -399,7 +399,7 @@ void lv2_generate_ttl(const char* const basename) bool designated = false; // designation - if (! plugin.isParameterOutput(i)) + if (plugin.isParameterInput(i)) { switch (plugin.getParameterDesignation(i)) { @@ -435,14 +435,14 @@ void lv2_generate_ttl(const char* const basename) if (plugin.getParameterHints(i) & kParameterIsInteger) { - if (! plugin.isParameterOutput(i)) + if (plugin.isParameterInput(i)) pluginString += " lv2:default " + String(int(plugin.getParameterValue(i))) + " ;\n"; pluginString += " lv2:minimum " + String(int(ranges.min)) + " ;\n"; pluginString += " lv2:maximum " + String(int(ranges.max)) + " ;\n"; } else { - if (! plugin.isParameterOutput(i)) + if (plugin.isParameterInput(i)) pluginString += " lv2:default " + String(plugin.getParameterValue(i)) + " ;\n"; pluginString += " lv2:minimum " + String(ranges.min) + " ;\n"; pluginString += " lv2:maximum " + String(ranges.max) + " ;\n"; @@ -531,7 +531,7 @@ void lv2_generate_ttl(const char* const basename) pluginString += " lv2:portProperty lv2:integer ;\n"; if (hints & kParameterIsLogarithmic) pluginString += " lv2:portProperty <" LV2_PORT_PROPS__logarithmic "> ;\n"; - if ((hints & kParameterIsAutomable) == 0 && ! plugin.isParameterOutput(i)) + if ((hints & kParameterIsAutomable) == 0 && plugin.isParameterInput(i)) { pluginString += " lv2:portProperty <" LV2_PORT_PROPS__expensive "> ,\n"; pluginString += " <" LV2_KXSTUDIO_PROPERTIES__NonAutomable "> ;\n"; diff --git a/distrho/src/DistrhoPluginVST.cpp b/distrho/src/DistrhoPluginVST.cpp index c7a39557..e384c4c4 100644 --- a/distrho/src/DistrhoPluginVST.cpp +++ b/distrho/src/DistrhoPluginVST.cpp @@ -1331,7 +1331,7 @@ const AEffect* VSTPluginMain(audioMasterCallback audioMaster) for (uint32_t i=0, count=plugin->getParameterCount(); i < count; ++i) { - if (! plugin->isParameterOutput(i)) + if (plugin->isParameterInput(i)) { // parameter outputs must be all at the end DISTRHO_SAFE_ASSERT_BREAK(! outputsReached); -- cgit v1.2.3