_current_route = r;
+ /* turn this off. It will be turned on back on in use_master() or
+ use_monitor() as appropriate.
+ */
+ button_info(Output).set_led_state (_output_port, false);
+
if (_current_route) {
_current_route->DropReferences.connect (route_connections, MISSING_INVALIDATOR, boost::bind (&FaderPort::drop_current_route, this), this);
if (_current_route == r) {
r = pre_master_route.lock();
set_current_route (r);
- if (r == session->monitor_out()) {
- button_info(Output).set_led_state (_output_port, true);
- blinkers.push_back (Output);
- } else {
- button_info(Output).set_led_state (_output_port, false);
- blinkers.remove (Output);
- }
+ button_info(Output).set_led_state (_output_port, false);
+ blinkers.remove (Output);
} else {
- pre_master_route = boost::weak_ptr<Route> (_current_route);
+ if (_current_route != session->master_out() && _current_route != session->monitor_out()) {
+ pre_master_route = boost::weak_ptr<Route> (_current_route);
+ }
set_current_route (r);
button_info(Output).set_led_state (_output_port, true);
blinkers.remove (Output);
if (_current_route == r) {
r = pre_monitor_route.lock();
set_current_route (r);
- if (r == session->master_out()) {
- button_info(Output).set_led_state (_output_port, true);
- } else {
- button_info(Output).set_led_state (_output_port, false);
- }
+ button_info(Output).set_led_state (_output_port, false);
blinkers.remove (Output);
} else {
- pre_monitor_route = boost::weak_ptr<Route> (_current_route);
+ if (_current_route != session->master_out() && _current_route != session->monitor_out()) {
+ pre_monitor_route = boost::weak_ptr<Route> (_current_route);
+ }
set_current_route (r);
button_info(Output).set_led_state (_output_port, true);
blinkers.push_back (Output);