diff options
author | Ben Loftis <ben@harrisonconsoles.com> | 2015-03-05 12:48:30 -0600 |
---|---|---|
committer | Ben Loftis <ben@harrisonconsoles.com> | 2015-03-05 12:48:30 -0600 |
commit | 5bf90524df6a1a6d62fabd83cda7fac393bfdcbc (patch) | |
tree | 5e5260340fe9dae3f9abc980e7352b140b132aa7 | |
parent | 1089f19a4c38fa548451b1371662d5a26051576a (diff) |
fix import of v2 session redirects: active or inactive
-rw-r--r-- | libs/ardour/processor.cc | 7 | ||||
-rw-r--r-- | 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) { |