#include "ardour/export_channel_configuration.h"
-#include "ardour/export_handler.h"
-#include "ardour/export_filename.h"
-#include "ardour/export_timespan.h"
-
-#include "ardour/audio_port.h"
-#include "ardour/export_failed.h"
-#include "ardour/midi_port.h"
-#include "ardour/session.h"
-#include "ardour/audioengine.h"
-
#include "pbd/convert.h"
+#include "pbd/enumwriter.h"
#include "pbd/pthread_utils.h"
using namespace PBD;
/* ExportChannelConfiguration */
-ExportChannelConfiguration::ExportChannelConfiguration (Session & session) :
- session (session),
- split (false)
+ExportChannelConfiguration::ExportChannelConfiguration (Session & session)
+ : session (session)
+ , split (false)
+ , region_type (RegionExportChannelFactory::None)
{
}
XMLNode * root = new XMLNode ("ExportChannelConfiguration");
XMLNode * channel;
- root->add_property ("split", get_split() ? "true" : "false");
- root->add_property ("channels", to_string (get_n_chans(), std::dec));
+ root->set_property ("split", get_split());
+ root->set_property ("channels", get_n_chans());
+
+ switch (region_type) {
+ case RegionExportChannelFactory::None:
+ // Do nothing
+ break;
+ default:
+ root->set_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");
if (!channel) { continue; }
- channel->add_property ("number", to_string (i, std::dec));
+ channel->set_property ("number", i);
(*c_it)->get_state (channel);
++i;
int
ExportChannelConfiguration::set_state (const XMLNode & root)
{
- XMLProperty const * prop;
+ bool yn;
+ if (root.get_property ("split", yn)) {
+ set_split (yn);
+ }
- if ((prop = root.property ("split"))) {
- set_split (!prop->value().compare ("true"));
+ std::string str;
+ if (root.get_property ("region-processing", str)) {
+ set_region_processing_type ((RegionExportChannelFactory::Type)
+ string_2_enum (str, RegionExportChannelFactory::Type));
}
XMLNodeList channels = root.children ("Channel");