From 65ff43d0a73bb0b08b9942932ece97edd79bc714 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 8 Apr 2017 23:44:18 +0200 Subject: Emit Session::MuteChanged() if a mutes route is removed. --- libs/ardour/session.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'libs/ardour/session.cc') diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 12fb6521fa..243a46b0ee 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -3717,12 +3717,13 @@ Session::add_internal_send (boost::shared_ptr dest, boost::shared_ptr routes_to_remove) { + bool mute_changed = false; + { // RCU Writer scope PBD::Unwinder uw_flag (_route_deletion_in_progress, true); RCUWriter writer (routes); boost::shared_ptr rs = writer.get_copy (); - for (RouteList::iterator iter = routes_to_remove->begin(); iter != routes_to_remove->end(); ++iter) { if (*iter == _master_out) { @@ -3734,6 +3735,10 @@ Session::remove_routes (boost::shared_ptr routes_to_remove) (*iter)->solo_control()->set_value (0.0, Controllable::NoGroup); } + if ((*iter)->mute_control()->muted ()) { + mute_changed = true; + } + rs->remove (*iter); /* deleting the master out seems like a dumb @@ -3785,6 +3790,10 @@ Session::remove_routes (boost::shared_ptr routes_to_remove) } // end of RCU Writer scope + if (mute_changed) { + MuteChanged (); /* EMIT SIGNAL */ + } + update_route_solo_state (); update_latency_compensation (); set_dirty(); -- cgit v1.2.3