sigc::signal<void, int, int> NoteOn;
sigc::signal<void, int> NoteOff;
sigc::signal<void> Rest;
+ sigc::signal<void,bool> SustainChanged;
enum Layout {
QWERTY,
QWERTZ,
AZERTY,
- DVORAK
+ DVORAK,
+ S_QWERTY,
+ S_QWERTZ
};
void sustain_press ();
void set_note_on (int note);
void set_note_off (int note);
- void set_keyboard_cue (bool enabled);
void set_grand_piano_highlight (bool enabled);
- void show_note_label (bool enabled);
+ void set_annotate_layout (bool enabled);
+ void set_annotate_octave (bool enabled);
void set_monophonic (bool monophonic);
void set_octave (int octave);
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;
int h; /* Height of the key, in pixels. */
};
- bool _maybe_stop_sustained_notes;
bool _sustain_new_notes;
- bool _enable_keyboard_cue;
bool _highlight_grand_piano_range;
- bool _print_note_label;
+ bool _annotate_layout;
+ bool _annotate_octave;
int _octave;
int _octave_range;
int _note_being_pressed_using_mouse;
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. */
+ std::map<std::string, int> _note_stack;
/* these are only valid during expose/draw */
PangoFontDescription* _font_cue;