push2: make quantize and duplicate buttons do something useful
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 22 Sep 2016 21:28:25 +0000 (16:28 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 27 Sep 2016 19:59:31 +0000 (14:59 -0500)
libs/surfaces/push2/buttons.cc
libs/surfaces/push2/push2.h

index 035d7b2e5f0eca16f0e4f2d1ccfd09fc066bf8f0..3bb310c677776ed7984a4c2bcb91bb7b24b45f6f 100644 (file)
@@ -188,8 +188,8 @@ Push2::build_maps ()
        MAKE_WHITE_BUTTON_PRESS (Clip, 113, &Push2::button_clip);
        MAKE_WHITE_BUTTON (Convert, 35);
        MAKE_WHITE_BUTTON (DoubleLoop, 117);
        MAKE_WHITE_BUTTON_PRESS (Clip, 113, &Push2::button_clip);
        MAKE_WHITE_BUTTON (Convert, 35);
        MAKE_WHITE_BUTTON (DoubleLoop, 117);
-       MAKE_WHITE_BUTTON (Quantize, 116);
-       MAKE_WHITE_BUTTON (Duplicate, 88);
+       MAKE_WHITE_BUTTON_PRESS (Quantize, 116, &Push2::button_quantize);
+       MAKE_WHITE_BUTTON_PRESS (Duplicate, 88, &Push2::button_duplicate);
        MAKE_WHITE_BUTTON_PRESS (New, 87, &Push2::button_new);
        MAKE_WHITE_BUTTON_PRESS (FixedLength, 90, &Push2::button_fixed_length);
        MAKE_WHITE_BUTTON_PRESS (Up, 46, &Push2::button_up);
        MAKE_WHITE_BUTTON_PRESS (New, 87, &Push2::button_new);
        MAKE_WHITE_BUTTON_PRESS (FixedLength, 90, &Push2::button_fixed_length);
        MAKE_WHITE_BUTTON_PRESS (Up, 46, &Push2::button_up);
@@ -211,6 +211,147 @@ Push2::build_maps ()
        MAKE_WHITE_BUTTON_PRESS_RELEASE_LONG (Select, 48, &Push2::button_select_press, &Push2::button_select_release, &Push2::button_select_long_press);
 }
 
        MAKE_WHITE_BUTTON_PRESS_RELEASE_LONG (Select, 48, &Push2::button_select_press, &Push2::button_select_release, &Push2::button_select_long_press);
 }
 
+std::string
+Push2::button_name_by_id (ButtonID id)
+{
+       switch (id) {
+       case TapTempo:
+               return "TapTempo";
+       case Metronome:
+               return "Metronome";
+       case Upper1:
+               return "Upper1";
+       case Upper2:
+               return "Upper2";
+       case Upper3:
+               return "Upper3";
+       case Upper4:
+               return "Upper4";
+       case Upper5:
+               return "Upper5";
+       case Upper6:
+               return "Upper6";
+       case Upper7:
+               return "Upper7";
+       case Upper8:
+               return "Upper8";
+       case Setup:
+               return "Setup";
+       case User:
+               return "User";
+       case Delete:
+               return "Delete";
+       case AddDevice:
+               return "AddDevice";
+       case Device:
+               return "Device";
+       case Mix:
+               return "Mix";
+       case Undo:
+               return "Undo";
+       case AddTrack:
+               return "AddTrack";
+       case Browse:
+               return "Browse";
+       case Clip:
+               return "Clip";
+       case Mute:
+               return "Mute";
+       case Solo:
+               return "Solo";
+       case Stop:
+               return "Stop";
+       case Lower1:
+               return "Lower1";
+       case Lower2:
+               return "Lower2";
+       case Lower3:
+               return "Lower3";
+       case Lower4:
+               return "Lower4";
+       case Lower5:
+               return "Lower5";
+       case Lower6:
+               return "Lower6";
+       case Lower7:
+               return "Lower7";
+       case Lower8:
+               return "Lower8";
+       case Master:
+               return "Master";
+       case Convert:
+               return "Convert";
+       case DoubleLoop:
+               return "DoubleLoop";
+       case Quantize:
+               return "Quantize";
+       case Duplicate:
+               return "Duplicate";
+       case New:
+               return "New";
+       case FixedLength:
+               return "FixedLength";
+       case Automate:
+               return "Automate";
+       case RecordEnable:
+               return "RecordEnable";
+       case Play:
+               return "Play";
+       case Fwd32ndT:
+               return "Fwd32ndT";
+       case Fwd32nd:
+               return "Fwd32nd";
+       case Fwd16thT:
+               return "Fwd16thT";
+       case Fwd16th:
+               return "Fwd16th";
+       case Fwd8thT:
+               return "Fwd8thT";
+       case Fwd8th:
+               return "Fwd8th";
+       case Fwd4trT:
+               return "Fwd4trT";
+       case Fwd4tr:
+               return "Fwd4tr";
+       case Up:
+               return "Up";
+       case Right:
+               return "Right";
+       case Down:
+               return "Down";
+       case Left:
+               return "Left";
+       case Repeat:
+               return "Repeat";
+       case Accent:
+               return "Accent";
+       case Scale:
+               return "Scale";
+       case Layout:
+               return "Layout";
+       case Note:
+               return "Note";
+       case Session:
+               return "Session";
+       case OctaveUp:
+               return "OctaveUp";
+       case PageRight:
+               return "PageRight";
+       case OctaveDown:
+               return "OctaveDown";
+       case PageLeft:
+               return "PageLeft";
+       case Shift:
+               return "Shift";
+       case Select:
+               return "Select";
+       default:
+               break;
+       }
+
+       return "???";
+}
+
 void
 Push2::button_play ()
 {
 void
 Push2::button_play ()
 {
@@ -599,143 +740,14 @@ Push2::button_master ()
        }
 }
 
        }
 }
 
