*/
-#include "export_dialog.h"
#include <sigc++/signal.h>
#include "ardour/export_status.h"
#include "ardour/export_handler.h"
+#include "export_dialog.h"
+#include "gui_thread.h"
+
+#include "i18n.h"
+
using namespace ARDOUR;
using namespace PBD;
void
ExportDialog::set_session (ARDOUR::Session* s)
{
- session = s;
+ SessionHandlePtr::set_session (s);
+
+ if (!_session) {
+ return;
+ }
/* Init handler and profile manager */
- handler = session->get_export_handler ();
- status = session->get_export_status ();
- profile_manager.reset (new ExportProfileManager (*session));
+ handler = _session->get_export_handler ();
+ status = _session->get_export_status ();
+ profile_manager.reset (new ExportProfileManager (*_session));
/* Possibly init stuff in derived classes */
init ();
- /* Rest of session related initialization */
+ /* Rest of _session related initialization */
preset_selector->set_manager (profile_manager);
- file_notebook->set_session_and_manager (session, profile_manager);
+ file_notebook->set_session_and_manager (_session, profile_manager);
/* Hand on selection range to profile manager */
timespan_selector->CriticalSelectionChanged.connect (sigc::mem_fun (*this, &ExportDialog::update_warnings));
channel_selector->CriticalSelectionChanged.connect (sigc::mem_fun (*this, &ExportDialog::update_warnings));
file_notebook->CriticalSelectionChanged.connect (sigc::mem_fun (*this, &ExportDialog::update_warnings));
- status->Aborting.connect (sigc::mem_fun (*this, &ExportDialog::notify_errors));
+
+ status->Aborting.connect (abort_connection, invalidator (*this), boost::bind (&ExportDialog::notify_errors, this), gui_context());
update_warnings ();
}
/* Buttons */
cancel_button = add_button (Gtk::Stock::CANCEL, RESPONSE_CANCEL);
- rt_export_button = add_button (_("Realtime Export"), RESPONSE_RT);
- fast_export_button = add_button (_("Fast Export"), RESPONSE_FAST);
+ // Realtime export is disabled for now, as it will most probably not work
+ //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);
list_files_button.set_name ("PaddedButton");
cancel_button->signal_clicked().connect (sigc::mem_fun (*this, &ExportDialog::close_dialog));
- rt_export_button->signal_clicked().connect (sigc::mem_fun (*this, &ExportDialog::export_rt));
+ //rt_export_button->signal_clicked().connect (sigc::mem_fun (*this, &ExportDialog::export_rt));
fast_export_button->signal_clicked().connect (sigc::mem_fun (*this, &ExportDialog::export_fw));
/* Done! */
ExportDialog::init_components ()
{
preset_selector.reset (new ExportPresetSelector ());
- timespan_selector.reset (new ExportTimespanSelectorMultiple (session, profile_manager));
- channel_selector.reset (new PortExportChannelSelector (session, profile_manager));
+ timespan_selector.reset (new ExportTimespanSelectorMultiple (_session, profile_manager));
+ channel_selector.reset (new PortExportChannelSelector (_session, profile_manager));
file_notebook.reset (new ExportFileNotebook ());
}
list_files_string = "";
fast_export_button->set_sensitive (true);
- rt_export_button->set_sensitive (true);
+ //rt_export_button->set_sensitive (true);
/* Add new warnings */
status->running = true;
cancel_button->set_label (_("Stop Export"));
- rt_export_button->set_sensitive (false);
+ //rt_export_button->set_sensitive (false);
fast_export_button->set_sensitive (false);
progress_bar.set_fraction (0.0);
warning_widget.hide_all();
progress_widget.show ();
progress_widget.show_all_children ();
- progress_connection = Glib::signal_timeout().connect (mem_fun(*this, &ExportDialog::progress_timeout), 100);
+ progress_connection = Glib::signal_timeout().connect (sigc::mem_fun(*this, &ExportDialog::progress_timeout), 100);
gtk_main_iteration ();
while (status->running) {
usleep (10000);
}
}
+
+ if (!status->aborted()) {
+ status->finish ();
+ }
}
gint
ExportDialog::add_error (Glib::ustring const & text)
{
fast_export_button->set_sensitive (false);
- rt_export_button->set_sensitive (false);
+ //rt_export_button->set_sensitive (false);
if (warn_string.empty()) {
warn_string = _("<span color=\"#ffa755\">Error: ") + text + "</span>";
ExportRangeDialog::init_components ()
{
preset_selector.reset (new ExportPresetSelector ());
- timespan_selector.reset (new ExportTimespanSelectorSingle (session, profile_manager, range_id));
- channel_selector.reset (new PortExportChannelSelector (session, profile_manager));
+ timespan_selector.reset (new ExportTimespanSelectorSingle (_session, profile_manager, range_id));
+ channel_selector.reset (new PortExportChannelSelector (_session, profile_manager));
file_notebook.reset (new ExportFileNotebook ());
}
ExportSelectionDialog::init_components ()
{
preset_selector.reset (new ExportPresetSelector ());
- timespan_selector.reset (new ExportTimespanSelectorSingle (session, profile_manager, X_("selection")));
- channel_selector.reset (new PortExportChannelSelector (session, profile_manager));
+ timespan_selector.reset (new ExportTimespanSelectorSingle (_session, profile_manager, X_("selection")));
+ channel_selector.reset (new PortExportChannelSelector (_session, profile_manager));
file_notebook.reset (new ExportFileNotebook ());
}
Glib::ustring 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));
+ 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 ());
}