X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fexport_channel_selector.h;h=1be8ec3547e3776c8277f7386b3da08c0be3ffba;hb=6c19a776f43b4a9869780e3312764d039a16cd39;hp=63af76e77d73376c4721e37fada1cb6835282c9c;hpb=8e35583358e7df6f0f950463612740b2a8cdffb1;p=ardour.git diff --git a/gtk2_ardour/export_channel_selector.h b/gtk2_ardour/export_channel_selector.h index 63af76e77d..1be8ec3547 100644 --- a/gtk2_ardour/export_channel_selector.h +++ b/gtk2_ardour/export_channel_selector.h @@ -24,12 +24,25 @@ #include #include "ardour/export_profile_manager.h" -#include "ardour/export_channel.h" -#include +#ifdef interface +#undef interface +#endif + #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + namespace ARDOUR { class Session; class ExportChannelConfiguration; @@ -45,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) @@ -67,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 (); @@ -98,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; @@ -123,14 +135,14 @@ 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; - Gtk::TreeModelColumn label; + Gtk::TreeModelColumn > port; + Gtk::TreeModelColumn label; }; std::list channels; @@ -143,20 +155,21 @@ class PortExportChannelSelector : public ExportChannelSelector class PortCols : public Gtk::TreeModel::ColumnRecord { - public: - PortCols () { add (selected); add(port); add(label); } + public: + PortCols () { add(selected); add(port); add(label); } - Gtk::TreeModelColumn selected; // not used ATM - Gtk::TreeModelColumn port; - Gtk::TreeModelColumn label; + Gtk::TreeModelColumn selected; // not used ATM + Gtk::TreeModelColumn > port; + Gtk::TreeModelColumn label; }; PortCols port_cols; }; /* Channels view */ - class ChannelTreeView : public Gtk::TreeView { - public: + class ChannelTreeView : public Gtk::TreeView + { + public: ChannelTreeView (uint32_t max_channels); void set_config (ChannelConfigPtr c); @@ -169,7 +182,7 @@ class PortExportChannelSelector : public ExportChannelSelector sigc::signal CriticalSelectionChanged; - private: + private: ChannelConfigPtr config; void update_config (); @@ -196,7 +209,7 @@ class PortExportChannelSelector : public ExportChannelSelector class RegionExportChannelSelector : public ExportChannelSelector { - public: +public: RegionExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager, ARDOUR::AudioRegion const & region, @@ -204,7 +217,7 @@ class RegionExportChannelSelector : public ExportChannelSelector virtual void sync_with_manager (); - private: +private: void handle_selection (); @@ -230,25 +243,29 @@ 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(ARDOUR::IO * io); + void add_track (boost::shared_ptr route); void update_config(); - ChannelConfigList configs; - + + Gtk::VBox main_layout; + struct TrackCols : public Gtk::TreeModelColumnRecord { public: - Gtk::TreeModelColumn track; - Gtk::TreeModelColumn label; - Gtk::TreeModelColumn selected; + Gtk::TreeModelColumn > route; + Gtk::TreeModelColumn label; + Gtk::TreeModelColumn selected; + Gtk::TreeModelColumn order_key; - TrackCols () { add (track); add(label); add(selected); } + TrackCols () { add (route); add(label); add(selected); add(order_key); } }; TrackCols track_cols; @@ -256,7 +273,17 @@ class TrackExportChannelSelector : public ExportChannelSelector 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 (); }; #endif /* __export_channel_selector_h__ */