#define __export_file_notebook_h__
#include <sigc++/signal.h>
-#include <gtkmm.h>
+
+#include <gtkmm/alignment.h>
+#include <gtkmm/box.h>
+#include <gtkmm/button.h>
+#include <gtkmm/checkbutton.h>
+#include <gtkmm/label.h>
+#include <gtkmm/notebook.h>
#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:
+public:
ExportFileNotebook ();
void set_session_and_manager (ARDOUR::Session * s, boost::shared_ptr<ARDOUR::ExportProfileManager> manager);
void sync_with_manager ();
+ void update_example_filenames();
- Glib::ustring get_nth_format_name (uint32_t n);
+ boost::shared_ptr<SoundcloudExportSelector> soundcloud_export_selector;
sigc::signal<void> CriticalSelectionChanged;
- private:
+private:
typedef boost::shared_ptr<ARDOUR::ExportProfileManager> ManagerPtr;
typedef boost::shared_ptr<ARDOUR::ExportFormatSpecification> FormatPtr;
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);
uint32_t last_visible_page;
uint32_t page_counter;
- class FilePage : public Gtk::VBox {
- public:
+ class FilePage : public Gtk::VBox
+ {
+ public:
FilePage (ARDOUR::Session * s, ManagerPtr profile_manager, ExportFileNotebook * parent, uint32_t number,
ARDOUR::ExportProfileManager::FormatStatePtr format_state,
ARDOUR::ExportProfileManager::FilenameStatePtr filename_state);
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();
+
+ void update_analysis_button ();
+ void update_soundcloud_upload_button ();
ARDOUR::ExportProfileManager::FormatStatePtr get_format_state () const { return format_state; }
ARDOUR::ExportProfileManager::FilenameStatePtr get_filename_state () const { return filename_state; }
sigc::signal<void> CriticalSelectionChanged;
- private:
+ private:
void save_format_to_manager (FormatPtr format);
void update_tab_label ();
+ void critical_selection_changed ();
+ void analysis_changed ();
+ void soundcloud_upload_changed ();
ARDOUR::ExportProfileManager::FormatStatePtr format_state;
ARDOUR::ExportProfileManager::FilenameStatePtr filename_state;
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::CheckButton analysis_button;
Gtk::HBox tab_widget;
Gtk::Label tab_label;
Gtk::Alignment tab_close_alignment;