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
This commit is contained in:
Sakari Bergen 2008-10-11 10:14:51 +00:00
parent 01b1790c98
commit 98389f7da4
14 changed files with 537 additions and 115 deletions

View file

@ -45,8 +45,6 @@ ExportDialog::~ExportDialog ()
void
ExportDialog::set_session (ARDOUR::Session* s)
{
init ();
session = s;
/* Init handler and profile manager */
@ -55,6 +53,12 @@ ExportDialog::set_session (ARDOUR::Session* s)
status = session->get_export_status ();
profile_manager.reset (new ExportProfileManager (*session));
/* Possibly init stuff in derived classes */
init ();
/* Rest of session related initialization */
preset_selector->set_manager (profile_manager);
file_notebook->set_session_and_manager (session, profile_manager);
@ -163,7 +167,7 @@ ExportDialog::init_components ()
{
preset_selector.reset (new ExportPresetSelector ());
timespan_selector.reset (new ExportTimespanSelectorMultiple ());
channel_selector.reset (new ExportChannelSelector ());
channel_selector.reset (new PortExportChannelSelector ());
file_notebook.reset (new ExportFileNotebook ());
}
@ -358,7 +362,7 @@ ExportRangeDialog::init_components ()
{
preset_selector.reset (new ExportPresetSelector ());
timespan_selector.reset (new ExportTimespanSelectorSingle (range_id));
channel_selector.reset (new ExportChannelSelector ());
channel_selector.reset (new PortExportChannelSelector ());
file_notebook.reset (new ExportFileNotebook ());
}
@ -371,6 +375,23 @@ ExportSelectionDialog::init_components ()
{
preset_selector.reset (new ExportPresetSelector ());
timespan_selector.reset (new ExportTimespanSelectorSingle (X_("selection")));
channel_selector.reset (new ExportChannelSelector ());
channel_selector.reset (new PortExportChannelSelector ());
file_notebook.reset (new ExportFileNotebook ());
}
ExportRegionDialog::ExportRegionDialog (PublicEditor & editor, ARDOUR::AudioRegion const & region, ARDOUR::AudioTrack & track) :
ExportDialog (editor, _("Export Region")),
region (region),
track (track)
{}
void
ExportRegionDialog::init_components ()
{
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));
file_notebook.reset (new ExportFileNotebook ());
}