diff options
author | Colin Fletcher <colin.m.fletcher@googlemail.com> | 2014-05-23 18:14:37 +0100 |
---|---|---|
committer | Colin Fletcher <colin.m.fletcher@googlemail.com> | 2014-05-23 18:14:37 +0100 |
commit | 9daab3db8481de5653e97321c7bb2aa881f0d54c (patch) | |
tree | 651c946b0aab2b77be45bc46bbbaf8bf30c43fd2 | |
parent | 2f6debf0d2b78bd6399f9e28e98333e1fd1b05d3 (diff) |
Make Soundcloud upload applicable to any export format.
Add soundcloud_upload property back into ExportFormatSpecification, but
instead of making it settable in the export format specification dialog,
add a tick-box in each tab of ExportFileNotebook to allow setting it.
-rw-r--r-- | gtk2_ardour/export_file_notebook.cc | 30 | ||||
-rw-r--r-- | gtk2_ardour/export_file_notebook.h | 3 | ||||
-rw-r--r-- | libs/ardour/ardour/export_format_specification.h | 3 | ||||
-rw-r--r-- | libs/ardour/export_handler.cc | 2 |
4 files changed, 37 insertions, 1 deletions
diff --git a/gtk2_ardour/export_file_notebook.cc b/gtk2_ardour/export_file_notebook.cc index 54c0f628c7..00e2687251 100644 --- a/gtk2_ardour/export_file_notebook.cc +++ b/gtk2_ardour/export_file_notebook.cc @@ -86,10 +86,31 @@ ExportFileNotebook::sync_with_manager () } set_current_page (0); + update_soundcloud_upload (); CriticalSelectionChanged (); } void +ExportFileNotebook::update_soundcloud_upload() +{ + int i; + ExportProfileManager::FormatStateList const & formats = profile_manager->get_formats (); + ExportProfileManager::FormatStateList::const_iterator format_it; + + for (i = 0, format_it = formats.begin(); format_it != formats.end(); ++i, ++format_it) { + FilePage * page; + std::cerr << "get_nth_soundcloud_upload " << i << std::endl; + if ((page = dynamic_cast<FilePage *> (get_nth_page (i)))) { + (*format_it)->format->set_soundcloud_upload( page->get_soundcloud_upload () ); + // profile_manager->soundcloud_upload_list.push_back (page->get_soundcloud_upload () ); + } else { + std::cerr << "not a page!" << std::endl; + } + } + +} + +void ExportFileNotebook::update_example_filenames() { int i = 0; @@ -177,6 +198,7 @@ ExportFileNotebook::FilePage::FilePage (Session * s, ManagerPtr profile_manager, format_label (_("Format"), Gtk::ALIGN_LEFT), filename_label (_("Location"), Gtk::ALIGN_LEFT), + soundcloud_upload_button (_("Upload to Soundcloud")), tab_number (number) { set_border_width (12); @@ -185,6 +207,7 @@ ExportFileNotebook::FilePage::FilePage (Session * s, ManagerPtr profile_manager, pack_start (format_align, false, false, 0); pack_start (filename_label, false, false, 0); pack_start (filename_align, false, false, 0); + pack_start (soundcloud_upload_button, false, false, 0); format_align.add (format_selector); format_align.set_padding (6, 12, 18, 0); @@ -219,6 +242,7 @@ ExportFileNotebook::FilePage::FilePage (Session * s, ManagerPtr profile_manager, filename_selector.CriticalSelectionChanged.connect ( sigc::mem_fun (*this, &ExportFileNotebook::FilePage::critical_selection_changed)); + soundcloud_upload_button.signal_toggled().connect (sigc::mem_fun (*parent, &ExportFileNotebook::update_soundcloud_upload)); /* Tab widget */ tab_close_button.add (*Gtk::manage (new Gtk::Image (::get_icon("close")))); @@ -255,6 +279,12 @@ ExportFileNotebook::FilePage::get_format_name () const return _("No format!"); } +bool +ExportFileNotebook::FilePage::get_soundcloud_upload () const +{ + return soundcloud_upload_button.get_active (); +} + void ExportFileNotebook::FilePage::save_format_to_manager (FormatPtr format) { diff --git a/gtk2_ardour/export_file_notebook.h b/gtk2_ardour/export_file_notebook.h index 5555828e98..2d87d942e7 100644 --- a/gtk2_ardour/export_file_notebook.h +++ b/gtk2_ardour/export_file_notebook.h @@ -58,6 +58,7 @@ class ExportFileNotebook : public Gtk::Notebook, public ARDOUR::SessionHandlePtr 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); @@ -80,6 +81,7 @@ class ExportFileNotebook : public Gtk::Notebook, public ARDOUR::SessionHandlePtr Gtk::Widget & get_tab_widget () { return tab_widget; } void set_remove_sensitive (bool value); std::string get_format_name () const; + bool get_soundcloud_upload () const; void update_example_filename(); @@ -108,6 +110,7 @@ class ExportFileNotebook : public Gtk::Notebook, public ARDOUR::SessionHandlePtr 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; diff --git a/libs/ardour/ardour/export_format_specification.h b/libs/ardour/ardour/export_format_specification.h index 26d28648a2..2a62d792f0 100644 --- a/libs/ardour/ardour/export_format_specification.h +++ b/libs/ardour/ardour/export_format_specification.h @@ -96,6 +96,7 @@ class LIBARDOUR_API ExportFormatSpecification : public ExportFormatBase { void set_tag (bool tag_it) { _tag = tag_it; } void set_with_cue (bool yn) { _with_cue = yn; } void set_with_toc (bool yn) { _with_toc = yn; } + void set_soundcloud_upload (bool yn) { _soundcloud_upload = yn; } void set_command (std::string command) { _command = command; } void set_silence_beginning (AnyTime const & value) { _silence_beginning = value; } @@ -126,6 +127,7 @@ class LIBARDOUR_API ExportFormatSpecification : public ExportFormatBase { float normalize_target () const { return _normalize_target; } bool with_toc() const { return _with_toc; } bool with_cue() const { return _with_cue; } + bool soundcloud_upload() const { return _soundcloud_upload; } std::string command() const { return _command; } bool tag () const { return _tag && supports_tagging; } @@ -176,6 +178,7 @@ class LIBARDOUR_API ExportFormatSpecification : public ExportFormatBase { float _normalize_target; bool _with_toc; bool _with_cue; + bool _soundcloud_upload; std::string _command; /* serialization helpers */ diff --git a/libs/ardour/export_handler.cc b/libs/ardour/export_handler.cc index 716b69e0d8..cded56b439 100644 --- a/libs/ardour/export_handler.cc +++ b/libs/ardour/export_handler.cc @@ -345,7 +345,7 @@ ExportHandler::finish_timespan () delete (se); } - if (fmt->upload()) { + if (fmt->soundcloud_upload()) { SoundcloudUploader *soundcloud_uploader = new SoundcloudUploader; std::string token = soundcloud_uploader->Get_Auth_Token(upload_username, upload_password); std::cerr |