summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2016-01-16 14:40:03 -0800
committerLen Ovens <len@ovenwerks.net>2016-01-16 14:40:03 -0800
commit7b08d650c00e87a19fe96b65e80a75e63b481937 (patch)
treec0071a52279960a53eee7c237b20a62ff499ffe7 /libs
parent65be9fa2faed4847cf0aa28b705654e270324f99 (diff)
Change last commit to use it's own variable rather than borrowing solo's
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/session.h1
-rw-r--r--libs/ardour/session.cc9
2 files changed, 9 insertions, 1 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index 385eadbadf..afc93a9f76 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -1107,6 +1107,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
framecnt_t _worst_track_latency;
bool _have_captured;
bool _non_soloed_outs_muted;
+ bool _listening;
uint32_t _listen_cnt;
uint32_t _solo_isolated_cnt;
bool _writable;
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) {