-std::string
-Push2::button_name_by_id (ButtonID id)
+void
+Push2::button_quantize ()
 {
 {
-       switch (id) {
-       case TapTempo:
-               return "TapTempo";
-       case Metronome:
-               return "Metronome";
-       case Upper1:
-               return "Upper1";
-       case Upper2:
-               return "Upper2";
-       case Upper3:
-               return "Upper3";
-       case Upper4:
-               return "Upper4";
-       case Upper5:
-               return "Upper5";
-       case Upper6:
-               return "Upper6";
-       case Upper7:
-               return "Upper7";
-       case Upper8:
-               return "Upper8";
-       case Setup:
-               return "Setup";
-       case User:
-               return "User";
-       case Delete:
-               return "Delete";
-       case AddDevice:
-               return "AddDevice";
-       case Device:
-               return "Device";
-       case Mix:
-               return "Mix";
-       case Undo:
-               return "Undo";
-       case AddTrack:
-               return "AddTrack";
-       case Browse:
-               return "Browse";
-       case Clip:
-               return "Clip";
-       case Mute:
-               return "Mute";
-       case Solo:
-               return "Solo";
-       case Stop:
-               return "Stop";
-       case Lower1:
-               return "Lower1";
-       case Lower2:
-               return "Lower2";
-       case Lower3:
-               return "Lower3";
-       case Lower4:
-               return "Lower4";
-       case Lower5:
-               return "Lower5";
-       case Lower6:
-               return "Lower6";
-       case Lower7:
-               return "Lower7";
-       case Lower8:
-               return "Lower8";
-       case Master:
-               return "Master";
-       case Convert:
-               return "Convert";
-       case DoubleLoop:
-               return "DoubleLoop";
-       case Quantize:
-               return "Quantize";
-       case Duplicate:
-               return "Duplicate";
-       case New:
-               return "New";
-       case FixedLength:
-               return "FixedLength";
-       case Automate:
-               return "Automate";
-       case RecordEnable:
-               return "RecordEnable";
-       case Play:
-               return "Play";
-       case Fwd32ndT:
-               return "Fwd32ndT";
-       case Fwd32nd:
-               return "Fwd32nd";
-       case Fwd16thT:
-               return "Fwd16thT";
-       case Fwd16th:
-               return "Fwd16th";
-       case Fwd8thT:
-               return "Fwd8thT";
-       case Fwd8th:
-               return "Fwd8th";
-       case Fwd4trT:
-               return "Fwd4trT";
-       case Fwd4tr:
-               return "Fwd4tr";
-       case Up:
-               return "Up";
-       case Right:
-               return "Right";
-       case Down:
-               return "Down";
-       case Left:
-               return "Left";
-       case Repeat:
-               return "Repeat";
-       case Accent:
-               return "Accent";
-       case Scale:
-               return "Scale";
-       case Layout:
-               return "Layout";
-       case Note:
-               return "Note";
-       case Session:
-               return "Session";
-       case OctaveUp:
-               return "OctaveUp";
-       case PageRight:
-               return "PageRight";
-       case OctaveDown:
-               return "OctaveDown";
-       case PageLeft:
-               return "PageLeft";
-       case Shift:
-               return "Shift";
-       case Select:
-               return "Select";
-       default:
-               break;
-       }
+       access_action ("Editor/quantize");
+}
 
 
-       return "???";
+void
+Push2::button_duplicate ()
+{
+       access_action ("Editor/duplicate-range");
 }
 }
index e2da7e7ff21d78e915a6e4ac74282804fbbf3013..47e4ab051e69e9598e951b66b26477ea94dc6481 100644 (file)
@@ -470,6 +470,8 @@ class Push2 : public ARDOUR::ControlProtocol
        void button_add_track ();
        void button_stop ();
        void button_master ();
        void button_add_track ();
        void button_stop ();
        void button_master ();
+       void button_quantize ();
+       void button_duplicate ();
        void button_shift_press ();
        void button_shift_release ();
        void button_shift_long_press ();
        void button_shift_press ();
        void button_shift_release ();
        void button_shift_long_press ();