summaryrefslogtreecommitdiff
path: root/libs/ardour/route_group.cc
diff options
context:
space:
mode:
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)
{