- ARDOUR::TimeFXRequest request;
- Editor& editor;
- bool pitching;
- Gtk::Adjustment pitch_octave_adjustment;
- Gtk::Adjustment pitch_semitone_adjustment;
- Gtk::Adjustment pitch_cent_adjustment;
- Gtk::SpinButton pitch_octave_spinner;
- Gtk::SpinButton pitch_semitone_spinner;
- Gtk::SpinButton pitch_cent_spinner;
- Gtk::ProgressBar progress_bar;
- ARDOUR::RegionList regions;
-
- /* SoundTouch */
- Gtk::CheckButton quick_button;
- Gtk::CheckButton antialias_button;
- Gtk::VBox upper_button_box;
-
- /* RubberBand */
- Gtk::ComboBoxText stretch_opts_selector;
- Gtk::Label stretch_opts_label;
- Gtk::CheckButton precise_button;
- Gtk::CheckButton preserve_formants_button;
-
- Gtk::Button* cancel_button;
- Gtk::Button* action_button;
- Gtk::VBox packer;
- int status;
-
- TimeFXDialog (Editor& e, bool for_pitch);
-
- sigc::connection first_cancel;
- sigc::connection first_delete;
- void cancel_in_progress ();
- gint delete_in_progress (GdkEventAny*);
+ /* We need a position so that BBT mode in the clock can function */
+ TimeFXDialog (Editor& e, bool for_pitch, ARDOUR::samplecnt_t old_length, ARDOUR::samplecnt_t new_length, ARDOUR::samplepos_t position);
+
+ ARDOUR::TimeFXRequest request;
+ Editor& editor;
+ bool pitching;
+ Gtk::ProgressBar progress_bar;
+ ARDOUR::RegionList regions;
+
+ /* SoundTouch */
+ Gtk::CheckButton quick_button;
+ Gtk::CheckButton antialias_button;
+ Gtk::VBox upper_button_box;
+
+ /* RubberBand */
+ Gtk::ComboBoxText stretch_opts_selector;
+ Gtk::Label stretch_opts_label;
+ Gtk::CheckButton precise_button;
+ Gtk::CheckButton preserve_formants_button;
+
+ Gtk::Button* cancel_button;
+ Gtk::Button* action_button;
+ Gtk::VBox packer;
+ int status;
+
+ sigc::connection first_cancel;
+ sigc::connection first_delete;
+ void cancel_in_progress ();
+ gint delete_in_progress (GdkEventAny*);
+
+ float get_time_fraction () const;
+ float get_pitch_fraction () const;
+
+ void start_updates ();
+
+ void on_response (int response_id) {
+ Gtk::Dialog::on_response (response_id);
+ }
+
+ void hide () {
+ regions.clear ();
+ ArdourDialog::hide ();
+ }