mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 06:44:57 +01:00
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
This commit is contained in:
parent
3468797237
commit
526a1a71fe
5 changed files with 43 additions and 15 deletions
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue