From e51c5ab76a4c53d723ec5dcc31a05400e528d70e Mon Sep 17 00:00:00 2001 From: Len Ovens Date: Sat, 13 Jan 2018 07:58:37 -0800 Subject: [PATCH] OSC: add /select/hide --- libs/surfaces/osc/osc.cc | 19 +++++++++++++++++++ libs/surfaces/osc/osc.h | 2 ++ 2 files changed, 21 insertions(+) diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index f3f7421e85..41d1210281 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -576,6 +576,7 @@ OSC::register_callbacks() REGISTER_CALLBACK (serv, "/select/fader", "f", sel_fader); REGISTER_CALLBACK (serv, "/select/db_delta", "f", sel_dB_delta); REGISTER_CALLBACK (serv, "/select/trimdB", "f", sel_trim); + REGISTER_CALLBACK (serv, "/select/hide", "i", sel_hide); REGISTER_CALLBACK (serv, "/select/pan_stereo_position", "f", sel_pan_position); REGISTER_CALLBACK (serv, "/select/pan_stereo_width", "f", sel_pan_width); REGISTER_CALLBACK (serv, "/select/send_gain", "if", sel_sendgain); @@ -4123,6 +4124,24 @@ OSC::sel_trim (float val, lo_message msg) return float_message("/select/trimdB", 0, get_address (msg)); } +int +OSC::sel_hide (uint32_t state, lo_message msg) +{ + OSCSurface *sur = get_surface(get_address (msg)); + boost::shared_ptr s; + if (sur->expand_enable) { + s = get_strip (sur->expand, get_address (msg)); + } else { + s = _select; + } + if (s) { + if (state != s->is_hidden ()) { + s->presentation_info().set_hidden ((bool) state); + } + } + return 0; +} + int OSC::sel_pan_position (float val, lo_message msg) { diff --git a/libs/surfaces/osc/osc.h b/libs/surfaces/osc/osc.h index a0dfb12162..c5713e66d8 100644 --- a/libs/surfaces/osc/osc.h +++ b/libs/surfaces/osc/osc.h @@ -492,6 +492,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI PATH_CALLBACK1_MSG(sel_fader,f); PATH_CALLBACK1_MSG(sel_dB_delta,f); PATH_CALLBACK1_MSG(sel_trim,f); + PATH_CALLBACK1_MSG(sel_hide,i); PATH_CALLBACK1_MSG(sel_pan_position,f); PATH_CALLBACK1_MSG(sel_pan_width,f); PATH_CALLBACK1_MSG(sel_pan_elevation,f); @@ -706,6 +707,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI int sel_fader (float state, lo_message msg); int sel_dB_delta (float delta, lo_message msg); int sel_trim (float val, lo_message msg); + int sel_hide (uint32_t state, lo_message msg); int sel_pan_position (float val, lo_message msg); int sel_pan_width (float val, lo_message msg); int sel_sendgain (int id, float dB, lo_message msg);