X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Ftime_fx_dialog.h;h=03e0ccfdcd0aad5e5a3947ca2ae1f57ca9532ddf;hb=29b80725559c8fd60ae51bf33270963e647d0c1c;hp=a7e4a7ab100c798c53d084eea0ba27fd4cb9325c;hpb=22b07e0233a29d9633ffa825a79503befaf2e16e;p=ardour.git diff --git a/gtk2_ardour/time_fx_dialog.h b/gtk2_ardour/time_fx_dialog.h index a7e4a7ab10..03e0ccfdcd 100644 --- a/gtk2_ardour/time_fx_dialog.h +++ b/gtk2_ardour/time_fx_dialog.h @@ -1,26 +1,32 @@ /* - Copyright (C) 2000-2009 Paul Davis + Copyright (C) 2000-2009 Paul Davis - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef __ardour_time_fx_dialog_h__ #define __ardour_time_fx_dialog_h__ -#include +#include +#include +#include +#include +#include +#include +#include #include "ardour/timefx_request.h" @@ -28,48 +34,65 @@ #include "progress_reporter.h" class Editor; +class AudioClock; class TimeFXDialog : public ArdourDialog, public ProgressReporter { -public: - 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*); - -private: - - void update_progress_gui (float); + public: + /* We need a position so that BBT mode in the clock can function */ + TimeFXDialog (Editor& e, bool for_pitch, ARDOUR::framecnt_t old_length, ARDOUR::framecnt_t new_length, ARDOUR::framepos_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 (); + + private: + ARDOUR::framecnt_t original_length; + 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::Adjustment duration_adjustment; + AudioClock* duration_clock; + bool ignore_adjustment_change; + bool ignore_clock_change; + sigc::connection update_connection; + float progress; + + void update_progress_gui (float); + void duration_clock_changed (); + void duration_adjustment_changed (); + void timer_update (); }; #endif /* __ardour_time_fx_dialog_h__ */