summaryrefslogtreecommitdiff
path: root/libs/ardour/automation_list.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-07-04 20:12:51 +0200
committerRobin Gareus <robin@gareus.org>2017-07-04 20:12:51 +0200
commitc4578db595771b5db9572b23cfe3f9a7ebef66c3 (patch)
treeaf8f4fd9445491dc9701f5ef85239042d8cd6e65 /libs/ardour/automation_list.cc
parent135ffdcf6b27411b0d075449b0eda8e4c5fdd2cb (diff)
Compatibility with old out-of-range automation-lane data
Ardour may have ignored log-scale for parameters 0..N and allowed writing '0'. Force those values into the valid range on session load. Also mark the list as "needs sorting" which removes potential duplicates.
Diffstat (limited to 'libs/ardour/automation_list.cc')
-rw-r--r--libs/ardour/automation_list.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/libs/ardour/automation_list.cc b/libs/ardour/automation_list.cc
index 014b4c511b..8ceab4f3ea 100644
--- a/libs/ardour/automation_list.cc
+++ b/libs/ardour/automation_list.cc
@@ -444,6 +444,7 @@ AutomationList::deserialize_events (const XMLNode& node)
ok = false;
break;
}
+ y = std::min ((double)_desc.upper, std::max ((double)_desc.lower, y));
fast_simple_add (x, y);
}
@@ -501,6 +502,7 @@ AutomationList::set_state (const XMLNode& node, int version)
continue;
}
+ y = std::min ((double)_desc.upper, std::max ((double)_desc.lower, y));
fast_simple_add (x, y);
}