From f0b25a776be955903dd0589720ce521990d89db5 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 2 Apr 2020 19:47:01 +0200 Subject: Update fan-out signal * Signals use camelcase. * use a static signal, independent of the route Previously the signal was handled by RouteUI, which caused various issues: * the RouteUI may not yet be available * There may be many RouteUIs for a single Route (mixer, editor-mixer, meter-bridge strips) --- libs/ardour/route.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'libs/ardour/route.cc') diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index af7e0890e7..36620d8adf 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -103,6 +103,8 @@ using namespace PBD; PBD::Signal3, boost::shared_ptr, Route::PluginSetupOptions > Route::PluginSetup; +PBD::Signal1 > Route::FanOut; + /** Base class for all routable/mixable objects (tracks and busses) */ Route::Route (Session& sess, string name, PresentationInfo::Flag flag, DataType default_type) : Stripable (sess, name, PresentationInfo (flag)) @@ -1151,7 +1153,9 @@ Route::add_processors (const ProcessorList& others, boost::shared_ptr if (fanout && fanout->configured () && fanout->output_streams().n_audio() > 2 && boost::dynamic_pointer_cast (the_instrument ()) == fanout) { - fan_out (); /* EMIT SIGNAL */ + /* This adds new tracks or busses, and changes connections. + * This cannot be done here, and needs to be delegated to the GUI thread. */ + FanOut (boost::dynamic_pointer_cast(shared_from_this())); /* EMIT SIGNAL */ } return 0; } -- cgit v1.2.3