- // may not exist for legacy 3.0 sessions
- if ((prop = node.property ("name")) != 0) {
- set_name(prop->value());
+ for (XMLNodeIterator i = children.begin(); i != children.end(); ++i) {
+
+ if ((*i)->name() == X_("IO")) {
+
+ if ((prop = (*i)->property ("name")) != 0) {
+ set_name (prop->value ());
+ }
+
+ set_id (**i);
+
+ //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) {
+ activate ();
+ } else {
+ deactivate ();
+ }
+ }
+ }*/
+
+ }
+ }
+
+ return 0;
+}
+
+int
+Processor::set_state (const XMLNode& node, int version)
+{
+ if (version < 3000) {
+ return set_state_2X (node, version);