summaryrefslogtreecommitdiff
path: root/libs/surfaces/osc
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2018-01-13 07:58:37 -0800
committerLen Ovens <len@ovenwerks.net>2018-01-13 07:58:37 -0800
commite51c5ab76a4c53d723ec5dcc31a05400e528d70e (patch)
treec620f338ad986c2da203a80cb0c329011d88aa76 /libs/surfaces/osc
parent40498f841d2c7961793a2964f2b86255a96360dd (diff)
OSC: add /select/hide
Diffstat (limited to 'libs/surfaces/osc')
-rw-r--r--libs/surfaces/osc/osc.cc19
-rw-r--r--libs/surfaces/osc/osc.h2
2 files changed, 21 insertions, 0 deletions
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);
@@ -4124,6 +4125,24 @@ OSC::sel_trim (float val, lo_message msg)
}
int
+OSC::sel_hide (uint32_t state, lo_message msg)
+{
+ OSCSurface *sur = get_surface(get_address (msg));
+ boost::shared_ptr<Stripable> 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)
{
OSCSurface *sur = get_surface(get_address (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<OSCUIRequest>
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<OSCUIRequest>
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);