Split TimeFXDialog from Editor.
[ardour.git] / gtk2_ardour / time_fx_dialog.h
diff --git a/gtk2_ardour/time_fx_dialog.h b/gtk2_ardour/time_fx_dialog.h
new file mode 100644 (file)
index 0000000..d5ec54c
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+    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.
+
+*/
+
+#ifndef __ardour_time_fx_dialog_h__
+#define __ardour_time_fx_dialog_h__
+
+#include <gtkmm.h>
+
+#include "ardour_dialog.h"
+#include "region_selection.h"
+
+class Editor;
+
+struct TimeFXDialog : public ArdourDialog {
+    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;
+    RegionSelection       regions;
+    Gtk::ProgressBar      progress_bar;
+
+    /* SoundTouch */
+    Gtk::ToggleButton     quick_button;
+    Gtk::ToggleButton     antialias_button;
+    Gtk::HBox             upper_button_box;
+
+    /* RubberBand */
+    Gtk::ComboBoxText     stretch_opts_selector;
+    Gtk::Label            stretch_opts_label;
+    Gtk::ToggleButton     precise_button;
+    Gtk::ToggleButton     preserve_formants_button;
+    Gtk::HBox             opts_box;
+
+    Gtk::Button*          cancel_button;
+    Gtk::Button*          action_button;
+    Gtk::VBox             packer;
+    int                   status;
+
+    TimeFXDialog (Editor& e, bool for_pitch);
+
+    gint update_progress ();
+    sigc::connection first_cancel;
+    sigc::connection first_delete;
+    void cancel_in_progress ();
+    gint delete_in_progress (GdkEventAny*);
+};
+
+#endif /* __ardour_time_fx_dialog_h__ */