summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/surfaces/launch_control_xl/controllers.cc30
-rw-r--r--libs/surfaces/launch_control_xl/launch_control_xl.h6
2 files changed, 33 insertions, 3 deletions
diff --git a/libs/surfaces/launch_control_xl/controllers.cc b/libs/surfaces/launch_control_xl/controllers.cc
index de9e0aa416..65608e9d19 100644
--- a/libs/surfaces/launch_control_xl/controllers.cc
+++ b/libs/surfaces/launch_control_xl/controllers.cc
@@ -451,6 +451,36 @@ LaunchControlXL::button_device_long_press()
}
+void
+LaunchControlXL::button_mute()
+{
+ if (buttons_down.find(Device) != buttons_down.end()) {
+ access_action ("Editor/track-mute-toggle");
+ } else {
+ button_track_mode(TrackMute);
+ }
+}
+
+void
+LaunchControlXL::button_solo()
+{
+ if (buttons_down.find(Device) != buttons_down.end()) {
+ access_action ("Editor/track-solo-toggle");
+ } else {
+ button_track_mode(TrackSolo);
+ }
+}
+
+void
+LaunchControlXL::button_record()
+{
+ if (buttons_down.find(Device) != buttons_down.end()) {
+ access_action ("Editor/track-record-enable-toggle");
+ } else {
+ button_track_mode(TrackRecord);
+ }
+}
+
bool
LaunchControlXL::button_long_press_timeout (ButtonID id, Button* button)
{
diff --git a/libs/surfaces/launch_control_xl/launch_control_xl.h b/libs/surfaces/launch_control_xl/launch_control_xl.h
index d4747767c8..9d7112a8eb 100644
--- a/libs/surfaces/launch_control_xl/launch_control_xl.h
+++ b/libs/surfaces/launch_control_xl/launch_control_xl.h
@@ -457,9 +457,9 @@ private:
void button_device();
void button_device_long_press();
void button_track_mode(TrackMode state);
- void button_mute() { button_track_mode(TrackMute); }
- void button_solo() { button_track_mode(TrackSolo); }
- void button_record() { button_track_mode(TrackRecord); }
+ void button_mute();
+ void button_solo();
+ void button_record();
void button_select_up();
void button_select_down();
void button_select_left();