summaryrefslogtreecommitdiff
path: root/libs/ardour/route_group.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-10-15 00:57:55 +0000
committerCarl Hetherington <carl@carlh.net>2009-10-15 00:57:55 +0000
commit79f91c7a205d981d2b8cc15e32a6da02d8423065 (patch)
treef27dd8319522be8321720ef3560c2207dd56b158 /libs/ardour/route_group.cc
parent09efd82c6aea973e3eb9497ef2b09256bf5ddde4 (diff)
Part 1 of loading 2.X sessions; some things work, some things don't, hacks a-plenty.
LOADING 2.X SESSIONS WITH THIS COMMIT IN PLACE WILL (PROBABLY) CORRUPT THE .ardour FILE, MAKING THE SESSION UNLOADABLE ON 2.X AND LOSING INFORMATION. So don't do that unless you make a backup of the session file first. git-svn-id: svn://localhost/ardour2/branches/3.0@5786 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/route_group.cc')
-rw-r--r--libs/ardour/route_group.cc30
1 files changed, 28 insertions, 2 deletions
diff --git a/libs/ardour/route_group.cc b/libs/ardour/route_group.cc
index 5cfc1fb3d0..3d7ac3ef70 100644
--- a/libs/ardour/route_group.cc
+++ b/libs/ardour/route_group.cc
@@ -136,9 +136,13 @@ RouteGroup::get_state (void)
return *node;
}
-int
-RouteGroup::set_state (const XMLNode& node)
+int
+RouteGroup::set_state (const XMLNode& node, int version)
{
+ if (version < 3000) {
+ return set_state_2X (node, version);
+ }
+
const XMLProperty *prop;
if ((prop = node.property ("name")) != 0) {
@@ -156,6 +160,28 @@ RouteGroup::set_state (const XMLNode& node)
return 0;
}
+int
+RouteGroup::set_state_2X (const XMLNode& node, int version)
+{
+ XMLProperty const * prop;
+
+ if ((prop = node.property ("name")) != 0) {
+ _name = prop->value();
+ }
+
+ if ((prop = node.property ("flags")) != 0) {
+ _flags = Flag (string_2_enum (prop->value(), _flags));
+ }
+
+ if (node.name() == "MixGroup") {
+ _properties = Property (Gain | Mute | Solo | RecEnable);
+ } else if (node.name() == "EditGroup") {
+ _properties = Property (Select | Edit);
+ }
+
+ return 0;
+}
+
void
RouteGroup::set_active (bool yn, void *src)
{