*/
-#include "export_channel_selector.h"
-
#include <algorithm>
#include "pbd/convert.h"
#include <sstream>
+#include "export_channel_selector.h"
+#include "route_sorter.h"
+
#include "i18n.h"
using namespace std;
split_checkbox.set_active (state->config->get_split());
channels_spinbutton.set_value (state->config->get_n_chans());
+ /* when loading presets, config is ready set here (shared ptr)
+ * fill_route_list () -> update_channel_count () -> set_channel_count () -> update_config()
+ * will call config->clear_channels(); and clear the config
+ */
+ channel_view.set_config (ChannelConfigPtr ());
fill_route_list ();
channel_view.set_config (state->config);
}
channel_view.add_route (master);
}
+ routes.sort (Stripable::PresentationOrderSorter ());
+
for (RouteList::iterator it = routes.begin(); it != routes.end(); ++it) {
if ((*it)->is_master () || (*it)->is_monitor ()) {
continue;
if (config == c) { return; }
config = c;
+ if (!config) { return; }
uint32_t i = 1;
ExportChannelConfiguration::ChannelList chan_list = config->get_channels();
factory.reset (new RegionExportChannelFactory (_session, region, track, type));
state->config->set_region_processing_type (type);
- for (size_t chan = 0; chan < region_chans; ++chan) {
+ const size_t cc = type == RegionExportChannelFactory::Processed ? track_chans : region_chans;
+ for (size_t chan = 0; chan < cc; ++chan) {
state->config->register_channel (factory->create (chan));
}
TrackExportChannelSelector::TrackExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager)
: ExportChannelSelector(session, manager)
- , region_contents_button(source_group, _("Export region contents"))
- , track_output_button(source_group, _("Export track output"))
+ , track_output_button(_("Apply track/bus processing"))
, select_tracks_button (_("Select all tracks"))
, select_busses_button (_("Select all busses"))
, select_none_button (_("Deselect all"))
pack_start(main_layout);
// Options
- options_box.pack_start(region_contents_button);
options_box.pack_start(track_output_button);
options_box.pack_start (select_tracks_button);
options_box.pack_start (select_busses_button);
select_busses_button.signal_clicked().connect (sigc::mem_fun (*this, &TrackExportChannelSelector::select_busses));
select_none_button.signal_clicked().connect (sigc::mem_fun (*this, &TrackExportChannelSelector::select_none));
+ track_output_button.signal_clicked().connect (sigc::mem_fun (*this, &TrackExportChannelSelector::track_outputs_selected));
+
fill_list();
show_all_children ();
update_config();
}
+void
+TrackExportChannelSelector::track_outputs_selected ()
+{
+ update_config();
+}
+
void
TrackExportChannelSelector::fill_list()
{
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
}
state->config->set_name (route->name());
+
}
CriticalSelectionChanged ();