From ab8cea1d7c19fddc6b81a6ba4a303a00e4fdd93c Mon Sep 17 00:00:00 2001 From: Sakari Bergen Date: Sat, 28 Jan 2012 15:05:53 +0000 Subject: Store Region export state in instant.xml (fixes #3935) git-svn-id: svn://localhost/ardour2/branches/3.0@11376 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/ardour/export_channel.h | 1 + libs/ardour/ardour/export_channel_configuration.h | 4 ++++ libs/ardour/enums.cc | 8 ++++++++ libs/ardour/export_channel_configuration.cc | 22 +++++++++++++++++++--- libs/ardour/export_profile_manager.cc | 2 -- 5 files changed, 32 insertions(+), 5 deletions(-) (limited to 'libs/ardour') diff --git a/libs/ardour/ardour/export_channel.h b/libs/ardour/ardour/export_channel.h index a10bdfc290..6f9682018c 100644 --- a/libs/ardour/ardour/export_channel.h +++ b/libs/ardour/ardour/export_channel.h @@ -93,6 +93,7 @@ class RegionExportChannelFactory { public: enum Type { + None, Raw, Fades, Processed diff --git a/libs/ardour/ardour/export_channel_configuration.h b/libs/ardour/ardour/export_channel_configuration.h index d84638ca85..a950cecc65 100644 --- a/libs/ardour/ardour/export_channel_configuration.h +++ b/libs/ardour/ardour/export_channel_configuration.h @@ -68,6 +68,9 @@ class ExportChannelConfiguration : public boost::enable_shared_from_thisadd_property ("split", get_split() ? "true" : "false"); root->add_property ("channels", to_string (get_n_chans(), std::dec)); + switch (region_type) { + case RegionExportChannelFactory::None: + // Do nothing + break; + default: + root->add_property ("region-processing", enum_2_string (region_type)); + break; + } + uint32_t i = 1; for (ExportChannelConfiguration::ChannelList::const_iterator c_it = channels.begin(); c_it != channels.end(); ++c_it) { channel = root->add_child ("Channel"); @@ -79,6 +90,11 @@ ExportChannelConfiguration::set_state (const XMLNode & root) set_split (!prop->value().compare ("true")); } + if ((prop = root.property ("region-processing"))) { + set_region_processing_type ((RegionExportChannelFactory::Type) + string_2_enum (prop->value(), RegionExportChannelFactory::Type)); + } + XMLNodeList channels = root.children ("Channel"); for (XMLNodeList::iterator it = channels.begin(); it != channels.end(); ++it) { ExportChannelPtr channel (new PortExportChannel ()); diff --git a/libs/ardour/export_profile_manager.cc b/libs/ardour/export_profile_manager.cc index 459f878596..6ff73261de 100644 --- a/libs/ardour/export_profile_manager.cc +++ b/libs/ardour/export_profile_manager.cc @@ -90,8 +90,6 @@ ExportProfileManager::ExportProfileManager (Session & s, std::string xml_node_na ExportProfileManager::~ExportProfileManager () { - if (single_range_mode) { return; } - XMLNode * instant_xml (new XMLNode (xml_node_name)); serialize_profile (*instant_xml); session.add_instant_xml (*instant_xml, false); -- cgit v1.2.3