summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorJesse Chappell <jesse@essej.net>2007-01-18 06:39:22 +0000
committerJesse Chappell <jesse@essej.net>2007-01-18 06:39:22 +0000
commit851d1fa76a4b9a67b5890ea36380029eaa1fb45f (patch)
tree8b56815d56cbc1f030d2b0e65303e86e075c7a0e /libs/ardour/route.cc
parentf7d48b79f1fa28ce1e8f8862ad0d599d497c1ec6 (diff)
Fixed midi controllable state saving/loading
git-svn-id: svn://localhost/ardour2/trunk@1356 d708f5d6-7413-0410-9779-e7cbd77b26cf
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 a322c10068..d3097dd776 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -1687,13 +1687,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);
+ }
}
}