From 1b7cb8aec4807af4a539176a579741ad7ca6e69b Mon Sep 17 00:00:00 2001 From: Len Ovens Date: Tue, 16 Oct 2018 13:56:09 -0700 Subject: [PATCH] OSC: personal monitor can hide the aux bus --- libs/surfaces/osc/osc.cc | 26 ++++++++++++++++++++++++++ libs/surfaces/osc/osc.h | 1 + 2 files changed, 27 insertions(+) diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index a5238fe748..24fa6fcdfe 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -6403,6 +6403,12 @@ OSC::cue_parse (const char *path, const char* types, lo_arg **argv, int argc, lo PBD::warning << "OSC: new_send has wrong number or type of parameters." << endmsg; } } + else if (!strncmp (path, X_("/cue/hide_aux"), 13)) { + // hide our Aux bus + if (argc) { + ret = cue_hide (value, msg); + } + } else if (!strncmp (path, X_("/cue/next_aux"), 13)) { // switch to next Aux bus if ((!argc) || argv[0]->f || argv[0]->i) { @@ -6564,6 +6570,26 @@ OSC::cue_new_send (string rt_name, lo_message msg) return 1; } +int +OSC::cue_hide (float state, lo_message msg) +{ + OSCSurface *sur = get_surface(get_address (msg), true); + if (sur->cue) { + boost::shared_ptr aux = boost::dynamic_pointer_cast (get_strip (sur->aux, get_address(msg))); + if (aux) { + if (aux->is_hidden () != (bool) state) { + aux->presentation_info().set_hidden ((bool) state); + } + return 0; + } else { + PBD::warning << "OSC: hide_aux - No Aux found." << endmsg; + } + } else { + PBD::warning << "OSC: hide_aux - monitoring not set, select aux first." << endmsg; + } + return 1; +} + int OSC::cue_connect_aux (std::string dest, lo_message msg) { diff --git a/libs/surfaces/osc/osc.h b/libs/surfaces/osc/osc.h index b1c23b458b..c4753a47e3 100644 --- a/libs/surfaces/osc/osc.h +++ b/libs/surfaces/osc/osc.h @@ -346,6 +346,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI int cue_new_aux (std::string name, std::string dest, lo_message msg); int cue_new_send (std::string rt_name, lo_message msg); int cue_connect_aux (std::string dest, lo_message msg); + int cue_hide (float state, lo_message msg); int cue_next (lo_message msg); int cue_previous (lo_message msg); int cue_send_fader (uint32_t id, float position, lo_message msg);