DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

commit 8fbfd102dcc7f6292a2567b1bdb2dfcc85133731
parent 793c580f8d64ee33c0257814efb0ab3b1be2497e
Author: falkTX <falktx@gmail.com>
Date:   Wed, 13 Aug 2014 23:47:40 +0100

Only reactivate plugin during audio changes if active before

Diffstat:
Mdistrho/src/DistrhoPluginInternal.hpp | 14+++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/distrho/src/DistrhoPluginInternal.hpp b/distrho/src/DistrhoPluginInternal.hpp @@ -118,7 +118,8 @@ class PluginExporter public: PluginExporter() : fPlugin(createPlugin()), - fData((fPlugin != nullptr) ? fPlugin->pData : nullptr) + fData((fPlugin != nullptr) ? fPlugin->pData : nullptr), + fIsActive(false) { DISTRHO_SAFE_ASSERT_RETURN(fPlugin != nullptr,); DISTRHO_SAFE_ASSERT_RETURN(fData != nullptr,); @@ -343,6 +344,7 @@ public: { DISTRHO_SAFE_ASSERT_RETURN(fPlugin != nullptr,); + fIsActive = true; fPlugin->d_activate(); } @@ -350,6 +352,7 @@ public: { DISTRHO_SAFE_ASSERT_RETURN(fPlugin != nullptr,); + fIsActive = false; fPlugin->d_deactivate(); } @@ -402,9 +405,9 @@ public: if (doCallback) { - fPlugin->d_deactivate(); + if (fIsActive) fPlugin->d_deactivate(); fPlugin->d_bufferSizeChanged(bufferSize); - fPlugin->d_activate(); + if (fIsActive) fPlugin->d_activate(); } } @@ -421,9 +424,9 @@ public: if (doCallback) { - fPlugin->d_deactivate(); + if (fIsActive) fPlugin->d_deactivate(); fPlugin->d_sampleRateChanged(sampleRate); - fPlugin->d_activate(); + if (fIsActive) fPlugin->d_activate(); } } @@ -433,6 +436,7 @@ private: Plugin* const fPlugin; Plugin::PrivateData* const fData; + bool fIsActive; // ------------------------------------------------------------------- // Static fallback data, see DistrhoPlugin.cpp