From 6d7bc4ea3009dc020f1b4c23ca8fa0d11d602122 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 17 Feb 2019 02:22:03 +0100 Subject: [PATCH] Emit signal when plugin latency changes --- libs/ardour/ardour/latent.h | 4 ++++ libs/ardour/plugin_insert.cc | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libs/ardour/ardour/latent.h b/libs/ardour/ardour/latent.h index 194dbe3a72..8d44e4cffc 100644 --- a/libs/ardour/ardour/latent.h +++ b/libs/ardour/ardour/latent.h @@ -20,6 +20,8 @@ #ifndef __ardour_latent_h__ #define __ardour_latent_h__ +#include "pbd/signals.h" + #include "ardour/libardour_visibility.h" #include "ardour/types.h" @@ -76,6 +78,8 @@ public: return _zero_latency; } + PBD::Signal0 LatencyChanged; + protected: int set_state (const XMLNode& node, int version); void add_state (XMLNode*) const; diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc index a4a5ad1972..3d7fe164db 100644 --- a/libs/ardour/plugin_insert.cc +++ b/libs/ardour/plugin_insert.cc @@ -3184,7 +3184,10 @@ PluginInsert::latency_changed () { // this is called in RT context, LatencyChanged is emitted after run() _latency_changed = true; - // XXX This also needs a proper API not an owner() hack. + LatencyChanged (); /* EMIT SIGNAL */ + // XXX This needs a proper API not an owner() hack: + // TODO Route should subscribe to LatencyChanged() and forward it + // to the session as processor_latency_changed. assert (owner ()); static_cast(owner ())->processor_latency_changed (); /* EMIT SIGNAL */ }