From 266c5fbc16b7cad0aa042334c8606c49b1c8caa6 Mon Sep 17 00:00:00 2001 From: Jan Lentfer Date: Mon, 20 Aug 2018 21:43:21 +0200 Subject: LCXL: Mixbus secondary function for Ctrl buttons In Mixbus holding Device and pressing one (or many) of the Track Control buttons will toggle the Master Assignment for the corresponding track --- libs/surfaces/launch_control_xl/controllers.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libs/surfaces/launch_control_xl/controllers.cc b/libs/surfaces/launch_control_xl/controllers.cc index 764f801edf..9552fd7150 100644 --- a/libs/surfaces/launch_control_xl/controllers.cc +++ b/libs/surfaces/launch_control_xl/controllers.cc @@ -485,6 +485,20 @@ LaunchControlXL::button_track_control(uint8_t n) { if (!stripable[n]) { return; } + + if (buttons_down.find(Device) != buttons_down.end()) { + DEBUG_TRACE (DEBUG::LaunchControlXL, "DEVICE BUTTON HOLD\n"); +#ifdef MIXBUS + if (stripable[n] != master) { + DEBUG_TRACE (DEBUG::LaunchControlXL, "MIXBUS Master Assign\n"); + stripable[n]->master_send_enable_controllable()->set_value (!stripable[n]->master_send_enable_controllable()->get_value(), PBD::Controllable::UseGroup); + } +#else + /* something useful for Ardour */ +#endif + return; + } + boost::shared_ptr ac = get_ac_by_state(n); if (ac) { -- cgit v1.2.3