diff options
Diffstat (limited to 'libs/surfaces/osc/osc.cc')
-rw-r--r-- | libs/surfaces/osc/osc.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index 4ec2f18d4b..7d44efda26 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -564,6 +564,7 @@ OSC::register_callbacks() REGISTER_CALLBACK (serv, "/select/send_gain", "if", sel_sendgain); REGISTER_CALLBACK (serv, "/select/send_fader", "if", sel_sendfader); REGISTER_CALLBACK (serv, "/select/send_enable", "if", sel_sendenable); + REGISTER_CALLBACK (serv, "/select/master_send_enable", "i", sel_master_send_enable); REGISTER_CALLBACK (serv, "/select/send_page", "f", sel_send_page); REGISTER_CALLBACK (serv, "/select/plug_page", "f", sel_plug_page); REGISTER_CALLBACK (serv, "/select/plugin", "f", sel_plugin); @@ -3710,6 +3711,25 @@ OSC::sel_sendenable (int id, float val, lo_message msg) } int +OSC::sel_master_send_enable (int 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 (s->master_send_enable_controllable ()) { + s->master_send_enable_controllable()->set_value (state, PBD::Controllable::NoGroup); + return 0; + } + } + return cue_float_message ("/select/master_send_enable", 0, get_address(msg)); +} + +int OSC::select_plugin_parameter (const char *path, const char* types, lo_arg **argv, int argc, lo_message msg) { OSCSurface *sur = get_surface(get_address (msg)); int paid; |