X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fsurfaces%2Fpush2%2Fpush2.h;h=89982928bd09bcf09f1b078241ea05c52f7693a7;hb=3448f3151e52565197692512e92be7dc0c08a7c2;hp=3a1f33861f343efb1a355f1d226a98bb022e726a;hpb=64d390ff13cc3429dac9416f4cba0d95b838deca;p=ardour.git diff --git a/libs/surfaces/push2/push2.h b/libs/surfaces/push2/push2.h index 3a1f33861f..89982928bd 100644 --- a/libs/surfaces/push2/push2.h +++ b/libs/surfaces/push2/push2.h @@ -21,30 +21,26 @@ #include #include +#include #include #include #include -#include - #define ABSTRACT_UI_EXPORTS #include "pbd/abstract_ui.h" #include "midi++/types.h" +#include "ardour/mode.h" #include "ardour/types.h" #include "control_protocol/control_protocol.h" #include "control_protocol/types.h" -#include "midi_byte_array.h" -#include "mode.h" +#include "gtkmm2ext/colors.h" -namespace Cairo { - class ImageSurface; - class Context; -} +#include "midi_byte_array.h" namespace Pango { class Layout; @@ -73,6 +69,7 @@ public: class P2GUI; class Push2Menu; class Push2Layout; +class Push2Canvas; class Push2 : public ARDOUR::ControlProtocol , public AbstractUI @@ -281,6 +278,32 @@ class Push2 : public ARDOUR::ControlProtocol : Button (bb, ex, press, release, long_press) {} }; + enum ColorName { + DarkBackground, + LightBackground, + + ParameterName, + StripableName, + ClockText, + + KnobArcBackground, + KnobArcStart, + KnobArcEnd, + + KnobLine, + KnobLineShadow, + + KnobForeground, + KnobBackground, + KnobShadow, + KnobBorder, + }; + + enum PressureMode { + AfterTouch, + PolyPressure, + }; + public: Push2 (ARDOUR::Session&); ~Push2 (); @@ -306,7 +329,10 @@ class Push2 : public ARDOUR::ControlProtocol int pad_note (int row, int col) const; PBD::Signal0 PadChange; + void update_selection_color (); + void set_pad_scale (int root, int octave, MusicalMode::Type mode, bool inkey); + PBD::Signal0 ScaleChange; MusicalMode::Type mode() const { return _mode; } int scale_root() const { return _scale_root; } @@ -314,6 +340,9 @@ class Push2 : public ARDOUR::ControlProtocol bool in_key() const { return _in_key; } Push2Layout* current_layout() const; + void use_previous_layout (); + + Push2Canvas* canvas() const { return _canvas; } enum ModifierState { None = 0, @@ -323,55 +352,66 @@ class Push2 : public ARDOUR::ControlProtocol ModifierState modifier_state() const { return _modifier_state; } - Button* button_by_id (ButtonID); + boost::shared_ptr