MCP: pay attention to listen changes as well as solo changes, and reflect listen...
authorPaul Davis <paul@linuxaudiosystems.com>
Tue, 22 May 2012 21:38:03 +0000 (21:38 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 22 May 2012 21:38:03 +0000 (21:38 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@12385 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/surfaces/mackie/strip.cc

index 132d93ed75021eb762faf9cd3232b38bbdf2afae..d886f5a6582b73c6fe62fecf01eae1b5b6254ad5 100644 (file)
@@ -163,7 +163,9 @@ Strip::set_route (boost::shared_ptr<Route> r, bool /*with_messages*/)
 
        set_vpot_parameter (PanAzimuthAutomation);
        
-       _route->solo_control()->Changed.connect(route_connections, MISSING_INVALIDATOR, boost::bind (&Strip::notify_solo_changed, this), ui_context());
+       _route->solo_changed.connect (route_connections, MISSING_INVALIDATOR, boost::bind (&Strip::notify_solo_changed, this), ui_context());
+       _route->listen_changed.connect (route_connections, MISSING_INVALIDATOR, boost::bind (&Strip::notify_solo_changed, this), ui_context());
+
        _route->mute_control()->Changed.connect(route_connections, MISSING_INVALIDATOR, boost::bind (&Strip::notify_mute_changed, this), ui_context());
 
        boost::shared_ptr<Pannable> pannable = _route->pannable();
@@ -239,7 +241,7 @@ void
 Strip::notify_solo_changed ()
 {
        if (_route && _solo) {
-               _surface->write (_solo->set_state (_route->soloed() ? on : off));
+               _surface->write (_solo->set_state ((_route->soloed() || _route->listening_via_monitor()) ? on : off));
        }
 }