summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Lentfer <jan.lentfer@web.de>2018-08-15 22:19:13 +0200
committerRobin Gareus <robin@gareus.org>2018-08-18 18:12:18 +0200
commit4789147482821b9dfb3c9e32e64c3399ea9950e7 (patch)
tree6a629032ce580dff1c27fea9814865a4071bf507
parented32a00afa441e6a347128c728df1f7b7e2159b3 (diff)
LCXL: split track focus button and led code
-rw-r--r--libs/surfaces/launch_control_xl/controllers.cc19
-rw-r--r--libs/surfaces/launch_control_xl/launch_control_xl.cc5
-rw-r--r--libs/surfaces/launch_control_xl/launch_control_xl.h17
3 files changed, 29 insertions, 12 deletions
diff --git a/libs/surfaces/launch_control_xl/controllers.cc b/libs/surfaces/launch_control_xl/controllers.cc
index 95345a64e0..987d84981a 100644
--- a/libs/surfaces/launch_control_xl/controllers.cc
+++ b/libs/surfaces/launch_control_xl/controllers.cc
@@ -22,6 +22,7 @@
#include "ardour/mute_control.h"
#include "ardour/session.h"
#include "ardour/solo_control.h"
+#include "ardour/solo_isolate_control.h"
#include "launch_control_xl.h"
@@ -280,7 +281,7 @@ LaunchControlXL::track_button_by_range(uint8_t n, uint8_t first, uint8_t middle)
}
void
-LaunchControlXL::button_track_focus(uint8_t n)
+LaunchControlXL::update_track_focus_led(uint8_t n)
{
TrackButton* b = focus_button_by_collumn(n);
@@ -301,6 +302,22 @@ LaunchControlXL::button_track_focus(uint8_t n)
write (b->state_msg());
}
+void
+LaunchControlXL::button_track_focus(uint8_t n)
+{
+ if (stripable[n]) {
+ if ( stripable[n]->is_selected() ) {
+ ControlProtocol::RemoveStripableFromSelection (stripable[n]);
+ } else {
+ ControlProtocol::AddStripableToSelection (stripable[n]);
+ }
+ } else {
+ return;
+ }
+}
+
+
+
boost::shared_ptr<AutomationControl>
LaunchControlXL::get_ac_by_state(uint8_t n) {
boost::shared_ptr<AutomationControl> ac;
diff --git a/libs/surfaces/launch_control_xl/launch_control_xl.cc b/libs/surfaces/launch_control_xl/launch_control_xl.cc
index aeeae77ce8..87a2033c5f 100644
--- a/libs/surfaces/launch_control_xl/launch_control_xl.cc
+++ b/libs/surfaces/launch_control_xl/launch_control_xl.cc
@@ -811,10 +811,9 @@ LaunchControlXL::stripable_property_change (PropertyChange const& what_changed,
return;
}
if (which < 8) {
- button_track_focus((uint8_t)which);
+ update_track_focus_led ((uint8_t) which);
}
}
-
}
void
@@ -875,7 +874,7 @@ LaunchControlXL::switch_bank (uint32_t base)
stripable[n]->rec_enable_control()->Changed.connect (stripable_connections, MISSING_INVALIDATOR, boost::bind (&LaunchControlXL::rec_changed, this, n), lcxl);
}
}
- button_track_focus(n);
+ update_track_focus_led(n);
button_track_mode(track_mode());
}
}
diff --git a/libs/surfaces/launch_control_xl/launch_control_xl.h b/libs/surfaces/launch_control_xl/launch_control_xl.h
index 3b645f2375..dac2739f15 100644
--- a/libs/surfaces/launch_control_xl/launch_control_xl.h
+++ b/libs/surfaces/launch_control_xl/launch_control_xl.h
@@ -469,16 +469,17 @@ private:
void button_track_control(uint8_t n);
boost::shared_ptr<ARDOUR::AutomationControl> get_ac_by_state(uint8_t n);
+ void update_track_focus_led(uint8_t n);
void update_track_control_led(uint8_t n);
- void button_track_focus_1() { ControlProtocol::ToggleStripableSelection (stripable[0]); }
- void button_track_focus_2() { ControlProtocol::ToggleStripableSelection (stripable[1]); }
- void button_track_focus_3() { ControlProtocol::ToggleStripableSelection (stripable[2]); }
- void button_track_focus_4() { ControlProtocol::ToggleStripableSelection (stripable[3]); }
- void button_track_focus_5() { ControlProtocol::ToggleStripableSelection (stripable[4]); }
- void button_track_focus_6() { ControlProtocol::ToggleStripableSelection (stripable[5]); }
- void button_track_focus_7() { ControlProtocol::ToggleStripableSelection (stripable[6]); }
- void button_track_focus_8() { ControlProtocol::ToggleStripableSelection (stripable[7]); }
+ void button_track_focus_1() { button_track_focus(0); }
+ void button_track_focus_2() { button_track_focus(1); }
+ void button_track_focus_3() { button_track_focus(2); }
+ void button_track_focus_4() { button_track_focus(3); }
+ void button_track_focus_5() { button_track_focus(4); }
+ void button_track_focus_6() { button_track_focus(5); }
+ void button_track_focus_7() { button_track_focus(6); }
+ void button_track_focus_8() { button_track_focus(7); }
void button_track_control_1() { button_track_control(0); }
void button_track_control_2() { button_track_control(1); }