From 98389f7da420ee205f6827b7df4db3ea0802f751 Mon Sep 17 00:00:00 2001 From: Sakari Bergen Date: Sat, 11 Oct 2008 10:14:51 +0000 Subject: Region export dialog: Make export channel and -selector polymorphic, add the region related classes and a dialog specialization git-svn-id: svn://localhost/ardour2/branches/3.0@3915 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/export_channel_selector.h | 61 ++++++++++++++++++++++++++++------- 1 file changed, 49 insertions(+), 12 deletions(-) (limited to 'gtk2_ardour/export_channel_selector.h') diff --git a/gtk2_ardour/export_channel_selector.h b/gtk2_ardour/export_channel_selector.h index 0faf652bd8..c2e99940aa 100644 --- a/gtk2_ardour/export_channel_selector.h +++ b/gtk2_ardour/export_channel_selector.h @@ -24,6 +24,7 @@ #include #include +#include #include #include @@ -31,31 +32,39 @@ namespace ARDOUR { class Session; - class ExportChannel; class ExportChannelConfiguration; + class RegionExportChannelFactory; class ExportHandler; class AudioPort; class IO; + class AudioRegion; + class AudioTrack; } class XMLNode; -/// -class ExportChannelSelector : public Gtk::HBox { - private: - +class ExportChannelSelector : public Gtk::HBox +{ + protected: typedef boost::shared_ptr ChannelConfigPtr; - typedef boost::shared_ptr HandlerPtr; public: + virtual ~ExportChannelSelector () {} + + virtual void set_state (ARDOUR::ExportProfileManager::ChannelConfigStatePtr const state_, ARDOUR::Session * session_) = 0; + sigc::signal CriticalSelectionChanged; +}; + +class PortExportChannelSelector : public ExportChannelSelector +{ - ExportChannelSelector (); - ~ExportChannelSelector (); + public: + + PortExportChannelSelector (); + ~PortExportChannelSelector (); void set_state (ARDOUR::ExportProfileManager::ChannelConfigStatePtr const state_, ARDOUR::Session * session_); - - sigc::signal CriticalSelectionChanged; private: @@ -63,8 +72,7 @@ class ExportChannelSelector : public Gtk::HBox { void update_channel_count (); void update_split_state (); - typedef boost::shared_ptr ChannelPtr; - typedef std::list CahnnelList; + typedef std::list CahnnelList; ARDOUR::Session * session; ARDOUR::ExportProfileManager::ChannelConfigStatePtr state; @@ -178,4 +186,33 @@ class ExportChannelSelector : public Gtk::HBox { }; +class RegionExportChannelSelector : public ExportChannelSelector +{ + public: + RegionExportChannelSelector (ARDOUR::AudioRegion const & region, ARDOUR::AudioTrack & track); + + virtual void set_state (ARDOUR::ExportProfileManager::ChannelConfigStatePtr const state_, ARDOUR::Session * session_); + + private: + + void handle_selection (); + + ARDOUR::Session * session; + ARDOUR::ExportProfileManager::ChannelConfigStatePtr state; + boost::shared_ptr factory; + ARDOUR::AudioRegion const & region; + ARDOUR::AudioTrack & track; + + uint32_t region_chans; + uint32_t track_chans; + + /*** GUI components ***/ + + Gtk::VBox vbox; + + Gtk::RadioButtonGroup type_group; + Gtk::RadioButton raw_button; + Gtk::RadioButton processed_button; +}; + #endif /* __export_channel_selector_h__ */ -- cgit v1.2.3