using namespace ARDOUR;
using namespace PBD;
-PortExportChannelSelector::PortExportChannelSelector () :
+PortExportChannelSelector::PortExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager) :
+ ExportChannelSelector (session, manager),
channels_label (_("Channels:"), Gtk::ALIGN_LEFT),
split_checkbox (_("Split to mono files")),
max_channels (20),
channel_view (max_channels)
{
-
channels_hbox.pack_start (channels_label, false, false, 0);
channels_hbox.pack_end (channels_spinbutton, false, false, 0);
/* Finalize */
+ sync_with_manager();
show_all_children ();
}
}
void
-PortExportChannelSelector::set_state (ARDOUR::ExportProfileManager::ChannelConfigStatePtr const state_, ARDOUR::Session * session_)
+PortExportChannelSelector::sync_with_manager ()
{
- state = state_;
- session = session_;
+ state = manager->get_channel_configs().front();
split_checkbox.set_active (state->config->get_split());
channels_spinbutton.set_value (state->config->get_n_chans());
update_config ();
}
-RegionExportChannelSelector::RegionExportChannelSelector (ARDOUR::AudioRegion const & region, ARDOUR::AudioTrack & track) :
- session (0),
+RegionExportChannelSelector::RegionExportChannelSelector (ARDOUR::Session * session,
+ ProfileManagerPtr manager,
+ ARDOUR::AudioRegion const & region,
+ ARDOUR::AudioTrack & track) :
+ ExportChannelSelector (session, manager),
region (region),
track (track),
region_chans (region.n_channels()),
processed_button.signal_toggled ().connect (sigc::mem_fun (*this, &RegionExportChannelSelector::handle_selection));
vbox.pack_start (processed_button);
+ sync_with_manager();
vbox.show_all_children ();
show_all_children ();
}
void
-RegionExportChannelSelector::set_state (ARDOUR::ExportProfileManager::ChannelConfigStatePtr const state_, ARDOUR::Session * session_)
+RegionExportChannelSelector::sync_with_manager ()
{
- state = state_;
- session = session_;
-
+ state = manager->get_channel_configs().front();
handle_selection ();
}
{
protected:
typedef boost::shared_ptr<ARDOUR::ExportChannelConfiguration> ChannelConfigPtr;
- typedef boost::shared_ptr<ARDOUR::ExportHandler> HandlerPtr;
+ typedef boost::shared_ptr<ARDOUR::ExportProfileManager> ProfileManagerPtr;
+
+ ARDOUR::Session * session;
+ ProfileManagerPtr manager;
public:
+ ExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager)
+ : session (session)
+ , manager (manager)
+ {}
+
virtual ~ExportChannelSelector () {}
- virtual void set_state (ARDOUR::ExportProfileManager::ChannelConfigStatePtr const state_, ARDOUR::Session * session_) = 0;
+ virtual void sync_with_manager () = 0;
+
sigc::signal<void> CriticalSelectionChanged;
};
public:
- PortExportChannelSelector ();
+ PortExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager);
~PortExportChannelSelector ();
- void set_state (ARDOUR::ExportProfileManager::ChannelConfigStatePtr const state_, ARDOUR::Session * session_);
+ void sync_with_manager ();
private:
typedef std::list<ARDOUR::ExportChannelPtr> CahnnelList;
- ARDOUR::Session * session;
ARDOUR::ExportProfileManager::ChannelConfigStatePtr state;
/*** GUI stuff ***/
class RegionExportChannelSelector : public ExportChannelSelector
{
public:
- RegionExportChannelSelector (ARDOUR::AudioRegion const & region, ARDOUR::AudioTrack & track);
+ RegionExportChannelSelector (ARDOUR::Session * session,
+ ProfileManagerPtr manager,
+ ARDOUR::AudioRegion const & region,
+ ARDOUR::AudioTrack & track);
- virtual void set_state (ARDOUR::ExportProfileManager::ChannelConfigStatePtr const state_, ARDOUR::Session * session_);
+ virtual void sync_with_manager ();
private:
void handle_selection ();
- ARDOUR::Session * session;
ARDOUR::ExportProfileManager::ChannelConfigStatePtr state;
boost::shared_ptr<ARDOUR::RegionExportChannelFactory> factory;
ARDOUR::AudioRegion const & region;
ExportDialog::init_components ()
{
preset_selector.reset (new ExportPresetSelector ());
- timespan_selector.reset (new ExportTimespanSelectorMultiple ());
- channel_selector.reset (new PortExportChannelSelector ());
+ timespan_selector.reset (new ExportTimespanSelectorMultiple (session, profile_manager));
+ channel_selector.reset (new PortExportChannelSelector (session, profile_manager));
file_notebook.reset (new ExportFileNotebook ());
}
void
ExportDialog::sync_with_manager ()
{
- timespan_selector->set_state (profile_manager->get_timespans().front(), session);
- channel_selector->set_state (profile_manager->get_channel_configs().front(), session);
+ timespan_selector->sync_with_manager();
+ channel_selector->sync_with_manager();
file_notebook->sync_with_manager ();
update_warnings ();
ExportRangeDialog::init_components ()
{
preset_selector.reset (new ExportPresetSelector ());
- timespan_selector.reset (new ExportTimespanSelectorSingle (range_id));
- channel_selector.reset (new PortExportChannelSelector ());
+ timespan_selector.reset (new ExportTimespanSelectorSingle (session, profile_manager, range_id));
+ channel_selector.reset (new PortExportChannelSelector (session, profile_manager));
file_notebook.reset (new ExportFileNotebook ());
}
ExportSelectionDialog::init_components ()
{
preset_selector.reset (new ExportPresetSelector ());
- timespan_selector.reset (new ExportTimespanSelectorSingle (X_("selection")));
- channel_selector.reset (new PortExportChannelSelector ());
+ timespan_selector.reset (new ExportTimespanSelectorSingle (session, profile_manager, X_("selection")));
+ channel_selector.reset (new PortExportChannelSelector (session, profile_manager));
file_notebook.reset (new ExportFileNotebook ());
}
Glib::ustring loc_id = profile_manager->set_single_range (region.position(), region.position() + region.length(), region.name());
preset_selector.reset (new ExportPresetSelector ());
- timespan_selector.reset (new ExportTimespanSelectorSingle (loc_id));
- channel_selector.reset (new RegionExportChannelSelector (region, track));
+ timespan_selector.reset (new ExportTimespanSelectorSingle (session, profile_manager, loc_id));
+ channel_selector.reset (new RegionExportChannelSelector (session, profile_manager, region, track));
file_notebook.reset (new ExportFileNotebook ());
}
using namespace ARDOUR;
using namespace PBD;
-ExportTimespanSelector::ExportTimespanSelector () :
+ExportTimespanSelector::ExportTimespanSelector (ARDOUR::Session * session, ProfileManagerPtr manager) :
+ session (session),
+ manager (manager),
time_format_label (_("Show Times as:"), Gtk::ALIGN_LEFT)
{
}
void
-ExportTimespanSelector::set_state (ARDOUR::ExportProfileManager::TimespanStatePtr const state_, ARDOUR::Session * session_)
+ExportTimespanSelector::sync_with_manager ()
{
- state = state_;
- session = session_;
-
+ state = manager->get_timespans().front();
fill_range_list ();
-
CriticalSelectionChanged();
}
/*** ExportTimespanSelectorSingle ***/
-ExportTimespanSelectorSingle::ExportTimespanSelectorSingle (Glib::ustring range_id) :
- ExportTimespanSelector (),
+ExportTimespanSelectorSingle::ExportTimespanSelectorSingle (ARDOUR::Session * session, ProfileManagerPtr manager, Glib::ustring range_id) :
+ ExportTimespanSelector (session, manager),
range_id (range_id)
{
range_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_NEVER);
/*** ExportTimespanSelectorMultiple ***/
-ExportTimespanSelectorMultiple::ExportTimespanSelectorMultiple () :
- ExportTimespanSelector ()
+ExportTimespanSelectorMultiple::ExportTimespanSelectorMultiple (ARDOUR::Session * session, ProfileManagerPtr manager) :
+ ExportTimespanSelector (session, manager)
{
range_scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
range_view.append_column_editable ("", range_cols.selected);
/// Timespan Selector base
class ExportTimespanSelector : public Gtk::VBox {
+ protected:
+ typedef std::list<ARDOUR::Location *> LocationList;
+ typedef boost::shared_ptr<ARDOUR::ExportHandler> HandlerPtr;
+ typedef boost::shared_ptr<ARDOUR::ExportProfileManager> ProfileManagerPtr;
+
+ typedef boost::shared_ptr<ARDOUR::ExportTimespan> TimespanPtr;
+ typedef std::list<TimespanPtr> TimespanList;
+ typedef boost::shared_ptr<TimespanList> TimespanListPtr;
+ typedef ARDOUR::ExportProfileManager::TimespanStatePtr TimespanStatePtr;
+
public:
- ExportTimespanSelector ();
+ ExportTimespanSelector (ARDOUR::Session * session, ProfileManagerPtr manager);
+
virtual ~ExportTimespanSelector ();
- void set_state (ARDOUR::ExportProfileManager::TimespanStatePtr const state_, ARDOUR::Session * session_);
+ void sync_with_manager ();
sigc::signal<void> CriticalSelectionChanged;
protected:
- typedef std::list<ARDOUR::Location *> LocationList;
- typedef boost::shared_ptr<ARDOUR::ExportHandler> HandlerPtr;
-
- typedef boost::shared_ptr<ARDOUR::ExportTimespan> TimespanPtr;
- typedef std::list<TimespanPtr> TimespanList;
- typedef boost::shared_ptr<TimespanList> TimespanListPtr;
-
- ARDOUR::Session * session;
- ARDOUR::ExportProfileManager::TimespanStatePtr state;
+ ARDOUR::Session * session;
+ ProfileManagerPtr manager;
+ TimespanStatePtr state;
virtual void fill_range_list () = 0;
class ExportTimespanSelectorMultiple : public ExportTimespanSelector
{
public:
- ExportTimespanSelectorMultiple ();
+ ExportTimespanSelectorMultiple (ARDOUR::Session * session, ProfileManagerPtr manager);
private:
class ExportTimespanSelectorSingle : public ExportTimespanSelector
{
public:
- ExportTimespanSelectorSingle (Glib::ustring range_id);
+ ExportTimespanSelectorSingle (ARDOUR::Session * session, ProfileManagerPtr manager, Glib::ustring range_id);
private: