summaryrefslogtreecommitdiff
path: root/plugins/ZamVerb/ZamVerbPlugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/ZamVerb/ZamVerbPlugin.cpp')
-rw-r--r--plugins/ZamVerb/ZamVerbPlugin.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/plugins/ZamVerb/ZamVerbPlugin.cpp b/plugins/ZamVerb/ZamVerbPlugin.cpp
index 1bb3db3..0668ee3 100644
--- a/plugins/ZamVerb/ZamVerbPlugin.cpp
+++ b/plugins/ZamVerb/ZamVerbPlugin.cpp
@@ -24,6 +24,7 @@ START_NAMESPACE_DISTRHO
ZamVerbPlugin::ZamVerbPlugin()
: Plugin(paramCount, 1, 1) // 1 program, 1 states
{
+ signal = false;
swap = 0;
clv[swap] = new LV2convolv();
clv[swap]->clv_configure("convolution.ir.preset", "0");
@@ -162,7 +163,13 @@ void ZamVerbPlugin::loadProgram(uint32_t index)
void ZamVerbPlugin::activate()
{
- setState("reload", "");
+ setState("reload", "");
+ signal = true;
+}
+
+void ZamVerbPlugin::deactivate()
+{
+ signal = false;
}
String ZamVerbPlugin::getState(const char*) const
@@ -199,6 +206,12 @@ void ZamVerbPlugin::run(const float** inputs, float** outputs, uint32_t frames)
int nprocessed;
active = swap;
+ if (!signal) {
+ memcpy(outputs[0], inputs[0], frames * sizeof(float));
+ memcpy(outputs[1], inputs[1], frames * sizeof(float));
+ return;
+ }
+
assert(frames < 8192);
memcpy(tmpins[0], inputs[0], frames * sizeof(float));
memcpy(tmpins[1], inputs[1], frames * sizeof(float));