From 2614b0df43b4dc5d339f087501b003bb1d689684 Mon Sep 17 00:00:00 2001 From: Len Ovens Date: Sun, 27 Nov 2016 20:52:14 -0800 Subject: [PATCH] OSC: Solo toggle should maintain state when locked, rec and rec_safe should show true state. --- libs/surfaces/osc/osc.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index a9168c29e0..f698dba9c8 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -1950,7 +1950,7 @@ OSC::route_solo (int ssid, int yn, lo_message msg) if (s) { if (s->solo_control()) { s->solo_control()->set_value (yn ? 1.0 : 0.0, PBD::Controllable::NoGroup); - return 0; + return route_send_fail ("solo", ssid, (float) s->solo_control()->get_value(), get_address (msg)); } } @@ -2002,7 +2002,7 @@ OSC::sel_solo (uint32_t yn, lo_message msg) if (s) { if (s->solo_control()) { s->solo_control()->set_value (yn ? 1.0 : 0.0, PBD::Controllable::NoGroup); - return 0; + return sel_fail ("solo", (float) s->solo_control()->get_value(), get_address (msg)); } } return sel_fail ("solo", 0, get_address (msg)); @@ -2059,7 +2059,9 @@ OSC::sel_recenable (uint32_t yn, lo_message msg) if (s) { if (s->rec_enable_control()) { s->rec_enable_control()->set_value (yn ? 1.0 : 0.0, PBD::Controllable::NoGroup); - return 0; + if (s->rec_enable_control()->get_value()) { + return 0; + } } } return sel_fail ("recenable", 0, get_address (msg)); @@ -2110,7 +2112,9 @@ OSC::sel_recsafe (uint32_t yn, lo_message msg) if (s) { if (s->rec_safe_control()) { s->rec_safe_control()->set_value (yn ? 1.0 : 0.0, PBD::Controllable::NoGroup); - return 0; + if (s->rec_safe_control()->get_value()) { + return 0; + } } } return sel_fail ("record_safe", 0, get_address (msg)); -- 2.30.2