X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Ftime_fx_dialog.h;h=896ce25f9ae91dadbe54e9b42a0d9cab439bc593;hb=929bd7c8acc60d8e4781796fa9d076aa36b6a420;hp=c2616b6d2bb532ac249bf9c1804c9a8c531f8134;hpb=60055a0d6ab0ce7abd65daeb52cef96cf2c4244f;p=ardour.git diff --git a/gtk2_ardour/time_fx_dialog.h b/gtk2_ardour/time_fx_dialog.h index c2616b6d2b..896ce25f9a 100644 --- a/gtk2_ardour/time_fx_dialog.h +++ b/gtk2_ardour/time_fx_dialog.h @@ -1,21 +1,23 @@ /* - 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 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. - -*/ + * Copyright (C) 2009-2012 Carl Hetherington + * Copyright (C) 2009-2012 David Robillard + * Copyright (C) 2012-2017 Paul Davis + * Copyright (C) 2015-2019 Robin Gareus + * + * 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. + * + * 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ #ifndef __ardour_time_fx_dialog_h__ #define __ardour_time_fx_dialog_h__ @@ -38,9 +40,9 @@ class AudioClock; class TimeFXDialog : public ArdourDialog, public ProgressReporter { - public: +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); + 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; @@ -72,20 +74,36 @@ class TimeFXDialog : public ArdourDialog, public ProgressReporter float get_time_fraction () const; float get_pitch_fraction () const; - 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 percent_adjustment; - AudioClock* duration_clock; - Gtk::RadioButton duration_chosen; - Gtk::RadioButtonGroup choice_group; - Gtk::RadioButton percent_chosen; + void start_updates (); + + void on_response (int response_id) { + Gtk::Dialog::on_response (response_id); + } + + void hide () { + regions.clear (); + ArdourDialog::hide (); + } + +private: + ARDOUR::samplecnt_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__ */