summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);
}