summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-05-05 14:54:28 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-05-05 14:54:28 +0000
commita0ad7177f6989301f695c90eea3c4d0fbc0d262a (patch)
treeac67787bfc0ac90f201360b25a20de8c01c4dcc2
parent21bd527ce32b66e337a41c8f89f9dc804a1dd8e9 (diff)
when splitting to mono regions, don't make the new mono regions children of existing regions in the list (involves changingthe definition of source-equivalent, but to its correct and intended meaning)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@7063 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--libs/ardour/audioregion.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc
index c329a26b1c..0eff9a2e3d 100644
--- a/libs/ardour/audioregion.cc
+++ b/libs/ardour/audioregion.cc
@@ -1272,11 +1272,17 @@ AudioRegion::source_equivalent (boost::shared_ptr<const Region> o) const
{
boost::shared_ptr<const AudioRegion> other = boost::dynamic_pointer_cast<const AudioRegion>(o);
- if (!other)
+ if (!other) {
return false;
+ }
SourceList::const_iterator i;
SourceList::const_iterator io;
+
+ if ((sources.size() != other->sources.size()) ||
+ (master_sources.size() != other->master_sources.size())) {
+ return false;
+ }
for (i = sources.begin(), io = other->sources.begin(); i != sources.end() && io != other->sources.end(); ++i, ++io) {
if ((*i)->id() != (*io)->id()) {