mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-16 11:46:25 +01:00
Some preparations for allowing multiple channel configurations in export channel configurations.
Also unified the timespan selector interface... git-svn-id: svn://localhost/ardour2/branches/3.0@4748 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
b669de1e97
commit
ab47be7b5a
5 changed files with 68 additions and 52 deletions
|
|
@ -40,13 +40,13 @@
|
||||||
using namespace ARDOUR;
|
using namespace ARDOUR;
|
||||||
using namespace PBD;
|
using namespace PBD;
|
||||||
|
|
||||||
PortExportChannelSelector::PortExportChannelSelector () :
|
PortExportChannelSelector::PortExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager) :
|
||||||
|
ExportChannelSelector (session, manager),
|
||||||
channels_label (_("Channels:"), Gtk::ALIGN_LEFT),
|
channels_label (_("Channels:"), Gtk::ALIGN_LEFT),
|
||||||
split_checkbox (_("Split to mono files")),
|
split_checkbox (_("Split to mono files")),
|
||||||
max_channels (20),
|
max_channels (20),
|
||||||
channel_view (max_channels)
|
channel_view (max_channels)
|
||||||
{
|
{
|
||||||
|
|
||||||
channels_hbox.pack_start (channels_label, false, false, 0);
|
channels_hbox.pack_start (channels_label, false, false, 0);
|
||||||
channels_hbox.pack_end (channels_spinbutton, false, false, 0);
|
channels_hbox.pack_end (channels_spinbutton, false, false, 0);
|
||||||
|
|
||||||
|
|
@ -78,6 +78,7 @@ PortExportChannelSelector::PortExportChannelSelector () :
|
||||||
|
|
||||||
/* Finalize */
|
/* Finalize */
|
||||||
|
|
||||||
|
sync_with_manager();
|
||||||
show_all_children ();
|
show_all_children ();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -90,10 +91,9 @@ PortExportChannelSelector::~PortExportChannelSelector ()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PortExportChannelSelector::set_state (ARDOUR::ExportProfileManager::ChannelConfigStatePtr const state_, ARDOUR::Session * session_)
|
PortExportChannelSelector::sync_with_manager ()
|
||||||
{
|
{
|
||||||
state = state_;
|
state = manager->get_channel_configs().front();
|
||||||
session = session_;
|
|
||||||
|
|
||||||
split_checkbox.set_active (state->config->get_split());
|
split_checkbox.set_active (state->config->get_split());
|
||||||
channels_spinbutton.set_value (state->config->get_n_chans());
|
channels_spinbutton.set_value (state->config->get_n_chans());
|
||||||
|
|
@ -433,8 +433,11 @@ PortExportChannelSelector::ChannelTreeView::update_selection_text (Glib::ustring
|
||||||
update_config ();
|
update_config ();
|
||||||
}
|
}
|
||||||
|
|
||||||
RegionExportChannelSelector::RegionExportChannelSelector (ARDOUR::AudioRegion const & region, ARDOUR::AudioTrack & track) :
|
RegionExportChannelSelector::RegionExportChannelSelector (ARDOUR::Session * session,
|
||||||
session (0),
|
ProfileManagerPtr manager,
|
||||||
|
ARDOUR::AudioRegion const & region,
|
||||||
|
ARDOUR::AudioTrack & track) :
|
||||||
|
ExportChannelSelector (session, manager),
|
||||||
region (region),
|
region (region),
|
||||||
track (track),
|
track (track),
|
||||||
region_chans (region.n_channels()),
|
region_chans (region.n_channels()),
|
||||||
|
|
@ -458,16 +461,15 @@ RegionExportChannelSelector::RegionExportChannelSelector (ARDOUR::AudioRegion co
|
||||||
processed_button.signal_toggled ().connect (sigc::mem_fun (*this, &RegionExportChannelSelector::handle_selection));
|
processed_button.signal_toggled ().connect (sigc::mem_fun (*this, &RegionExportChannelSelector::handle_selection));
|
||||||
vbox.pack_start (processed_button);
|
vbox.pack_start (processed_button);
|
||||||
|
|
||||||
|
sync_with_manager();
|
||||||
vbox.show_all_children ();
|
vbox.show_all_children ();
|
||||||
show_all_children ();
|
show_all_children ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
RegionExportChannelSelector::set_state (ARDOUR::ExportProfileManager::ChannelConfigStatePtr const state_, ARDOUR::Session * session_)
|
RegionExportChannelSelector::sync_with_manager ()
|
||||||
{
|
{
|
||||||
state = state_;
|
state = manager->get_channel_configs().front();
|
||||||
session = session_;
|
|
||||||
|
|
||||||
handle_selection ();
|
handle_selection ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,12 +47,21 @@ class ExportChannelSelector : public Gtk::HBox
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
typedef boost::shared_ptr<ARDOUR::ExportChannelConfiguration> ChannelConfigPtr;
|
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:
|
public:
|
||||||
|
ExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager)
|
||||||
|
: session (session)
|
||||||
|
, manager (manager)
|
||||||
|
{}
|
||||||
|
|
||||||
virtual ~ExportChannelSelector () {}
|
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;
|
sigc::signal<void> CriticalSelectionChanged;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -61,10 +70,10 @@ class PortExportChannelSelector : public ExportChannelSelector
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
PortExportChannelSelector ();
|
PortExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager);
|
||||||
~PortExportChannelSelector ();
|
~PortExportChannelSelector ();
|
||||||
|
|
||||||
void set_state (ARDOUR::ExportProfileManager::ChannelConfigStatePtr const state_, ARDOUR::Session * session_);
|
void sync_with_manager ();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
@ -74,7 +83,6 @@ class PortExportChannelSelector : public ExportChannelSelector
|
||||||
|
|
||||||
typedef std::list<ARDOUR::ExportChannelPtr> CahnnelList;
|
typedef std::list<ARDOUR::ExportChannelPtr> CahnnelList;
|
||||||
|
|
||||||
ARDOUR::Session * session;
|
|
||||||
ARDOUR::ExportProfileManager::ChannelConfigStatePtr state;
|
ARDOUR::ExportProfileManager::ChannelConfigStatePtr state;
|
||||||
|
|
||||||
/*** GUI stuff ***/
|
/*** GUI stuff ***/
|
||||||
|
|
@ -189,15 +197,17 @@ class PortExportChannelSelector : public ExportChannelSelector
|
||||||
class RegionExportChannelSelector : public ExportChannelSelector
|
class RegionExportChannelSelector : public ExportChannelSelector
|
||||||
{
|
{
|
||||||
public:
|
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:
|
private:
|
||||||
|
|
||||||
void handle_selection ();
|
void handle_selection ();
|
||||||
|
|
||||||
ARDOUR::Session * session;
|
|
||||||
ARDOUR::ExportProfileManager::ChannelConfigStatePtr state;
|
ARDOUR::ExportProfileManager::ChannelConfigStatePtr state;
|
||||||
boost::shared_ptr<ARDOUR::RegionExportChannelFactory> factory;
|
boost::shared_ptr<ARDOUR::RegionExportChannelFactory> factory;
|
||||||
ARDOUR::AudioRegion const & region;
|
ARDOUR::AudioRegion const & region;
|
||||||
|
|
|
||||||
|
|
@ -168,8 +168,8 @@ void
|
||||||
ExportDialog::init_components ()
|
ExportDialog::init_components ()
|
||||||
{
|
{
|
||||||
preset_selector.reset (new ExportPresetSelector ());
|
preset_selector.reset (new ExportPresetSelector ());
|
||||||
timespan_selector.reset (new ExportTimespanSelectorMultiple ());
|
timespan_selector.reset (new ExportTimespanSelectorMultiple (session, profile_manager));
|
||||||
channel_selector.reset (new PortExportChannelSelector ());
|
channel_selector.reset (new PortExportChannelSelector (session, profile_manager));
|
||||||
file_notebook.reset (new ExportFileNotebook ());
|
file_notebook.reset (new ExportFileNotebook ());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -198,8 +198,8 @@ ExportDialog::close_dialog ()
|
||||||
void
|
void
|
||||||
ExportDialog::sync_with_manager ()
|
ExportDialog::sync_with_manager ()
|
||||||
{
|
{
|
||||||
timespan_selector->set_state (profile_manager->get_timespans().front(), session);
|
timespan_selector->sync_with_manager();
|
||||||
channel_selector->set_state (profile_manager->get_channel_configs().front(), session);
|
channel_selector->sync_with_manager();
|
||||||
file_notebook->sync_with_manager ();
|
file_notebook->sync_with_manager ();
|
||||||
|
|
||||||
update_warnings ();
|
update_warnings ();
|
||||||
|
|
@ -363,8 +363,8 @@ void
|
||||||
ExportRangeDialog::init_components ()
|
ExportRangeDialog::init_components ()
|
||||||
{
|
{
|
||||||
preset_selector.reset (new ExportPresetSelector ());
|
preset_selector.reset (new ExportPresetSelector ());
|
||||||
timespan_selector.reset (new ExportTimespanSelectorSingle (range_id));
|
timespan_selector.reset (new ExportTimespanSelectorSingle (session, profile_manager, range_id));
|
||||||
channel_selector.reset (new PortExportChannelSelector ());
|
channel_selector.reset (new PortExportChannelSelector (session, profile_manager));
|
||||||
file_notebook.reset (new ExportFileNotebook ());
|
file_notebook.reset (new ExportFileNotebook ());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -376,8 +376,8 @@ void
|
||||||
ExportSelectionDialog::init_components ()
|
ExportSelectionDialog::init_components ()
|
||||||
{
|
{
|
||||||
preset_selector.reset (new ExportPresetSelector ());
|
preset_selector.reset (new ExportPresetSelector ());
|
||||||
timespan_selector.reset (new ExportTimespanSelectorSingle (X_("selection")));
|
timespan_selector.reset (new ExportTimespanSelectorSingle (session, profile_manager, X_("selection")));
|
||||||
channel_selector.reset (new PortExportChannelSelector ());
|
channel_selector.reset (new PortExportChannelSelector (session, profile_manager));
|
||||||
file_notebook.reset (new ExportFileNotebook ());
|
file_notebook.reset (new ExportFileNotebook ());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -401,7 +401,7 @@ ExportRegionDialog::init_components ()
|
||||||
Glib::ustring loc_id = profile_manager->set_single_range (region.position(), region.position() + region.length(), region.name());
|
Glib::ustring loc_id = profile_manager->set_single_range (region.position(), region.position() + region.length(), region.name());
|
||||||
|
|
||||||
preset_selector.reset (new ExportPresetSelector ());
|
preset_selector.reset (new ExportPresetSelector ());
|
||||||
timespan_selector.reset (new ExportTimespanSelectorSingle (loc_id));
|
timespan_selector.reset (new ExportTimespanSelectorSingle (session, profile_manager, loc_id));
|
||||||
channel_selector.reset (new RegionExportChannelSelector (region, track));
|
channel_selector.reset (new RegionExportChannelSelector (session, profile_manager, region, track));
|
||||||
file_notebook.reset (new ExportFileNotebook ());
|
file_notebook.reset (new ExportFileNotebook ());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,9 @@
|
||||||
using namespace ARDOUR;
|
using namespace ARDOUR;
|
||||||
using namespace PBD;
|
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)
|
time_format_label (_("Show Times as:"), Gtk::ALIGN_LEFT)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -126,13 +128,10 @@ ExportTimespanSelector::set_time_format_from_state ()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ExportTimespanSelector::set_state (ARDOUR::ExportProfileManager::TimespanStatePtr const state_, ARDOUR::Session * session_)
|
ExportTimespanSelector::sync_with_manager ()
|
||||||
{
|
{
|
||||||
state = state_;
|
state = manager->get_timespans().front();
|
||||||
session = session_;
|
|
||||||
|
|
||||||
fill_range_list ();
|
fill_range_list ();
|
||||||
|
|
||||||
CriticalSelectionChanged();
|
CriticalSelectionChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -293,8 +292,8 @@ ExportTimespanSelector::update_range_name (Glib::ustring const & path, Glib::ust
|
||||||
|
|
||||||
/*** ExportTimespanSelectorSingle ***/
|
/*** ExportTimespanSelectorSingle ***/
|
||||||
|
|
||||||
ExportTimespanSelectorSingle::ExportTimespanSelectorSingle (Glib::ustring range_id) :
|
ExportTimespanSelectorSingle::ExportTimespanSelectorSingle (ARDOUR::Session * session, ProfileManagerPtr manager, Glib::ustring range_id) :
|
||||||
ExportTimespanSelector (),
|
ExportTimespanSelector (session, manager),
|
||||||
range_id (range_id)
|
range_id (range_id)
|
||||||
{
|
{
|
||||||
range_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_NEVER);
|
range_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_NEVER);
|
||||||
|
|
@ -358,8 +357,8 @@ ExportTimespanSelectorSingle::fill_range_list ()
|
||||||
|
|
||||||
/*** ExportTimespanSelectorMultiple ***/
|
/*** ExportTimespanSelectorMultiple ***/
|
||||||
|
|
||||||
ExportTimespanSelectorMultiple::ExportTimespanSelectorMultiple () :
|
ExportTimespanSelectorMultiple::ExportTimespanSelectorMultiple (ARDOUR::Session * session, ProfileManagerPtr manager) :
|
||||||
ExportTimespanSelector ()
|
ExportTimespanSelector (session, manager)
|
||||||
{
|
{
|
||||||
range_scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
|
range_scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
|
||||||
range_view.append_column_editable ("", range_cols.selected);
|
range_view.append_column_editable ("", range_cols.selected);
|
||||||
|
|
|
||||||
|
|
@ -43,26 +43,31 @@ using ARDOUR::CDMarkerFormat;
|
||||||
|
|
||||||
/// Timespan Selector base
|
/// Timespan Selector base
|
||||||
class ExportTimespanSelector : public Gtk::VBox {
|
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:
|
public:
|
||||||
|
|
||||||
ExportTimespanSelector ();
|
ExportTimespanSelector (ARDOUR::Session * session, ProfileManagerPtr manager);
|
||||||
|
|
||||||
virtual ~ExportTimespanSelector ();
|
virtual ~ExportTimespanSelector ();
|
||||||
|
|
||||||
void set_state (ARDOUR::ExportProfileManager::TimespanStatePtr const state_, ARDOUR::Session * session_);
|
void sync_with_manager ();
|
||||||
|
|
||||||
sigc::signal<void> CriticalSelectionChanged;
|
sigc::signal<void> CriticalSelectionChanged;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
typedef std::list<ARDOUR::Location *> LocationList;
|
ARDOUR::Session * session;
|
||||||
typedef boost::shared_ptr<ARDOUR::ExportHandler> HandlerPtr;
|
ProfileManagerPtr manager;
|
||||||
|
TimespanStatePtr state;
|
||||||
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;
|
|
||||||
|
|
||||||
virtual void fill_range_list () = 0;
|
virtual void fill_range_list () = 0;
|
||||||
|
|
||||||
|
|
@ -123,7 +128,7 @@ class ExportTimespanSelector : public Gtk::VBox {
|
||||||
class ExportTimespanSelectorMultiple : public ExportTimespanSelector
|
class ExportTimespanSelectorMultiple : public ExportTimespanSelector
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ExportTimespanSelectorMultiple ();
|
ExportTimespanSelectorMultiple (ARDOUR::Session * session, ProfileManagerPtr manager);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
@ -138,7 +143,7 @@ class ExportTimespanSelectorMultiple : public ExportTimespanSelector
|
||||||
class ExportTimespanSelectorSingle : public ExportTimespanSelector
|
class ExportTimespanSelectorSingle : public ExportTimespanSelector
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ExportTimespanSelectorSingle (Glib::ustring range_id);
|
ExportTimespanSelectorSingle (ARDOUR::Session * session, ProfileManagerPtr manager, Glib::ustring range_id);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue