diff options
-rw-r--r-- | gtk2_ardour/editor_export_audio.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/export_dialog.cc | 14 | ||||
-rw-r--r-- | gtk2_ardour/export_dialog.h | 4 | ||||
-rw-r--r-- | libs/ardour/ardour/export_profile_manager.h | 13 | ||||
-rw-r--r-- | libs/ardour/export_profile_manager.cc | 25 |
5 files changed, 43 insertions, 15 deletions
diff --git a/gtk2_ardour/editor_export_audio.cc b/gtk2_ardour/editor_export_audio.cc index 94f43a0e5e..78e7674042 100644 --- a/gtk2_ardour/editor_export_audio.cc +++ b/gtk2_ardour/editor_export_audio.cc @@ -60,7 +60,7 @@ using namespace Gtk; void Editor::export_audio () { - ExportDialog dialog (*this, _("Export"), X_("ExportProfile")); + ExportDialog dialog (*this, _("Export"), ExportProfileManager::RegularExport); dialog.set_session (_session); dialog.run(); } diff --git a/gtk2_ardour/export_dialog.cc b/gtk2_ardour/export_dialog.cc index 5e6812429a..a64acd1680 100644 --- a/gtk2_ardour/export_dialog.cc +++ b/gtk2_ardour/export_dialog.cc @@ -37,9 +37,9 @@ using namespace ARDOUR; using namespace PBD; using std::string; -ExportDialog::ExportDialog (PublicEditor & editor, std::string title, std::string xml_node_name) +ExportDialog::ExportDialog (PublicEditor & editor, std::string title, ARDOUR::ExportProfileManager::ExportType type) : ArdourDialog (title) - , xml_node_name (xml_node_name) + , type (type) , editor (editor) , warn_label ("", Gtk::ALIGN_LEFT) @@ -64,7 +64,7 @@ ExportDialog::set_session (ARDOUR::Session* s) handler = _session->get_export_handler (); status = _session->get_export_status (); - profile_manager.reset (new ExportProfileManager (*_session, xml_node_name)); + profile_manager.reset (new ExportProfileManager (*_session, type)); /* Possibly init stuff in derived classes */ @@ -403,7 +403,7 @@ ExportDialog::add_warning (string const & text) /*** Dialog specializations ***/ ExportRangeDialog::ExportRangeDialog (PublicEditor & editor, string range_id) : - ExportDialog (editor, _("Export Range"), X_("RangeExportProfile")), + ExportDialog (editor, _("Export Range"), ExportProfileManager::RangeExport), range_id (range_id) {} @@ -417,7 +417,7 @@ ExportRangeDialog::init_components () } ExportSelectionDialog::ExportSelectionDialog (PublicEditor & editor) : - ExportDialog (editor, _("Export Selection"), X_("SelectionExportProfile")) + ExportDialog (editor, _("Export Selection"), ExportProfileManager::SelectionExport) {} void @@ -430,7 +430,7 @@ ExportSelectionDialog::init_components () } ExportRegionDialog::ExportRegionDialog (PublicEditor & editor, ARDOUR::AudioRegion const & region, ARDOUR::AudioTrack & track) : - ExportDialog (editor, _("Export Region"), X_("RegionExportProfile")), + ExportDialog (editor, _("Export Region"), ExportProfileManager::RegionExport), region (region), track (track) {} @@ -455,7 +455,7 @@ ExportRegionDialog::init_components () } StemExportDialog::StemExportDialog (PublicEditor & editor) - : ExportDialog(editor, _("Stem Export"), X_("StemExportProfile")) + : ExportDialog(editor, _("Stem Export"), ExportProfileManager::StemExport) { } diff --git a/gtk2_ardour/export_dialog.h b/gtk2_ardour/export_dialog.h index 066b594812..52c53660d8 100644 --- a/gtk2_ardour/export_dialog.h +++ b/gtk2_ardour/export_dialog.h @@ -47,7 +47,7 @@ class ExportDialog : public ArdourDialog { public: - ExportDialog (PublicEditor & editor, std::string title, std::string xml_node_name); + ExportDialog (PublicEditor & editor, std::string title, ARDOUR::ExportProfileManager::ExportType type); ~ExportDialog (); void set_session (ARDOUR::Session* s); @@ -65,7 +65,7 @@ class ExportDialog : public ArdourDialog { typedef boost::shared_ptr<ARDOUR::ExportHandler> HandlerPtr; typedef boost::shared_ptr<ARDOUR::ExportProfileManager> ManagerPtr; - std::string xml_node_name; + ARDOUR::ExportProfileManager::ExportType type; HandlerPtr handler; ManagerPtr profile_manager; diff --git a/libs/ardour/ardour/export_profile_manager.h b/libs/ardour/ardour/export_profile_manager.h index 31e93a5b89..82b32fb032 100644 --- a/libs/ardour/ardour/export_profile_manager.h +++ b/libs/ardour/ardour/export_profile_manager.h @@ -50,7 +50,15 @@ class ExportProfileManager { public: - ExportProfileManager (Session & s, std::string xml_node_name); + enum ExportType { + RegularExport, + RangeExport, + SelectionExport, + RegionExport, + StemExport + }; + + ExportProfileManager (Session & s, ExportType type); ~ExportProfileManager (); void load_profile (); @@ -70,7 +78,8 @@ class ExportProfileManager typedef std::pair<PBD::UUID, std::string> FilePair; typedef std::map<PBD::UUID, std::string> FileMap; - std::string const xml_node_name; + ExportType type; + std::string xml_node_name; HandlerPtr handler; Session & session; diff --git a/libs/ardour/export_profile_manager.cc b/libs/ardour/export_profile_manager.cc index af7f6a73f8..deeb3aea2b 100644 --- a/libs/ardour/export_profile_manager.cc +++ b/libs/ardour/export_profile_manager.cc @@ -56,8 +56,8 @@ using namespace PBD; namespace ARDOUR { -ExportProfileManager::ExportProfileManager (Session & s, std::string xml_node_name) - : xml_node_name (xml_node_name) +ExportProfileManager::ExportProfileManager (Session & s, ExportType type) + : type(type) , handler (s.get_export_handler()) , session (s) @@ -67,6 +67,24 @@ ExportProfileManager::ExportProfileManager (Session & s, std::string xml_node_na , format_list (new FormatList ()) { + switch(type) { + case RegularExport: + xml_node_name = X_("ExportProfile"); + break; + case RangeExport: + xml_node_name = X_("RangeExportProfile"); + break; + case SelectionExport: + xml_node_name = X_("SelectionExportProfile"); + break; + case RegionExport: + xml_node_name = X_("RegionExportProfile"); + break; + case StemExport: + xml_node_name = X_("StemExportProfile"); + break; + } + /* Initialize path variables */ export_config_dir = Glib::build_filename (user_config_directory(), export_dir_name); @@ -139,7 +157,8 @@ ExportProfileManager::prepare_for_export () } // ...and each channel config - filename->include_channel_config = (channel_configs.size() > 1); + filename->include_channel_config = (type == StemExport) || + (channel_configs.size() > 1); for(ChannelConfigStateList::iterator cc_it = channel_configs.begin(); cc_it != channel_configs.end(); ++cc_it) { handler->add_export_config (*ts_it, (*cc_it)->config, (*format_it)->format, filename, b); } |