X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fexport_channel_selector.h;h=e7b2dc11ee0a0785667187e41dd3163b6d3a8caf;hb=c78528dcea03a61685ad0586eaa6302847af6fe9;hp=56ce5c95019ddf3c2a6e26c7bc1275acfad31d39;hpb=bb9cc45cd22af67ac275a5e73accbe14fee664d8;p=ardour.git diff --git a/gtk2_ardour/export_channel_selector.h b/gtk2_ardour/export_channel_selector.h index 56ce5c9501..e7b2dc11ee 100644 --- a/gtk2_ardour/export_channel_selector.h +++ b/gtk2_ardour/export_channel_selector.h @@ -43,19 +43,19 @@ namespace ARDOUR { class XMLNode; -class ExportChannelSelector : public Gtk::HBox +class ExportChannelSelector : public Gtk::HBox, public ARDOUR::SessionHandlePtr { protected: typedef boost::shared_ptr ChannelConfigPtr; + typedef std::list ChannelConfigList; typedef boost::shared_ptr ProfileManagerPtr; - ARDOUR::Session * session; ProfileManagerPtr manager; public: ExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager) - : session (session) - , manager (manager) + : SessionHandlePtr (session) + , manager (manager) {} virtual ~ExportChannelSelector () {} @@ -115,7 +115,7 @@ class PortExportChannelSelector : public ExportChannelSelector /* Static columns */ Gtk::TreeModelColumn selected; - Gtk::TreeModelColumn name; + Gtk::TreeModelColumn name; Gtk::TreeModelColumn io; /* Combo list column (shared by all channels) */ @@ -130,7 +130,7 @@ class PortExportChannelSelector : public ExportChannelSelector Channel (RouteCols & cols) { cols.add (port); cols.add (label); } Gtk::TreeModelColumn port; - Gtk::TreeModelColumn label; + Gtk::TreeModelColumn label; }; std::list channels; @@ -148,7 +148,7 @@ class PortExportChannelSelector : public ExportChannelSelector Gtk::TreeModelColumn selected; // not used ATM Gtk::TreeModelColumn port; - Gtk::TreeModelColumn label; + Gtk::TreeModelColumn label; }; PortCols port_cols; }; @@ -176,8 +176,8 @@ class PortExportChannelSelector : public ExportChannelSelector /* Signal handlers for selections changes in the view */ - void update_toggle_selection (Glib::ustring const & path); - void update_selection_text (Glib::ustring const & path, Glib::ustring const & new_text, uint32_t channel); + void update_toggle_selection (std::string const & path); + void update_selection_text (std::string const & path, std::string const & new_text, uint32_t channel); RouteCols route_cols; Glib::RefPtr route_list; @@ -226,4 +226,37 @@ class RegionExportChannelSelector : public ExportChannelSelector Gtk::RadioButton processed_button; }; +class TrackExportChannelSelector : public ExportChannelSelector +{ + public: + TrackExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager); + + virtual void sync_with_manager (); + + private: + + void fill_list(); + void add_track(ARDOUR::Route * route); + void update_config(); + + ChannelConfigList configs; + + struct TrackCols : public Gtk::TreeModelColumnRecord + { + public: + Gtk::TreeModelColumn track; + Gtk::TreeModelColumn label; + Gtk::TreeModelColumn selected; + + TrackCols () { add (track); add(label); add(selected); } + }; + TrackCols track_cols; + + Glib::RefPtr track_list; + Gtk::TreeView track_view; + + Gtk::ScrolledWindow track_scroller; + +}; + #endif /* __export_channel_selector_h__ */