summaryrefslogtreecommitdiff
path: root/gtk2_ardour/export_channel_selector.cc
diff options
context:
space:
mode:
authorSakari Bergen <sakari.bergen@beatwaves.net>2012-01-28 15:05:53 +0000
committerSakari Bergen <sakari.bergen@beatwaves.net>2012-01-28 15:05:53 +0000
commitab8cea1d7c19fddc6b81a6ba4a303a00e4fdd93c (patch)
treeae02bf18efc30dcd7af7782ec434ac73b0641ddf /gtk2_ardour/export_channel_selector.cc
parentaaf418bd6fe178eea0c67e65693536b07fcf5932 (diff)
Store Region export state in instant.xml (fixes #3935)
git-svn-id: svn://localhost/ardour2/branches/3.0@11376 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/export_channel_selector.cc')
-rw-r--r--gtk2_ardour/export_channel_selector.cc28
1 files changed, 25 insertions, 3 deletions
diff --git a/gtk2_ardour/export_channel_selector.cc b/gtk2_ardour/export_channel_selector.cc
index 4f332c9bff..b9c2dd5a78 100644
--- a/gtk2_ardour/export_channel_selector.cc
+++ b/gtk2_ardour/export_channel_selector.cc
@@ -478,6 +478,24 @@ void
RegionExportChannelSelector::sync_with_manager ()
{
state = manager->get_channel_configs().front();
+
+ if (!state) { return; }
+
+ switch (state->config->region_processing_type()) {
+ case RegionExportChannelFactory::None:
+ // Do nothing
+ break;
+ case RegionExportChannelFactory::Raw:
+ raw_button.set_active (true);
+ break;
+ case RegionExportChannelFactory::Fades:
+ fades_button.set_active (true);
+ break;
+ case RegionExportChannelFactory::Processed:
+ processed_button.set_active (true);
+ break;
+ }
+
handle_selection ();
}
@@ -490,17 +508,21 @@ RegionExportChannelSelector::handle_selection ()
state->config->clear_channels ();
+ RegionExportChannelFactory::Type type = RegionExportChannelFactory::None;
if (raw_button.get_active ()) {
- factory.reset (new RegionExportChannelFactory (_session, region, track, RegionExportChannelFactory::Raw));
+ type = RegionExportChannelFactory::Raw;
} else if (fades_button.get_active ()) {
- factory.reset (new RegionExportChannelFactory (_session, region, track, RegionExportChannelFactory::Fades));
+ type = RegionExportChannelFactory::Fades;
} else if (processed_button.get_active ()) {
- factory.reset (new RegionExportChannelFactory(_session, region, track, RegionExportChannelFactory::Processed));
+ type = RegionExportChannelFactory::Processed;
} else {
CriticalSelectionChanged ();
return;
}
+ factory.reset (new RegionExportChannelFactory (_session, region, track, type));
+ state->config->set_region_processing_type (type);
+
for (size_t chan = 0; chan < region_chans; ++chan) {
state->config->register_channel (factory->create (chan));
}