diff options
Diffstat (limited to 'plugins/ZamHeadX2/ZamHeadX2Plugin.cpp')
-rw-r--r-- | plugins/ZamHeadX2/ZamHeadX2Plugin.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/plugins/ZamHeadX2/ZamHeadX2Plugin.cpp b/plugins/ZamHeadX2/ZamHeadX2Plugin.cpp index 1acf7bd..3685e7e 100644 --- a/plugins/ZamHeadX2/ZamHeadX2Plugin.cpp +++ b/plugins/ZamHeadX2/ZamHeadX2Plugin.cpp @@ -212,8 +212,10 @@ void ZamHeadX2Plugin::run(const float** inputs, float** outputs, uint32_t frames active = swap; if (!signal) { - memcpy(outputs[0], inputs[0], frames * sizeof(float)); - memcpy(outputs[1], inputs[1], frames * sizeof(float)); + if (outputs[0] != inputs[0]) + memcpy(outputs[0], inputs[0], frames * sizeof(float)); + if (outputs[1] != inputs[1]) + memcpy(outputs[1], inputs[1], frames * sizeof(float)); return; } @@ -227,8 +229,10 @@ void ZamHeadX2Plugin::run(const float** inputs, float** outputs, uint32_t frames nprocessed = clv[active]->clv_convolve(tmpins, tmpouts, 2, 2, frames, from_dB(6.0)); if (nprocessed <= 0) { - memcpy(outputs[0], inputs[0], frames * sizeof(float)); - memcpy(outputs[1], inputs[1], frames * sizeof(float)); + if (outputs[0] != inputs[0]) + memcpy(outputs[0], inputs[0], frames * sizeof(float)); + if (outputs[1] != inputs[1]) + memcpy(outputs[1], inputs[1], frames * sizeof(float)); } else { memcpy(outputs[0], tmpouts[0], frames * sizeof(float)); memcpy(outputs[1], tmpouts[1], frames * sizeof(float)); |