#include "pbd/filesystem.h"
+#include "ardour/audioregion.h"
#include "ardour/export_status.h"
#include "ardour/export_handler.h"
using namespace ARDOUR;
using namespace PBD;
+using std::string;
-ExportDialog::ExportDialog (PublicEditor & editor, Glib::ustring title) :
- ArdourDialog (title),
- editor (editor),
+ExportDialog::ExportDialog (PublicEditor & editor, std::string title, std::string xml_node_name)
+ : ArdourDialog (title)
+ , xml_node_name (xml_node_name)
+ , editor (editor)
- warn_label ("", Gtk::ALIGN_LEFT),
- list_files_label (_("<span color=\"#ffa755\">Some already existing files will be overwritten.</span>"), Gtk::ALIGN_RIGHT),
- list_files_button (_("List files"))
+ , warn_label ("", Gtk::ALIGN_LEFT)
+ , list_files_label (_("<span color=\"#ffa755\">Some already existing files will be overwritten.</span>"), Gtk::ALIGN_RIGHT)
+ , list_files_button (_("List files"))
{ }
ExportDialog::~ExportDialog ()
handler = _session->get_export_handler ();
status = _session->get_export_status ();
- profile_manager.reset (new ExportProfileManager (*_session));
+ profile_manager.reset (new ExportProfileManager (*_session, xml_node_name));
/* Possibly init stuff in derived classes */
//rt_export_button = add_button (_("Realtime Export"), RESPONSE_RT);
//fast_export_button = add_button (_("Fast Export"), RESPONSE_FAST);
fast_export_button = add_button (_("Export"), RESPONSE_FAST);
+ set_default_response (RESPONSE_FAST);
list_files_button.set_name ("PaddedButton");
ExportDialog::notify_errors ()
{
if (status->errors()) {
- Glib::ustring txt = _("Export has been aborted due to an error!\nSee the Log for details.");
+ std::string txt = _("Export has been aborted due to an error!\nSee the Log for details.");
Gtk::MessageDialog msg (txt, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
msg.run();
}
boost::shared_ptr<ExportProfileManager::Warnings> warnings = profile_manager->get_warnings();
- for (std::list<Glib::ustring>::iterator it = warnings->errors.begin(); it != warnings->errors.end(); ++it) {
+ for (std::list<string>::iterator it = warnings->errors.begin(); it != warnings->errors.end(); ++it) {
add_error (*it);
}
- for (std::list<Glib::ustring>::iterator it = warnings->warnings.begin(); it != warnings->warnings.end(); ++it) {
+ for (std::list<string>::iterator it = warnings->warnings.begin(); it != warnings->warnings.end(); ++it) {
add_warning (*it);
}
if (!warnings->conflicting_filenames.empty()) {
list_files_hbox.show ();
- for (std::list<Glib::ustring>::iterator it = warnings->conflicting_filenames.begin(); it != warnings->conflicting_filenames.end(); ++it) {
- Glib::ustring::size_type pos = it->find_last_of ("/");
+ for (std::list<string>::iterator it = warnings->conflicting_filenames.begin(); it != warnings->conflicting_filenames.end(); ++it) {
+ string::size_type pos = it->find_last_of ("/");
list_files_string += "\n" + it->substr (0, pos + 1) + "<b>" + it->substr (pos + 1) + "</b>";
}
}
usleep (10000);
}
}
-
+
if (!status->aborted()) {
status->finish ();
}
gint
ExportDialog::progress_timeout ()
{
- switch (status->stage) {
- case export_None:
- progress_label.set_text ("");
- break;
- case export_ReadTimespan:
- progress_label.set_text (string_compose (_("Reading timespan %1 of %2"), status->timespan, status->total_timespans));
- break;
- case export_PostProcess:
- progress_label.set_text (string_compose (_("Processing file %2 of %3 (%1) from timespan %4 of %5"),
- file_notebook->get_nth_format_name (status->format),
- status->format, status->total_formats,
- status->timespan, status->total_timespans));
- break;
- case export_Write:
- progress_label.set_text (string_compose (_("Encoding file %2 of %3 (%1) from timespan %4 of %5"),
- file_notebook->get_nth_format_name (status->format),
- status->format, status->total_formats,
- status->timespan, status->total_timespans));
- break;
+ std::string status_text;
+ if (status->normalizing) {
+ status_text = string_compose (_("Normalizing timespan %1 of %2"),
+ status->timespan, status->total_timespans);
+ } else {
+ status_text = string_compose (_("Exporting timespan %1 of %2"),
+ status->timespan, status->total_timespans);
}
+ progress_label.set_text (status_text);
progress_bar.set_fraction (status->progress);
return TRUE;
}
void
-ExportDialog::add_error (Glib::ustring const & text)
+ExportDialog::add_error (string const & text)
{
fast_export_button->set_sensitive (false);
//rt_export_button->set_sensitive (false);
}
void
-ExportDialog::add_warning (Glib::ustring const & text)
+ExportDialog::add_warning (string const & text)
{
if (warn_string.empty()) {
warn_string = _("<span color=\"#ffa755\">Warning: ") + text + "</span>";
/*** Dialog specializations ***/
-ExportRangeDialog::ExportRangeDialog (PublicEditor & editor, Glib::ustring range_id) :
- ExportDialog (editor, _("Export Range")),
+ExportRangeDialog::ExportRangeDialog (PublicEditor & editor, string range_id) :
+ ExportDialog (editor, _("Export Range"), X_("RangeExportProfile")),
range_id (range_id)
{}
}
ExportSelectionDialog::ExportSelectionDialog (PublicEditor & editor) :
- ExportDialog (editor, _("Export Selection"))
+ ExportDialog (editor, _("Export Selection"), X_("SelectionExportProfile"))
{}
void
}
ExportRegionDialog::ExportRegionDialog (PublicEditor & editor, ARDOUR::AudioRegion const & region, ARDOUR::AudioTrack & track) :
- ExportDialog (editor, _("Export Region")),
+ ExportDialog (editor, _("Export Region"), X_("RegionExportProfile")),
region (region),
track (track)
{}
void
ExportRegionDialog::init_components ()
{
- Glib::ustring loc_id = profile_manager->set_single_range (region.position(), region.position() + region.length(), region.name());
+ string loc_id = profile_manager->set_single_range (region.position(), region.position() + region.length(), region.name());
preset_selector.reset (new ExportPresetSelector ());
timespan_selector.reset (new ExportTimespanSelectorSingle (_session, profile_manager, loc_id));
channel_selector.reset (new RegionExportChannelSelector (_session, profile_manager, region, track));
file_notebook.reset (new ExportFileNotebook ());
}
+
+StemExportDialog::StemExportDialog (PublicEditor & editor)
+ : ExportDialog(editor, _("Stem Export"), X_("StemExportProfile"))
+{
+
+}
+
+void
+StemExportDialog::init_components ()
+{
+ preset_selector.reset (new ExportPresetSelector ());
+ timespan_selector.reset (new ExportTimespanSelectorMultiple (_session, profile_manager));
+ channel_selector.reset (new TrackExportChannelSelector (_session, profile_manager));
+ file_notebook.reset (new ExportFileNotebook ());
+}
+