summaryrefslogtreecommitdiff
path: root/gtk2_ardour/export_dialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/export_dialog.h')
-rw-r--r--gtk2_ardour/export_dialog.h132
1 files changed, 132 insertions, 0 deletions
diff --git a/gtk2_ardour/export_dialog.h b/gtk2_ardour/export_dialog.h
new file mode 100644
index 0000000000..f974af26a1
--- /dev/null
+++ b/gtk2_ardour/export_dialog.h
@@ -0,0 +1,132 @@
+/*
+ Copyright (C) 1999-2002 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_export_dialog_h__
+#define __ardour_export_dialog_h__
+
+#include <gtk--.h>
+
+#include <ardour/export.h>
+#include "ardour_dialog.h"
+#include <ardour/location.h>
+
+
+class PublicEditor;
+
+namespace ARDOUR {
+ class Session;
+ class AudioRegion;
+}
+
+class ExportDialog : public ArdourDialog
+{
+ public:
+ ExportDialog (PublicEditor&, ARDOUR::AudioRegion* r = 0);
+ ~ExportDialog ();
+
+ void connect_to_session (ARDOUR::Session*);
+ void set_range (jack_nframes_t start, jack_nframes_t end);
+ void start_export ();
+
+ private:
+ PublicEditor& editor;
+ ARDOUR::Session* session;
+ ARDOUR::AudioRegion* audio_region;
+ Gtk::VBox vpacker;
+ Gtk::VBox track_vpacker;
+ Gtk::HBox hpacker;
+ Gtk::HBox button_box;
+
+ Gtk::Table format_table;
+ Gtk::Frame format_frame;
+
+ Gtk::Label sample_rate_label;
+ Gtk::Combo sample_rate_combo;
+ Gtk::Label src_quality_label;
+ Gtk::Combo src_quality_combo;
+ Gtk::Label dither_type_label;
+ Gtk::Combo dither_type_combo;
+ Gtk::Label cue_file_label;
+ Gtk::Combo cue_file_combo;
+ Gtk::Label channel_count_label;
+ Gtk::Combo channel_count_combo;
+ Gtk::Label header_format_label;
+ Gtk::Combo header_format_combo;
+ Gtk::Label bitdepth_format_label;
+ Gtk::Combo bitdepth_format_combo;
+ Gtk::Label endian_format_label;
+ Gtk::Combo endian_format_combo;
+ Gtk::CheckButton cuefile_only_checkbox;
+
+ Gtk::Frame file_frame;
+ Gtk::Entry file_entry;
+ Gtk::HBox file_hbox;
+ Gtk::Button file_browse_button;
+
+ Gtk::Button ok_button;
+ Gtk::Button cancel_button;
+ Gtk::Label cancel_label;
+ Gtk::ProgressBar progress_bar;
+ Gtk::ScrolledWindow track_scroll;
+ Gtk::ScrolledWindow master_scroll;
+ Gtk::Button track_selector_button;
+ Gtk::CList track_selector;
+ Gtk::CList master_selector;
+ Gtk::FileSelection *file_selector;
+ ARDOUR::AudioExportSpecification spec;
+
+ static GdkPixmap *check_pixmap;
+ static GdkBitmap *check_mask;
+ static GdkPixmap *empty_pixmap;
+ static GdkBitmap *empty_mask;
+
+ static void *_thread (void *arg);
+ gint progress_timeout ();
+ SigC::Connection progress_connection;
+ void build_window ();
+ void end_dialog();
+ gint header_chosen (GdkEventAny *ignored);
+ gint channels_chosen (GdkEventAny *ignored);
+ gint bitdepth_chosen (GdkEventAny *ignored);
+ gint sample_rate_chosen (GdkEventAny *ignored);
+ gint cue_file_type_chosen(GdkEventAny *ignored);
+ gint track_selector_button_press_event (GdkEventButton *ev);
+ gint master_selector_button_press_event (GdkEventButton *ev);
+
+ void do_export_cd_markers (const string& path, const string& cuefile_type);
+ void export_cue_file (ARDOUR::Locations::LocationList& locations, const string& path);
+ void export_toc_file (ARDOUR::Locations::LocationList& locations, const string& path);
+ void do_export ();
+ gint change_focus_policy (GdkEventAny *, bool);
+ gint window_closed (GdkEventAny *ignored);
+
+ void track_selector_button_click ();
+
+ void initiate_browse ();
+ void finish_browse (int status);
+
+ void set_state();
+ void save_state();
+
+ static void* _export_region_thread (void *);
+ void export_region ();
+};
+
+#endif // __ardour_export_dialog_h__
+