summaryrefslogtreecommitdiff
path: root/gtk2_ardour/export_dialog.cc
diff options
context:
space:
mode:
authorSakari Bergen <sakari.bergen@beatwaves.net>2008-10-11 10:14:51 +0000
committerSakari Bergen <sakari.bergen@beatwaves.net>2008-10-11 10:14:51 +0000
commit98389f7da420ee205f6827b7df4db3ea0802f751 (patch)
tree28a28cf591b3d90a7eb60f422eee95e5ebfed6dc /gtk2_ardour/export_dialog.cc
parent01b1790c98f9ee6739681f1dc8fe529c3ca7160a (diff)
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
Diffstat (limited to 'gtk2_ardour/export_dialog.cc')
-rw-r--r--gtk2_ardour/export_dialog.cc31
1 files changed, 26 insertions, 5 deletions
diff --git a/gtk2_ardour/export_dialog.cc b/gtk2_ardour/export_dialog.cc
index 7ae81a016a..86263c8d3f 100644
--- a/gtk2_ardour/export_dialog.cc
+++ b/gtk2_ardour/export_dialog.cc
@@ -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 ());
}