summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-04-06 16:57:35 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-04-06 16:57:35 +0000
commite69aca28426dd17a0f82ea01c7c98e217b4fdcc3 (patch)
tree32854686f9de3cd61f07a5e801886b0f2d5a7012 /libs/ardour/session.cc
parent3a7487d3fa6887c846bc02d2764e376f7f209a03 (diff)
MIDI/Controllables for monitor section, and related fixes
git-svn-id: svn://localhost/ardour2/branches/3.0@6863 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r--libs/ardour/session.cc16
1 files changed, 13 insertions, 3 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index ad04552820..22d2fc8037 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -2245,7 +2245,7 @@ Session::route_solo_changed (void* /*src*/, boost::weak_ptr<Route> wpr)
delta = -1;
}
- /* now mod the solo level of all other routes except master & control outs
+ /* now mod the solo level of all other routes except master/control outs/auditioner
so that they will be silent if appropriate.
*/
@@ -2269,12 +2269,18 @@ Session::route_solo_changed (void* /*src*/, boost::weak_ptr<Route> wpr)
_master_out->mod_solo_by_others (1);
}
- /* ditto for control outs make sure master is never muted by solo */
+ /* ditto for control outs make sure it is never muted by solo */
if (_monitor_out && route != _monitor_out && _monitor_out && _monitor_out->soloed_by_others() == 0) {
_monitor_out->mod_solo_by_others (1);
}
+ /* ditto for auditioner make sure it is never muted by solo */
+
+ if (auditioner) {
+ auditioner->mod_solo_by_others (1);
+ }
+
solo_update_disabled = false;
update_route_solo_state (r);
SoloChanged (); /* EMIT SIGNAL */
@@ -2300,7 +2306,11 @@ Session::update_route_solo_state (boost::shared_ptr<RouteList> r)
}
if (!(*i)->is_hidden() && (*i)->listening()) {
- listeners++;
+ if (Config->get_solo_control_is_listen_control()) {
+ listeners++;
+ } else {
+ (*i)->set_listen (false, this);
+ }
}
}