diff options
author | Len Ovens <len@ovenwerks.net> | 2016-01-16 14:40:03 -0800 |
---|---|---|
committer | Len Ovens <len@ovenwerks.net> | 2016-01-16 14:40:03 -0800 |
commit | 7b08d650c00e87a19fe96b65e80a75e63b481937 (patch) | |
tree | c0071a52279960a53eee7c237b20a62ff499ffe7 /libs/ardour/session.cc | |
parent | 65be9fa2faed4847cf0aa28b705654e270324f99 (diff) |
Change last commit to use it's own variable rather than borrowing solo's
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r-- | libs/ardour/session.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index fc6cc4b633..43883f7fc6 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -183,6 +183,7 @@ Session::Session (AudioEngine &eng, , _worst_track_latency (0) , _have_captured (false) , _non_soloed_outs_muted (false) + , _listening (false) , _listen_cnt (0) , _solo_isolated_cnt (0) , _writable (false) @@ -3740,6 +3741,7 @@ Session::update_route_solo_state (boost::shared_ptr<RouteList> r) /* now figure out if anything that matters is soloed (or is "listening")*/ bool something_soloed = false; + bool something_listening = false; uint32_t listeners = 0; uint32_t isolated = 0; @@ -3755,7 +3757,7 @@ Session::update_route_solo_state (boost::shared_ptr<RouteList> r) if (!(*i)->is_auditioner() && (*i)->listening_via_monitor()) { if (Config->get_solo_control_is_listen_control()) { listeners++; - something_soloed = true; + something_listening = true; } else { (*i)->set_listen (false, this); } @@ -3771,6 +3773,11 @@ Session::update_route_solo_state (boost::shared_ptr<RouteList> r) SoloActive (_non_soloed_outs_muted); /* EMIT SIGNAL */ } + if (something_listening != _listening) { + _listening = something_listening; + SoloActive (_listening); + } + _listen_cnt = listeners; if (isolated != _solo_isolated_cnt) { |