diff options
Diffstat (limited to 'plugins/ZamVerb/ZamVerbPlugin.cpp')
-rw-r--r-- | plugins/ZamVerb/ZamVerbPlugin.cpp | 15 |
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)); |