diff options
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/export_channel_selector.cc | 27 | ||||
-rw-r--r-- | gtk2_ardour/export_channel_selector.h | 6 | ||||
-rw-r--r-- | gtk2_ardour/export_dialog.cc | 11 | ||||
-rw-r--r-- | gtk2_ardour/export_dialog.h | 1 |
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 ***/ |