summaryrefslogtreecommitdiff
path: root/libs/surfaces/push2/push2.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-07-10 08:37:45 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-09-27 14:59:30 -0500
commit86578ea0cc1daef464953fdb80820d40a8167f78 (patch)
treeb1f626a0e11f5db70516c59cba9837664a0e953c /libs/surfaces/push2/push2.h
parentb37531e04f1f8786ffcc8599759aa93411d42c1b (diff)
push2: first somewhat operational versions of menus
Diffstat (limited to 'libs/surfaces/push2/push2.h')
-rw-r--r--libs/surfaces/push2/push2.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/libs/surfaces/push2/push2.h b/libs/surfaces/push2/push2.h
index d1655d1d60..4ced88b67f 100644
--- a/libs/surfaces/push2/push2.h
+++ b/libs/surfaces/push2/push2.h
@@ -71,6 +71,7 @@ public:
};
class P2GUI;
+class Push2Menu;
class Push2 : public ARDOUR::ControlProtocol
, public AbstractUI<Push2Request>
@@ -107,6 +108,9 @@ class Push2 : public ARDOUR::ControlProtocol
int root_octave() const { return _root_octave; }
bool in_key() const { return _in_key; }
+ static const int cols;
+ static const int rows;
+
private:
libusb_device_handle *handle;
uint8_t frame_header[16];
@@ -124,8 +128,6 @@ class Push2 : public ARDOUR::ControlProtocol
ModifierState modifier_state;
- static const int cols;
- static const int rows;
static const int pixels_per_row;
void do_request (Push2Request*);
@@ -460,6 +462,7 @@ class Push2 : public ARDOUR::ControlProtocol
void button_octave_up ();
void button_octave_down ();
void button_layout_press ();
+ void button_scale_press ();
void start_shift ();
void end_shift ();
@@ -536,8 +539,17 @@ class Push2 : public ARDOUR::ControlProtocol
bool percussion;
void set_percussive_mode (bool);
-};
+ /* menus */
+ Push2Menu* current_menu;
+ Push2Menu* drawn_menu;
+ Push2Menu* scale_menu;
+
+ void build_scale_menu ();
+ void set_menu (Push2Menu*);
+ void show_scale_menu ();
+ void cancel_menu ();
+};
} /* namespace */