diff options
author | Nil Geisweiller <ngeiswei@gmail.com> | 2020-04-03 22:17:53 +0300 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-04-07 18:26:45 +0200 |
commit | 104d37e5a225ab38650d950892d599ded9193552 (patch) | |
tree | a9d370d78704a161a4d5c32c1adbf6497674f5ef /gtk2_ardour/pianokeyboard.h | |
parent | 2377927fc16221e8805b152b1759c869fe3f7aa5 (diff) |
Move keyboard layout in its own class
Diffstat (limited to 'gtk2_ardour/pianokeyboard.h')
-rw-r--r-- | gtk2_ardour/pianokeyboard.h | 28 |
1 files changed, 4 insertions, 24 deletions
diff --git a/gtk2_ardour/pianokeyboard.h b/gtk2_ardour/pianokeyboard.h index bf92e20936..a3fbfc8568 100644 --- a/gtk2_ardour/pianokeyboard.h +++ b/gtk2_ardour/pianokeyboard.h @@ -23,6 +23,8 @@ #include <map> #include <gtkmm/drawingarea.h> +#include "keyboardlayout.h" + #define NNOTES (128) class APianoKeyboard : public Gtk::DrawingArea @@ -38,15 +40,6 @@ public: sigc::signal<void, int, bool> PitchBend; sigc::signal<void, bool> SwitchOctave; - enum Layout { - QWERTY, - QWERTZ, - AZERTY, - DVORAK, - S_QWERTY, - S_QWERTZ - }; - void sustain_press (); void sustain_release (); @@ -61,7 +54,7 @@ public: void set_monophonic (bool monophonic); void set_octave (int octave); void set_octave_range (int octave_range); - void set_keyboard_layout (Layout layout); + void set_keyboard_layout (KeyboardLayout::Layout layout); void set_velocities (int min_vel, int max_vel, int key_vel); protected: @@ -89,18 +82,6 @@ private: void stop_sustained_notes (); void stop_unsustained_notes (); - int key_binding (const char* key) const; - void bind_key (const char* key, int note); - void clear_notes (); - - void bind_keys_qwerty (); - void bind_keys_qwertz (); - void bind_keys_azerty (); - void bind_keys_dvorak (); - - void bind_keys_basic_qwerty (); - void bind_keys_basic_qwertz (); - int get_note_for_xy (int x, int y) const; int get_velocity_for_note_at_y (int note, int y) const; @@ -144,8 +125,7 @@ private: PKNote _notes[NNOTES]; - std::map<std::string, int> _key_bindings; /**< Table used to translate from PC keyboard character to MIDI note number. */ - std::map<int, std::string> _note_bindings; /**< Table to translate from MIDI note number to PC keyboard character. */ + KeyboardLayout _keyboard_layout; std::map<std::string, int> _note_stack; /* these are only valid during expose/draw */ |