X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fexport_file_notebook.h;h=42a05e7611314307a07025c04e811a44774ccf07;hb=93cd0d17e4350958308dd1258d7e3aa0e5417292;hp=b6aee9992c525e16b9b64fe389d384778ce8e094;hpb=e0aaed6d65f160c328cb8b56d7c6552ee15d65e2;p=ardour.git diff --git a/gtk2_ardour/export_file_notebook.h b/gtk2_ardour/export_file_notebook.h index b6aee9992c..42a05e7611 100644 --- a/gtk2_ardour/export_file_notebook.h +++ b/gtk2_ardour/export_file_notebook.h @@ -25,88 +25,92 @@ #include #include "ardour/export_profile_manager.h" +#include "ardour/session_handle.h" #include "export_format_selector.h" #include "export_filename_selector.h" +#include "soundcloud_export_selector.h" -namespace ARDOUR { - class Session; -} - - -class ExportFileNotebook : public Gtk::Notebook +class ExportFileNotebook : public Gtk::Notebook, public ARDOUR::SessionHandlePtr { public: - + ExportFileNotebook (); - + void set_session_and_manager (ARDOUR::Session * s, boost::shared_ptr manager); void sync_with_manager (); - - Glib::ustring get_nth_format_name (uint32_t n); - + void update_example_filenames(); + + boost::shared_ptr soundcloud_export_selector; + sigc::signal CriticalSelectionChanged; - + private: typedef boost::shared_ptr ManagerPtr; typedef boost::shared_ptr FormatPtr; typedef boost::shared_ptr FilenamePtr; class FilePage; - + ManagerPtr profile_manager; - ARDOUR::Session * session; void add_new_file_page (); void add_file_page (ARDOUR::ExportProfileManager::FormatStatePtr format_state, ARDOUR::ExportProfileManager::FilenameStatePtr filename_state); void remove_file_page (FilePage * page); void update_remove_file_page_sensitivity (); - + void update_soundcloud_upload (); + sigc::connection page_change_connection; void handle_page_change (GtkNotebookPage*, uint32_t page); - + Gtk::HBox new_file_hbox; Gtk::Button new_file_button; Gtk::VBox new_file_dummy; - + uint32_t last_visible_page; uint32_t page_counter; class FilePage : public Gtk::VBox { public: - FilePage (ARDOUR::Session * s, ManagerPtr profile_manager, ExportFileNotebook * parent, uint32_t number, + FilePage (ARDOUR::Session * s, ManagerPtr profile_manager, ExportFileNotebook * parent, uint32_t number, ARDOUR::ExportProfileManager::FormatStatePtr format_state, ARDOUR::ExportProfileManager::FilenameStatePtr filename_state); - + virtual ~FilePage (); - + Gtk::Widget & get_tab_widget () { return tab_widget; } void set_remove_sensitive (bool value); - Glib::ustring get_format_name () const; - + std::string get_format_name () const; + bool get_soundcloud_upload () const; + + void update_example_filename(); + ARDOUR::ExportProfileManager::FormatStatePtr get_format_state () const { return format_state; } ARDOUR::ExportProfileManager::FilenameStatePtr get_filename_state () const { return filename_state; } - + sigc::signal CriticalSelectionChanged; - + private: void save_format_to_manager (FormatPtr format); void update_tab_label (); - + void critical_selection_changed (); + ARDOUR::ExportProfileManager::FormatStatePtr format_state; ARDOUR::ExportProfileManager::FilenameStatePtr filename_state; ManagerPtr profile_manager; - + /* GUI components */ - + Gtk::Label format_label; Gtk::Alignment format_align; ExportFormatSelector format_selector; - + PBD::ScopedConnection format_connection; + Gtk::Label filename_label; Gtk::Alignment filename_align; ExportFilenameSelector filename_selector; - + + Gtk::CheckButton soundcloud_upload_button; Gtk::HBox tab_widget; Gtk::Label tab_label; Gtk::Alignment tab_close_alignment;