+class TrackExportChannelSelector : public ExportChannelSelector
+{
+ public:
+ TrackExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager);
+
+ virtual void sync_with_manager ();
+
+ bool track_output () const { return track_output_button.get_active(); }
+
+ private:
+
+ void fill_list();
+ void add_track (boost::shared_ptr<ARDOUR::Route> route);
+ void update_config();
+ ChannelConfigList configs;
+
+ Gtk::VBox main_layout;
+
+ struct TrackCols : public Gtk::TreeModelColumnRecord
+ {
+ public:
+ Gtk::TreeModelColumn<boost::shared_ptr<ARDOUR::Route> > route;
+ Gtk::TreeModelColumn<std::string> label;
+ Gtk::TreeModelColumn<bool> selected;
+ Gtk::TreeModelColumn<uint32_t> order_key;
+
+ TrackCols () { add (route); add(label); add(selected); add(order_key); }
+ };
+ TrackCols track_cols;
+
+ Glib::RefPtr<Gtk::ListStore> track_list;
+ Gtk::TreeView track_view;
+
+ Gtk::ScrolledWindow track_scroller;
+
+ Gtk::HBox options_box;
+ Gtk::CheckButton track_output_button;
+ Gtk::Button select_tracks_button;
+ Gtk::Button select_busses_button;
+ Gtk::Button select_none_button;
+ void select_tracks ();
+ void select_busses ();
+ void select_none ();
+
+ void track_outputs_selected ();
+};
+