Change last commit to use it's own variable rather than borrowing solo's

This commit is contained in:
Len Ovens 2016-01-16 14:40:03 -08:00
parent 65be9fa2fa
commit 7b08d650c0
2 changed files with 9 additions and 1 deletions

View file

@ -1107,6 +1107,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
framecnt_t _worst_track_latency; framecnt_t _worst_track_latency;
bool _have_captured; bool _have_captured;
bool _non_soloed_outs_muted; bool _non_soloed_outs_muted;
bool _listening;
uint32_t _listen_cnt; uint32_t _listen_cnt;
uint32_t _solo_isolated_cnt; uint32_t _solo_isolated_cnt;
bool _writable; bool _writable;

View file

@ -183,6 +183,7 @@ Session::Session (AudioEngine &eng,
, _worst_track_latency (0) , _worst_track_latency (0)
, _have_captured (false) , _have_captured (false)
, _non_soloed_outs_muted (false) , _non_soloed_outs_muted (false)
, _listening (false)
, _listen_cnt (0) , _listen_cnt (0)
, _solo_isolated_cnt (0) , _solo_isolated_cnt (0)
, _writable (false) , _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")*/ /* now figure out if anything that matters is soloed (or is "listening")*/
bool something_soloed = false; bool something_soloed = false;
bool something_listening = false;
uint32_t listeners = 0; uint32_t listeners = 0;
uint32_t isolated = 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 (!(*i)->is_auditioner() && (*i)->listening_via_monitor()) {
if (Config->get_solo_control_is_listen_control()) { if (Config->get_solo_control_is_listen_control()) {
listeners++; listeners++;
something_soloed = true; something_listening = true;
} else { } else {
(*i)->set_listen (false, this); (*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 */ SoloActive (_non_soloed_outs_muted); /* EMIT SIGNAL */
} }
if (something_listening != _listening) {
_listening = something_listening;
SoloActive (_listening);
}
_listen_cnt = listeners; _listen_cnt = listeners;
if (isolated != _solo_isolated_cnt) { if (isolated != _solo_isolated_cnt) {