From c7a052a45f687f33d88cc56f3eee8daa959cb452 Mon Sep 17 00:00:00 2001 From: Len Ovens Date: Sun, 14 Jan 2018 08:42:13 -0800 Subject: OSC: add /strip/hide --- libs/surfaces/osc/osc.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'libs/surfaces/osc/osc.cc') diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index 41d1210281..a026e0283a 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -618,6 +618,7 @@ OSC::register_callbacks() REGISTER_CALLBACK (serv, "/strip/monitor_input", "ii", route_monitor_input); REGISTER_CALLBACK (serv, "/strip/monitor_disk", "ii", route_monitor_disk); REGISTER_CALLBACK (serv, "/strip/expand", "ii", strip_expand); + REGISTER_CALLBACK (serv, "/strip/hide", "ii", strip_hide); REGISTER_CALLBACK (serv, "/strip/select", "ii", strip_gui_select); REGISTER_CALLBACK (serv, "/strip/polarity", "ii", strip_phase); REGISTER_CALLBACK (serv, "/strip/gain", "if", route_set_gain_dB); @@ -963,6 +964,10 @@ OSC::catchall (const char *path, const char* types, lo_arg **argv, int argc, lo_ int ssid = atoi (&path[14]); ret = strip_expand (ssid, argv[0]->i, msg); } + else if (!strncmp (path, "/strip/hide/", 12) && strlen (path) > 12) { + int ssid = atoi (&path[12]); + ret = strip_hide (ssid, argv[0]->i, msg); + } else if (!strncmp (path, "/strip/select/", 14) && strlen (path) > 14) { int ssid = atoi (&path[14]); ret = strip_gui_select (ssid, argv[0]->i, msg); @@ -3789,6 +3794,19 @@ OSC::strip_expand (int ssid, int yn, lo_message msg) return _strip_select (s, get_address (msg)); } +int +OSC::strip_hide (int ssid, int state, lo_message msg) +{ + boost::shared_ptr s = get_strip (ssid, get_address (msg)); + + if (s) { + if (state != s->is_hidden ()) { + s->presentation_info().set_hidden ((bool) state); + } + } + return 0; +} + int OSC::_strip_select (boost::shared_ptr s, lo_address addr) { -- cgit v1.2.3