Browse Source

Add convenience internal isParameterInput, and use it

pull/61/head
falkTX 5 years ago
parent
commit
9dc2c376e5
5 changed files with 13 additions and 8 deletions
  1. +6
    -1
      distrho/src/DistrhoPluginInternal.hpp
  2. +1
    -1
      distrho/src/DistrhoPluginLADSPA+DSSI.cpp
  3. +1
    -1
      distrho/src/DistrhoPluginLV2.cpp
  4. +4
    -4
      distrho/src/DistrhoPluginLV2export.cpp
  5. +1
    -1
      distrho/src/DistrhoPluginVST.cpp

+ 6
- 1
distrho/src/DistrhoPluginInternal.hpp View File

@@ -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


+ 1
- 1
distrho/src/DistrhoPluginLADSPA+DSSI.cpp View File

@@ -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);


+ 1
- 1
distrho/src/DistrhoPluginLV2.cpp View File

@@ -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;



+ 4
- 4
distrho/src/DistrhoPluginLV2export.cpp View File

@@ -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";


+ 1
- 1
distrho/src/DistrhoPluginVST.cpp View File

@@ -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);


Loading…
Cancel
Save