summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSakari Bergen <sakari.bergen@beatwaves.net>2012-12-07 21:58:33 +0000
committerSakari Bergen <sakari.bergen@beatwaves.net>2012-12-07 21:58:33 +0000
commit526a1a71fe8bf0b448a51c1cae47d7c516764882 (patch)
tree74714e8618994cf8ad828b83b4eebbbf225e80e0
parent3468797237081ad981117c4b9df9b0736e177c1b (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.cc2
-rw-r--r--gtk2_ardour/export_dialog.cc14
-rw-r--r--gtk2_ardour/export_dialog.h4
-rw-r--r--libs/ardour/ardour/export_profile_manager.h13
-rw-r--r--libs/ardour/export_profile_manager.cc25
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);
}