X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fstep_entry.h;h=26c46d5c51150a24f54c4c0419205c55d89d16f0;hb=6424a0eab93c85f8b1ff56334f779c1232dfe475;hp=d9c54923041d6c33468e13327c82d942496c1449;hpb=bbdc31768ae4ba768ac79982cc59e403d00f455c;p=ardour.git diff --git a/gtk2_ardour/step_entry.h b/gtk2_ardour/step_entry.h index d9c5492304..26c46d5c51 100644 --- a/gtk2_ardour/step_entry.h +++ b/gtk2_ardour/step_entry.h @@ -27,28 +27,28 @@ #include #include -#include "ardour_dialog.h" +#include "ardour_window.h" #include "gtk_pianokeyboard.h" -class MidiTimeAxisView; +class StepEditor; -class StepEntry : public ArdourDialog +class StepEntry : public ArdourWindow { public: - StepEntry (MidiTimeAxisView&); + StepEntry (StepEditor&); ~StepEntry (); void note_off_event_handler (int note); void rest_event_handler (); - Evoral::MusicalTime note_length() const; + Evoral::Beats note_length(); uint8_t note_velocity() const; uint8_t note_channel() const; - + int current_octave () const { return (int) floor (octave_adjustment.get_value()); } - + private: - Evoral::MusicalTime _current_note_length; + Evoral::Beats _current_note_length; uint8_t _current_note_velocity; Gtk::VBox packer; @@ -58,18 +58,27 @@ class StepEntry : public ArdourDialog Gtk::ToggleButton chord_button; Gtk::ToggleButton triplet_button; - Gtk::ToggleButton dot_button; + Gtk::ToggleButton dot0_button; + Gtk::ToggleButton dot1_button; + Gtk::ToggleButton dot2_button; + Gtk::ToggleButton dot3_button; + Gtk::Adjustment dot_adjustment; + Gtk::VBox dot_box1; + Gtk::VBox dot_box2; Gtk::ToggleButton restart_button; Gtk::VBox resync_box; Gtk::Button beat_resync_button; Gtk::Button bar_resync_button; + Gtk::Button resync_button; Gtk::Button sustain_button; Gtk::Button rest_button; Gtk::Button grid_rest_button; Gtk::VBox rest_box; + Gtk::Button back_button; + Gtk::RadioButton length_1_button; Gtk::RadioButton length_2_button; Gtk::RadioButton length_4_button; @@ -100,6 +109,14 @@ class StepEntry : public ArdourDialog Gtk::Adjustment velocity_adjustment; Gtk::SpinButton velocity_spinner; + Gtk::Adjustment bank_adjustment; + Gtk::SpinButton bank_spinner; + Gtk::Button bank_button; + + Gtk::Adjustment program_adjustment; + Gtk::SpinButton program_spinner; + Gtk::Button program_button; + void length_changed (); void velocity_changed (); void velocity_value_change (); @@ -107,13 +124,10 @@ class StepEntry : public ArdourDialog PianoKeyboard* _piano; Gtk::Widget* piano; - MidiTimeAxisView* _mtv; + StepEditor* se; - void rest_click (); - void grid_rest_click (); - void sustain_click (); - void chord_toggled (); - void triplet_toggled (); + void bank_click (); + void program_click (); void beat_resync_click (); void bar_resync_click (); @@ -126,7 +140,6 @@ class StepEntry : public ArdourDialog /* actions */ void register_actions (); - Gtkmm2ext::ActionMap myactions; void insert_note (uint8_t); void insert_rest (); @@ -144,7 +157,7 @@ class StepEntry : public ArdourDialog void insert_fsharp (); void insert_g (); void insert_gsharp (); - + void note_length_change (GtkAction*); void note_velocity_change (GtkAction*); @@ -152,7 +165,44 @@ class StepEntry : public ArdourDialog bool radio_button_release (GdkEventButton*, Gtk::RadioButton*, int); void load_bindings (); - Gtkmm2ext::Bindings bindings; + Gtkmm2ext::ActionMap myactions; + Gtkmm2ext::Bindings* bindings; + + void inc_note_velocity (); + void dec_note_velocity (); + void next_note_velocity (); + void prev_note_velocity (); + + void inc_note_length (); + void dec_note_length (); + void next_note_length (); + void prev_note_length (); + + void next_octave (); + void prev_octave (); + + void octave_n (int n); + void octave_0 () { octave_n (0); } + void octave_1 () { octave_n (1); } + void octave_2 () { octave_n (2); } + void octave_3 () { octave_n (3); } + void octave_4 () { octave_n (4); } + void octave_5 () { octave_n (5); } + void octave_6 () { octave_n (6); } + void octave_7 () { octave_n (7); } + void octave_8 () { octave_n (8); } + void octave_9 () { octave_n (9); } + void octave_10 () { octave_n (10); } + + void dot_change (GtkAction*); + void dot_value_change (); + + void toggle_triplet(); + void toggle_chord(); + + void do_sustain (); + void back(); + void sync_to_edit_point (); }; #endif /* __gtk2_ardour_step_entry_h__ */