diff options
author | Sakari Bergen <sakari.bergen@beatwaves.net> | 2012-12-07 21:58:33 +0000 |
---|---|---|
committer | Sakari Bergen <sakari.bergen@beatwaves.net> | 2012-12-07 21:58:33 +0000 |
commit | 526a1a71fe8bf0b448a51c1cae47d7c516764882 (patch) | |
tree | 74714e8618994cf8ad828b83b4eebbbf225e80e0 | |
parent | 3468797237081ad981117c4b9df9b0736e177c1b (diff) |
Make export type an enum and pass it to the profile manager instead of the xml node name.
Use this to always include the channel configuration name in stem exports.
git-svn-id: svn://localhost/ardour2/branches/3.0@13616 d708f5d6-7413-0410-9779-e7cbd77b26cf
-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); } |