diff options
author | Robin Gareus <robin@gareus.org> | 2017-04-08 23:44:18 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-04-08 23:44:18 +0200 |
commit | 65ff43d0a73bb0b08b9942932ece97edd79bc714 (patch) | |
tree | 02646a77a62a672528ba22d3e29896cfa626c8e7 /libs | |
parent | f9db9bf5fd8d5936be01802aa7f2825b4e386777 (diff) |
Emit Session::MuteChanged() if a mutes route is removed.
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/session.cc | 11 |
1 files changed, 10 insertions, 1 deletions
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<Route> dest, boost::shared_ptr<Pro void Session::remove_routes (boost::shared_ptr<RouteList> routes_to_remove) { + bool mute_changed = false; + { // RCU Writer scope PBD::Unwinder<bool> uw_flag (_route_deletion_in_progress, true); RCUWriter<RouteList> writer (routes); boost::shared_ptr<RouteList> 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<RouteList> 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<RouteList> routes_to_remove) } // end of RCU Writer scope + if (mute_changed) { + MuteChanged (); /* EMIT SIGNAL */ + } + update_route_solo_state (); update_latency_compensation (); set_dirty(); |