Emit Session::MuteChanged() if a mutes route is removed.

This commit is contained in:
Robin Gareus 2017-04-08 23:44:18 +02:00
parent f9db9bf5fd
commit 65ff43d0a7

View file

@ -3717,12 +3717,13 @@ Session::add_internal_send (boost::shared_ptr<Route> dest, boost::shared_ptr<Pro
void void
Session::remove_routes (boost::shared_ptr<RouteList> routes_to_remove) Session::remove_routes (boost::shared_ptr<RouteList> routes_to_remove)
{ {
bool mute_changed = false;
{ // RCU Writer scope { // RCU Writer scope
PBD::Unwinder<bool> uw_flag (_route_deletion_in_progress, true); PBD::Unwinder<bool> uw_flag (_route_deletion_in_progress, true);
RCUWriter<RouteList> writer (routes); RCUWriter<RouteList> writer (routes);
boost::shared_ptr<RouteList> rs = writer.get_copy (); boost::shared_ptr<RouteList> rs = writer.get_copy ();
for (RouteList::iterator iter = routes_to_remove->begin(); iter != routes_to_remove->end(); ++iter) { for (RouteList::iterator iter = routes_to_remove->begin(); iter != routes_to_remove->end(); ++iter) {
if (*iter == _master_out) { 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); (*iter)->solo_control()->set_value (0.0, Controllable::NoGroup);
} }
if ((*iter)->mute_control()->muted ()) {
mute_changed = true;
}
rs->remove (*iter); rs->remove (*iter);
/* deleting the master out seems like a dumb /* 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 } // end of RCU Writer scope
if (mute_changed) {
MuteChanged (); /* EMIT SIGNAL */
}
update_route_solo_state (); update_route_solo_state ();
update_latency_compensation (); update_latency_compensation ();
set_dirty(); set_dirty();