summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r--libs/ardour/route.cc18
1 files changed, 12 insertions, 6 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index a2bc65407c..d415741831 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -1647,13 +1647,19 @@ Route::_set_state (const XMLNode& node, bool call_base)
_comment = cmt->content();
} else if (child->name() == X_("extra")) {
+
_extra_xml = new XMLNode (*child);
- } else if (child->name() == X_("solo")) {
- _solo_control.set_state (*child);
- _session.add_controllable (&_solo_control);
- } else if (child->name() == X_("mute")) {
- _mute_control.set_state (*child);
- _session.add_controllable (&_mute_control);
+
+ } else if (child->name() == X_("controllable") && (prop = child->property("name")) != 0) {
+
+ if (prop->value() == "solo") {
+ _solo_control.set_state (*child);
+ _session.add_controllable (&_solo_control);
+ }
+ else if (prop->value() == "mute") {
+ _mute_control.set_state (*child);
+ _session.add_controllable (&_mute_control);
+ }
}
}