id_button_map[FixedLength]->set_state (LED::NoTransition);
write (id_button_map[FixedLength]->state_msg());
}
+
+void
+Push2::button_shift_press ()
+{
+ modifier_state = ModifierState (modifier_state | ModShift);
+}
+
+void
+Push2::button_shift_release ()
+{
+ modifier_state = ModifierState (modifier_state & ~ModShift);
+}
+
, handle (0)
, device_buffer (0)
, frame_buffer (Cairo::ImageSurface::create (Cairo::FORMAT_ARGB32, cols, rows))
+ , modifier_state (None)
{
context = Cairo::Context::create (frame_buffer);
tc_clock_layout = Pango::Layout::create (context);
button = new WhiteButton ((i), (cc), (p)); \
cc_button_map.insert (make_pair (button->controller_number(), button)); \
id_button_map.insert (make_pair (button->id, button))
+#define MAKE_WHITE_BUTTON_PRESS_RELEASE(i,cc,p,r) \
+ button = new WhiteButton ((i), (cc), (p), (r)); \
+ cc_button_map.insert (make_pair (button->controller_number(), button)); \
+ id_button_map.insert (make_pair (button->id, button))
MAKE_WHITE_BUTTON (TapTempo, 3);
MAKE_WHITE_BUTTON_PRESS (Metronome, 9, &Push2::button_metronome);
MAKE_WHITE_BUTTON (PageRight, 63);
MAKE_WHITE_BUTTON (OctaveDown, 54);
MAKE_WHITE_BUTTON (PageLeft, 62);
- MAKE_WHITE_BUTTON (Shift, 49);
+ MAKE_WHITE_BUTTON_PRESS_RELEASE (Shift, 49, &Push2::button_shift_press, &Push2::button_shift_release);
MAKE_WHITE_BUTTON (Select, 48);
}
sigc::connection vblank_connection;
sigc::connection periodic_connection;
+ enum ModifierState {
+ None = 0,
+ ModShift = 0x1,
+ };
+
+ ModifierState modifier_state;
+
static const int cols;
static const int rows;
static const int pixels_per_row;
void button_solo ();
void button_fixed_length ();
void button_new ();
+ void button_shift_press ();
+ void button_shift_release ();
/* widgets */