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
1 changed files with 10 additions and 1 deletions

View File

@ -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();