X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fexport_channel_selector.h;h=1be8ec3547e3776c8277f7386b3da08c0be3ffba;hb=6c19a776f43b4a9869780e3312764d039a16cd39;hp=bc165273c73f1b66e81d32a6303253bae6348e68;hpb=cf806123ca5faaef483f898daba3f7bd38ec62eb;p=ardour.git diff --git a/gtk2_ardour/export_channel_selector.h b/gtk2_ardour/export_channel_selector.h index bc165273c7..1be8ec3547 100644 --- a/gtk2_ardour/export_channel_selector.h +++ b/gtk2_ardour/export_channel_selector.h @@ -29,10 +29,20 @@ #undef interface #endif -#include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + namespace ARDOUR { class Session; class ExportChannelConfiguration; @@ -48,14 +58,14 @@ class XMLNode; class ExportChannelSelector : public Gtk::HBox, public ARDOUR::SessionHandlePtr { - protected: +protected: typedef boost::shared_ptr ChannelConfigPtr; typedef std::list ChannelConfigList; typedef boost::shared_ptr ProfileManagerPtr; ProfileManagerPtr manager; - public: +public: ExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager) : SessionHandlePtr (session) , manager (manager) @@ -70,15 +80,14 @@ class ExportChannelSelector : public Gtk::HBox, public ARDOUR::SessionHandlePtr class PortExportChannelSelector : public ExportChannelSelector { - - public: +public: PortExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager); ~PortExportChannelSelector (); void sync_with_manager (); - private: +private: void fill_route_list (); void update_channel_count (); @@ -101,12 +110,12 @@ class PortExportChannelSelector : public ExportChannelSelector class RouteCols : public Gtk::TreeModelColumnRecord { - public: + public: struct Channel; RouteCols () : n_channels (0) - { add (selected); add (name); add (io); add (port_list_col); } + { add (selected); add (name); add (io); add (port_list_col); } void add_channels (uint32_t chans); uint32_t n_channels; @@ -126,10 +135,10 @@ class PortExportChannelSelector : public ExportChannelSelector typedef Gtk::TreeModelColumn > ComboCol; ComboCol port_list_col; - /* Channel struct, that represents the selected port and it's name */ + /* Channel struct, that represents the selected port and its name */ struct Channel { - public: + public: Channel (RouteCols & cols) { cols.add (port); cols.add (label); } Gtk::TreeModelColumn > port; @@ -146,7 +155,7 @@ class PortExportChannelSelector : public ExportChannelSelector class PortCols : public Gtk::TreeModel::ColumnRecord { - public: + public: PortCols () { add(selected); add(port); add(label); } Gtk::TreeModelColumn selected; // not used ATM @@ -158,8 +167,9 @@ class PortExportChannelSelector : public ExportChannelSelector /* Channels view */ - class ChannelTreeView : public Gtk::TreeView { - public: + class ChannelTreeView : public Gtk::TreeView + { + public: ChannelTreeView (uint32_t max_channels); void set_config (ChannelConfigPtr c); @@ -172,7 +182,7 @@ class PortExportChannelSelector : public ExportChannelSelector sigc::signal CriticalSelectionChanged; - private: + private: ChannelConfigPtr config; void update_config (); @@ -199,7 +209,7 @@ class PortExportChannelSelector : public ExportChannelSelector class RegionExportChannelSelector : public ExportChannelSelector { - public: +public: RegionExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager, ARDOUR::AudioRegion const & region, @@ -207,7 +217,7 @@ class RegionExportChannelSelector : public ExportChannelSelector virtual void sync_with_manager (); - private: +private: void handle_selection (); @@ -236,12 +246,13 @@ class TrackExportChannelSelector : public ExportChannelSelector 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 route); void update_config(); - ChannelConfigList configs; Gtk::VBox main_layout; @@ -252,8 +263,9 @@ class TrackExportChannelSelector : public ExportChannelSelector Gtk::TreeModelColumn > route; Gtk::TreeModelColumn label; Gtk::TreeModelColumn selected; + Gtk::TreeModelColumn order_key; - TrackCols () { add (route); add(label); add(selected); } + TrackCols () { add (route); add(label); add(selected); add(order_key); } }; TrackCols track_cols; @@ -263,9 +275,15 @@ class TrackExportChannelSelector : public ExportChannelSelector Gtk::ScrolledWindow track_scroller; Gtk::HBox options_box; - Gtk::RadioButton::Group source_group; - Gtk::RadioButton region_contents_button; - Gtk::RadioButton track_output_button; + 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 (); }; #endif /* __export_channel_selector_h__ */