Browse Source

Example of storing a bypass parameter in presets

pull/188/head
JP Cimalando 6 years ago
parent
commit
eab7b99111
1 changed files with 30 additions and 1 deletions
  1. +30
    -1
      examples/Parameters/ExamplePluginParameters.cpp

+ 30
- 1
examples/Parameters/ExamplePluginParameters.cpp View File

@@ -28,13 +28,14 @@ class ExamplePluginParameters : public Plugin
{
public:
ExamplePluginParameters()
: Plugin(9, 2, 0) // 9 parameters, 2 programs, 0 states
: Plugin(10, 2, 0) // 9 parameters, 2 programs, 0 states
{
/**
Initialize all our parameters to their defaults.
In this example all parameters have 0 as default, so we can simply zero them.
*/
std::memset(fParamGrid, 0, sizeof(float)*9);
fBypass = 0;
}
protected:
@@ -162,6 +163,9 @@ The plugin will be treated as an effect, but it will not change the host audio."
case 8:
parameter.name = "bottom-right";
break;
case 9:
parameter.initDesignation(kParameterDesignationBypass);
break;
}
/**
@@ -196,6 +200,14 @@ The plugin will be treated as an effect, but it will not change the host audio."
*/
float getParameterValue(uint32_t index) const override
{
switch (index)
{
case 9:
return fBypass;
}
DISTRHO_SAFE_ASSERT_RETURN(index < 9, 0);
return fParamGrid[index];
}
@@ -204,6 +216,15 @@ The plugin will be treated as an effect, but it will not change the host audio."
*/
void setParameterValue(uint32_t index, float value) override
{
switch (index)
{
case 9:
fBypass = value;
return;
}
DISTRHO_SAFE_ASSERT_RETURN(index < 9,);
fParamGrid[index] = value;
}
@@ -225,6 +246,7 @@ The plugin will be treated as an effect, but it will not change the host audio."
fParamGrid[6] = 0.0f;
fParamGrid[7] = 0.0f;
fParamGrid[8] = 0.0f;
fBypass = 0.0f;
break;
case 1:
fParamGrid[0] = 1.0f;
@@ -236,6 +258,7 @@ The plugin will be treated as an effect, but it will not change the host audio."
fParamGrid[6] = 1.0f;
fParamGrid[7] = 0.0f;
fParamGrid[8] = 1.0f;
fBypass = 0.0f;
break;
}
}
@@ -273,6 +296,12 @@ private:
*/
float fParamGrid[9];
/**
This special parameter indicates the bypassed state of the plugin.
A plugin turns its effect off under the condition fBypass > 0.5.
*/
float fBypass;
/**
Set our plugin class as non-copyable and add a leak detector just in case.
*/


Loading…
Cancel
Save