From 5bf90524df6a1a6d62fabd83cda7fac393bfdcbc Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Thu, 5 Mar 2015 12:48:30 -0600 Subject: [PATCH] fix import of v2 session redirects: active or inactive --- libs/ardour/processor.cc | 7 +++++-- libs/ardour/route.cc | 12 +++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/libs/ardour/processor.cc b/libs/ardour/processor.cc index ca1f71db5a..fa6cab579a 100644 --- a/libs/ardour/processor.cc +++ b/libs/ardour/processor.cc @@ -150,7 +150,9 @@ Processor::set_state_2X (const XMLNode & node, int /*version*/) set_id (**i); - if ((prop = (*i)->property ("active")) != 0) { + //note: in A2, active state was stored in the Redirect node, not the child IO node + /* + * if ((prop = (*i)->property ("active")) != 0) { bool const a = string_is_affirmative (prop->value ()); if (_active != a) { if (a) { @@ -159,7 +161,8 @@ Processor::set_state_2X (const XMLNode & node, int /*version*/) deactivate (); } } - } + }*/ + } } diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index ef46cd403e..3ff30f826e 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -1217,8 +1217,18 @@ Route::add_processor_from_xml_2X (const XMLNode& node, int version) if (processor->set_state (node, version)) { return false; } + + //A2 uses the "active" flag in the toplevel redirect node, not in the child plugin/IO + if (i != children.end()) { + if ((prop = (*i)->property (X_("active"))) != 0) { + if ( string_is_affirmative (prop->value()) ) + processor->activate(); + else + processor->deactivate(); + } + } - return (add_processor (processor, placement) == 0); + return (add_processor (processor, placement, 0, false) == 0); } catch (failed_constructor &err) {