From 497a831bd9ac0a9f28b581ea58fe8bfc0f95fff1 Mon Sep 17 00:00:00 2001 From: falkTX Date: Tue, 26 Oct 2021 21:33:53 +0100 Subject: [PATCH] Early work for self-test mode in standalone Signed-off-by: falkTX --- distrho/src/DistrhoPluginJACK.cpp | 141 +++++++++++++++++++++++++++++- distrho/src/DistrhoUIInternal.hpp | 10 ++- 2 files changed, 146 insertions(+), 5 deletions(-) diff --git a/distrho/src/DistrhoPluginJACK.cpp b/distrho/src/DistrhoPluginJACK.cpp index db82f3d0..067cc60f 100644 --- a/distrho/src/DistrhoPluginJACK.cpp +++ b/distrho/src/DistrhoPluginJACK.cpp @@ -23,6 +23,8 @@ # include "../extra/Sleep.hpp" #endif +#include "../extra/Thread.hpp" + #include "jackbridge/JackBridge.cpp" #include "lv2/lv2.h" @@ -747,14 +749,149 @@ private: #undef thisPtr }; +// ----------------------------------------------------------------------- + +class PluginProcessTestingThread : public Thread +{ + PluginExporter& plugin; + +public: + PluginProcessTestingThread(PluginExporter& p) : plugin(p) {} + +protected: + void run() override + { + plugin.setBufferSize(256); + plugin.activate(); + + float buffer[256]; + const float* inputs[DISTRHO_PLUGIN_NUM_INPUTS > 0 ? DISTRHO_PLUGIN_NUM_INPUTS : 1]; + float* outputs[DISTRHO_PLUGIN_NUM_OUTPUTS > 0 ? DISTRHO_PLUGIN_NUM_OUTPUTS : 1]; + for (int i=0; i 0 ? DISTRHO_PLUGIN_NUM_INPUTS : 1]; + float* outputs[DISTRHO_PLUGIN_NUM_OUTPUTS > 0 ? DISTRHO_PLUGIN_NUM_OUTPUTS : 1]; + for (int i=0; iuiIdle(); } -#else + + void showAndFocus() + { + uiData->window->show(); + uiData->window->focus(); + } +#endif + bool plugin_idle() { DISTRHO_SAFE_ASSERT_RETURN(ui != nullptr, false); @@ -239,7 +246,6 @@ public: ui->uiIdle(); return ! uiData->app.isQuitting(); } -#endif void focus() {