*/
-#include "export_channel_selector.h"
-
#include <algorithm>
#include "pbd/convert.h"
#include <sstream>
-#include "i18n.h"
+#include "export_channel_selector.h"
+#include "route_sorter.h"
+
+#include "pbd/i18n.h"
using namespace std;
using namespace Glib;
using namespace ARDOUR;
using namespace PBD;
-struct EditorOrderRouteSorter {
- bool operator() (boost::shared_ptr<Route> a, boost::shared_ptr<Route> b) {
- return a->order_key () < b->order_key ();
- }
-};
-
PortExportChannelSelector::PortExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager) :
ExportChannelSelector (session, manager),
channels_label (_("Channels:"), Gtk::ALIGN_LEFT),
* fill_route_list () -> update_channel_count () -> set_channel_count () -> update_config()
* will call config->clear_channels(); and clear the config
*/
- channel_view.set_config (0);
+ channel_view.set_config (ChannelConfigPtr ());
fill_route_list ();
channel_view.set_config (state->config);
}
PortExportChannelSelector::fill_route_list ()
{
channel_view.clear_routes ();
- RouteList routes = *_session->get_routes();
+ RouteList routes = _session->get_routelist();
/* Add master bus and then everything else */
channel_view.add_route (master);
}
- routes.sort (EditorOrderRouteSorter ());
+ routes.sort (Stripable::Sorter ());
for (RouteList::iterator it = routes.begin(); it != routes.end(); ++it) {
if ((*it)->is_master () || (*it)->is_monitor ()) {
for (Gtk::ListStore::Children::const_iterator p_it = port_list->children().begin(); p_it != port_list->children().end(); ++p_it) {
route_ports.insert ((*p_it)->get_value (route_cols.port_cols.port));
port_labels.insert (make_pair ((*p_it)->get_value (route_cols.port_cols.port),
- (*p_it)->get_value (route_cols.port_cols.label)));
+ (*p_it)->get_value (route_cols.port_cols.label)));
}
std::set_intersection (pec->get_ports().begin(), pec->get_ports().end(),
ProfileManagerPtr manager,
ARDOUR::AudioRegion const & region,
ARDOUR::AudioTrack & track) :
- ExportChannelSelector (_session, manager),
- region (region),
- track (track),
- region_chans (region.n_channels()),
- track_chans (track.n_outputs().n_audio()),
-
- raw_button (type_group),
- fades_button (type_group),
- processed_button (type_group)
+ ExportChannelSelector (_session, manager),
+ region (region),
+ track (track),
+ region_chans (region.n_channels()),
+ track_chans (track.n_outputs().n_audio()),
+
+ raw_button (type_group),
+ fades_button (type_group),
+ processed_button (type_group)
{
pack_start (vbox);
TrackExportChannelSelector::fill_list()
{
track_list->clear();
- RouteList routes = *_session->get_routes();
+ RouteList routes = _session->get_routelist();
for (RouteList::iterator it = routes.begin(); it != routes.end(); ++it) {
if (!boost::dynamic_pointer_cast<Track>(*it)) {
row[track_cols.selected] = false;
row[track_cols.label] = route->name();
row[track_cols.route] = route;
- row[track_cols.order_key] = route->order_key();
+ row[track_cols.order_key] = route->presentation_info().order();
}
void
continue;
}
- ExportProfileManager::ChannelConfigStatePtr state = manager->add_channel_config();
+ ExportProfileManager::ChannelConfigStatePtr state;
boost::shared_ptr<Route> route = row[track_cols.route];
ExportChannelPtr channel (new PortExportChannel ());
PortExportChannel * pec = static_cast<PortExportChannel *> (channel.get());
pec->add_port(port);
+ if (!state) {
+ state = manager->add_channel_config();
+ }
state->config->register_channel(channel);
}
}
} else {
std::list<ExportChannelPtr> list;
RouteExportChannel::create_from_route (list, route);
+ if (list.size () == 0) {
+ continue;
+ }
+ state = manager->add_channel_config();
state->config->register_channels (list);
}
- state->config->set_name (route->name());
+ if (state) {
+ if (_session->config.get_track_name_number() && route->track_number() > 0) {
+ state->config->set_name (string_compose ("%1-%2", route->track_number(), route->name()));
+ } else {
+ state->config->set_name (route->name());
+ }
+ }
}