summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/export_channel_selector.cc27
-rw-r--r--gtk2_ardour/export_channel_selector.h6
-rw-r--r--gtk2_ardour/export_dialog.cc11
-rw-r--r--gtk2_ardour/export_dialog.h1
4 files changed, 22 insertions, 23 deletions
diff --git a/gtk2_ardour/export_channel_selector.cc b/gtk2_ardour/export_channel_selector.cc
index 27e6ffaa50..6b90f7a36c 100644
--- a/gtk2_ardour/export_channel_selector.cc
+++ b/gtk2_ardour/export_channel_selector.cc
@@ -570,34 +570,31 @@ TrackExportChannelSelector::fill_list()
RouteList routes = *_session->get_routes();
for (RouteList::iterator it = routes.begin(); it != routes.end(); ++it) {
- Route * route = it->get();
- if(!dynamic_cast<Track *>(route)) {
+ if (!boost::dynamic_pointer_cast<Track>(*it)) {
// not a track, must be a bus
if ((*it)->is_master () || (*it)->is_monitor ()) {
continue;
}
// not monitor or master bus
-
- add_track(route);
+ add_track (*it);
}
}
for (RouteList::iterator it = routes.begin(); it != routes.end(); ++it) {
- Route * route = it->get();
- if(dynamic_cast<AudioTrack *>(route)) {
- add_track(route);
+ if (boost::dynamic_pointer_cast<AudioTrack>(*it)) {
+ add_track (*it);
}
}
}
void
-TrackExportChannelSelector::add_track(Route * route)
+TrackExportChannelSelector::add_track (boost::shared_ptr<Route> route)
{
Gtk::TreeModel::iterator iter = track_list->append();
Gtk::TreeModel::Row row = *iter;
row[track_cols.selected] = true;
row[track_cols.label] = route->name();
- row[track_cols.track] = route;
+ row[track_cols.route] = route;
}
void
@@ -614,13 +611,13 @@ TrackExportChannelSelector::update_config()
ExportProfileManager::ChannelConfigStatePtr state = manager->add_channel_config();
- Route * track = row[track_cols.track];
+ boost::shared_ptr<Route> route = row[track_cols.route];
/* Output of track code. TODO make this an option also
- uint32_t outs = track->n_ports().n_audio();
+ uint32_t outs = route->n_ports().n_audio();
for (uint32_t i = 0; i < outs; ++i) {
- AudioPort * port = track->audio (i);
- if(port) {
+ AudioPort * port = route->audio (i);
+ if (port) {
ExportChannelPtr channel (new PortExportChannel ());
PortExportChannel * pec = static_cast<PortExportChannel *> (channel.get());
pec->add_port(port);
@@ -630,9 +627,9 @@ TrackExportChannelSelector::update_config()
*/
std::list<ExportChannelPtr> list;
- RouteExportChannel::create_from_route (list, *track);
+ RouteExportChannel::create_from_route (list, route);
state->config->register_channels (list);
- state->config->set_name(track->name());
+ state->config->set_name (route->name());
}
CriticalSelectionChanged ();
diff --git a/gtk2_ardour/export_channel_selector.h b/gtk2_ardour/export_channel_selector.h
index 4cb9902ed0..79e943a569 100644
--- a/gtk2_ardour/export_channel_selector.h
+++ b/gtk2_ardour/export_channel_selector.h
@@ -235,7 +235,7 @@ class TrackExportChannelSelector : public ExportChannelSelector
private:
void fill_list();
- void add_track(ARDOUR::Route * route);
+ void add_track (boost::shared_ptr<ARDOUR::Route> route);
void update_config();
ChannelConfigList configs;
@@ -243,11 +243,11 @@ class TrackExportChannelSelector : public ExportChannelSelector
struct TrackCols : public Gtk::TreeModelColumnRecord
{
public:
- Gtk::TreeModelColumn<ARDOUR::Route *> track;
+ Gtk::TreeModelColumn<boost::shared_ptr<ARDOUR::Route> > route;
Gtk::TreeModelColumn<std::string> label;
Gtk::TreeModelColumn<bool> selected;
- TrackCols () { add (track); add(label); add(selected); }
+ TrackCols () { add (route); add(label); add(selected); }
};
TrackCols track_cols;
diff --git a/gtk2_ardour/export_dialog.cc b/gtk2_ardour/export_dialog.cc
index 9d707678cf..5e6812429a 100644
--- a/gtk2_ardour/export_dialog.cc
+++ b/gtk2_ardour/export_dialog.cc
@@ -21,6 +21,8 @@
#include <sigc++/signal.h>
+#include <gtkmm/messagedialog.h>
+
#include "ardour/audioregion.h"
#include "ardour/export_status.h"
#include "ardour/export_handler.h"
@@ -94,8 +96,6 @@ ExportDialog::set_session (ARDOUR::Session* s)
channel_selector->CriticalSelectionChanged.connect (sigc::mem_fun (*this, &ExportDialog::update_warnings_and_example_filename));
file_notebook->CriticalSelectionChanged.connect (sigc::mem_fun (*this, &ExportDialog::update_warnings_and_example_filename));
- status->Aborting.connect (abort_connection, invalidator (*this), boost::bind (&ExportDialog::notify_errors, this), gui_context());
-
update_warnings_and_example_filename ();
}
@@ -323,6 +323,7 @@ ExportDialog::show_progress ()
progress_connection = Glib::signal_timeout().connect (sigc::mem_fun(*this, &ExportDialog::progress_timeout), 100);
gtk_main_iteration ();
+
while (status->running) {
if (gtk_events_pending()) {
gtk_main_iteration ();
@@ -339,9 +340,11 @@ ExportDialog::show_progress ()
ns->nag ();
delete ns;
}
-
- status->finish ();
+ } else {
+ notify_errors ();
}
+
+ status->finish ();
}
gint
diff --git a/gtk2_ardour/export_dialog.h b/gtk2_ardour/export_dialog.h
index 9507d8b2d9..066b594812 100644
--- a/gtk2_ardour/export_dialog.h
+++ b/gtk2_ardour/export_dialog.h
@@ -111,7 +111,6 @@ class ExportDialog : public ArdourDialog {
PublicEditor & editor;
StatusPtr status;
- PBD::ScopedConnection abort_connection;
/*** GUI components ***/