summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2019-08-26 12:52:21 -0700
committerLen Ovens <len@ovenwerks.net>2019-08-26 17:48:22 -0700
commit220fa45d353bbbbdfcb6efb906189173bb4d88e9 (patch)
treeb387825b90716493eb5f8497fcdcb81928b14a05 /libs/ardour/route.cc
parenta2de8bd88143b6092e102aded0b4669b44a2ea40 (diff)
Add signal for foldback send add or remove
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r--libs/ardour/route.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 075ccd72c1..962f23bda1 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -3312,6 +3312,7 @@ Route::add_foldback_send (boost::shared_ptr<Route> route)
} catch (failed_constructor& err) {
return -1;
}
+ _session.FBSendsChanged ();
return 0;
}
@@ -3321,6 +3322,7 @@ Route::remove_aux_or_listen (boost::shared_ptr<Route> route)
{
ProcessorStreams err;
ProcessorList::iterator tmp;
+ bool do_fb_signal = false;
{
Glib::Threads::RWLock::ReaderLock rl(_processor_lock);
@@ -3339,6 +3341,11 @@ Route::remove_aux_or_listen (boost::shared_ptr<Route> route)
boost::shared_ptr<InternalSend> d = boost::dynamic_pointer_cast<InternalSend>(*x);
if (d && d->target_route() == route) {
+ boost::shared_ptr<Send> snd = boost::dynamic_pointer_cast<Send>(d);
+ if (snd && snd->is_foldback()) {
+ do_fb_signal = true;
+ }
+
rl.release ();
if (remove_processor (*x, &err, false) > 0) {
rl.acquire ();
@@ -3358,6 +3365,10 @@ Route::remove_aux_or_listen (boost::shared_ptr<Route> route)
}
}
}
+ if (do_fb_signal) {
+ _session.FBSendsChanged ();
+ }
+
}
void