X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fexport_dialog.h;h=09385a4b846525dea47e85b444a68b9734191671;hb=dc4f730ac95837590e8305f69778d1049e4a545e;hp=75511b5ad34b689044716b041fdf3cbb4965549b;hpb=aae367b63c9b619db1e40f27dc334c6987219481;p=ardour.git diff --git a/gtk2_ardour/export_dialog.h b/gtk2_ardour/export_dialog.h index 75511b5ad3..09385a4b84 100644 --- a/gtk2_ardour/export_dialog.h +++ b/gtk2_ardour/export_dialog.h @@ -21,7 +21,14 @@ #ifndef __export_dialog_h__ #define __export_dialog_h__ -#include +#include +#include + +#include +#include +#include +#include +#include #include "ardour/export_profile_manager.h" @@ -31,10 +38,7 @@ #include "export_file_notebook.h" #include "export_preset_selector.h" #include "ardour_dialog.h" - -#include - -#include "i18n.h" +#include "soundcloud_export_selector.h" namespace ARDOUR { class ExportStatus; @@ -44,11 +48,11 @@ namespace ARDOUR { class ExportTimespanSelector; class ExportChannelSelector; -class ExportDialog : public ArdourDialog { - - public: +class ExportDialog : public ArdourDialog, public PBD::ScopedConnectionList +{ +public: - explicit ExportDialog (PublicEditor & editor, Glib::ustring title = _("Export")); + ExportDialog (PublicEditor & editor, std::string title, ARDOUR::ExportProfileManager::ExportType type); ~ExportDialog (); void set_session (ARDOUR::Session* s); @@ -61,11 +65,16 @@ class ExportDialog : public ArdourDialog { RESPONSE_CANCEL }; - protected: +protected: + + void on_response (int response_id) { + Gtk::Dialog::on_response (response_id); + } typedef boost::shared_ptr HandlerPtr; typedef boost::shared_ptr ManagerPtr; + ARDOUR::ExportProfileManager::ExportType type; HandlerPtr handler; ManagerPtr profile_manager; @@ -75,30 +84,34 @@ class ExportDialog : public ArdourDialog { // Must initialize all the shared_ptrs below virtual void init_components (); - boost::shared_ptr preset_selector; - boost::shared_ptr timespan_selector; - boost::shared_ptr channel_selector; - boost::shared_ptr file_notebook; + boost::scoped_ptr preset_selector; + boost::scoped_ptr timespan_selector; + boost::scoped_ptr channel_selector; + boost::scoped_ptr file_notebook; + + boost::shared_ptr soundcloud_selector; Gtk::VBox warning_widget; Gtk::VBox progress_widget; - Gtk::Label * timespan_label; - Gtk::Label * channels_label; + /*** GUI components ***/ + Gtk::Notebook export_notebook; - private: +private: void init (); - void notify_errors (); + void notify_errors (bool force = false); void close_dialog (); void sync_with_manager (); - void update_warnings (); + void update_warnings_and_example_filename (); void show_conflicting_files (); - void export_rt (); - void export_fw (); + void do_export (); + + void update_realtime_selection (); + void parameter_changed (std::string const&); void show_progress (); gint progress_timeout (); @@ -107,47 +120,48 @@ class ExportDialog : public ArdourDialog { PublicEditor & editor; StatusPtr status; - PBD::ScopedConnection abort_connection; - /*** GUI components ***/ + /* Warning area */ Gtk::HBox warn_hbox; Gtk::Label warn_label; - Glib::ustring warn_string; + std::string warn_string; Gtk::HBox list_files_hbox; Gtk::Label list_files_label; Gtk::Button list_files_button; - Glib::ustring list_files_string; + std::string list_files_string; - void add_error (Glib::ustring const & text); - void add_warning (Glib::ustring const & text); + void add_error (std::string const & text); + void add_warning (std::string const & text); /* Progress bar */ - Gtk::Label progress_label; Gtk::ProgressBar progress_bar; sigc::connection progress_connection; + float previous_progress; // Needed for gtk bug workaround + + void soundcloud_upload_progress(double total, double now, std::string title); + /* Buttons */ Gtk::Button * cancel_button; - Gtk::Button * rt_export_button; - Gtk::Button * fast_export_button; + Gtk::Button * export_button; }; class ExportRangeDialog : public ExportDialog { public: - ExportRangeDialog (PublicEditor & editor, Glib::ustring range_id); + ExportRangeDialog (PublicEditor & editor, std::string range_id); private: void init_components (); - Glib::ustring range_id; + std::string range_id; }; class ExportSelectionDialog : public ExportDialog @@ -161,7 +175,7 @@ class ExportSelectionDialog : public ExportDialog class ExportRegionDialog : public ExportDialog { - public: + public: ExportRegionDialog (PublicEditor & editor, ARDOUR::AudioRegion const & region, ARDOUR::AudioTrack & track); private: @@ -172,4 +186,13 @@ class ExportRegionDialog : public ExportDialog ARDOUR::AudioTrack & track; }; +class StemExportDialog : public ExportDialog +{ + public: + StemExportDialog (PublicEditor & editor); + + private: + void init_components (); +}; + #endif /* __ardour_export_dialog_h__ */