X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gtk2_ardour%2Ftempo_dialog.h;h=f9f0dd34a01e423b107b4b6a9022cc0d43344a8d;hb=352c824fa3999244ef1ebf002d57d4b2dea5ae3c;hp=842c2f2c3c3b532e273247ce8a232ba94ae42034;hpb=dbfe991cd862aa1d420c65c9808e5f4e199995ed;p=ardour.git diff --git a/gtk2_ardour/tempo_dialog.h b/gtk2_ardour/tempo_dialog.h index 842c2f2c3c..f9f0dd34a0 100644 --- a/gtk2_ardour/tempo_dialog.h +++ b/gtk2_ardour/tempo_dialog.h @@ -38,16 +38,18 @@ class TempoDialog : public ArdourDialog { public: - TempoDialog (ARDOUR::TempoMap&, framepos_t, const std::string & action); - TempoDialog (ARDOUR::TempoSection&, const std::string & action); + TempoDialog (ARDOUR::TempoMap&, samplepos_t, const std::string & action); + TempoDialog (ARDOUR::TempoMap&, ARDOUR::TempoSection&, const std::string & action); double get_bpm (); + double get_end_bpm (); double get_note_type (); bool get_bbt_time (Timecode::BBT_Time&); - ARDOUR::TempoSection::TempoSectionType get_tempo_type (); + ARDOUR::TempoSection::Type get_tempo_type (); + ARDOUR::PositionLockStyle get_lock_style (); private: - void init (const Timecode::BBT_Time& start, double, double, bool); + void init (const Timecode::BBT_Time& start, double bpm, double end_bpm, double note_type, ARDOUR::TempoSection::Type type, bool movable, ARDOUR::PositionLockStyle style); bool is_user_input_valid() const; void bpm_changed (); bool bpm_button_press (GdkEventButton* ); @@ -55,24 +57,37 @@ private: bool entry_key_release (GdkEventKey* ); void pulse_change (); void tempo_type_change (); - bool tap_tempo_button_press (GdkEventButton* ); + void lock_style_change (); + bool tap_tempo_key_press (GdkEventKey*); + bool tap_tempo_button_press (GdkEventButton*); bool tap_tempo_focus_out (GdkEventFocus* ); + void tap_tempo (); + typedef std::map NoteTypes; NoteTypes note_types; - typedef std::map TempoTypes; + typedef std::map TempoTypes; TempoTypes tempo_types; + typedef std::map LockStyles; + LockStyles lock_styles; + bool tapped; // whether the tap-tempo button has been clicked double sum_x, sum_xx, sum_xy, sum_y; double tap_count; double last_t; gint64 first_t; + ARDOUR::TempoMap* _map; + ARDOUR::TempoSection* _section; + Gtk::ComboBoxText pulse_selector; Gtk::Adjustment bpm_adjustment; Gtk::SpinButton bpm_spinner; + Gtk::Adjustment end_bpm_adjustment; + Gtk::SpinButton end_bpm_spinner; + Gtk::Label _end_bpm_label; Gtk::Entry when_bar_entry; Gtk::Entry when_beat_entry; Gtk::Label when_bar_label; @@ -80,32 +95,38 @@ private: Gtk::Label pulse_selector_label; Gtk::Button tap_tempo_button; Gtk::ComboBoxText tempo_type; - + Gtk::ComboBoxText lock_style; }; class MeterDialog : public ArdourDialog { public: - MeterDialog (ARDOUR::TempoMap&, framepos_t, const std::string & action); - MeterDialog (ARDOUR::MeterSection&, const std::string & action); + MeterDialog (ARDOUR::TempoMap&, samplepos_t, const std::string & action); + MeterDialog (ARDOUR::TempoMap&, ARDOUR::MeterSection&, const std::string & action); double get_bpb (); double get_note_type (); + ARDOUR::PositionLockStyle get_lock_style (); bool get_bbt_time (Timecode::BBT_Time&); private: - void init (const Timecode::BBT_Time&, double, double, bool); + void init (const Timecode::BBT_Time&, double, double, bool, ARDOUR::PositionLockStyle style); bool is_user_input_valid() const; bool entry_key_press (GdkEventKey* ); bool entry_key_release (GdkEventKey* ); void note_type_change (); + void lock_style_change (); typedef std::map NoteTypes; NoteTypes note_types; + typedef std::map LockStyles; + LockStyles lock_styles; + Gtk::Entry bpb_entry; Gtk::ComboBoxText note_type; + Gtk::ComboBoxText lock_style; std::vector strings; Gtk::Button ok_button; Gtk::Button cancel_button;