summaryrefslogtreecommitdiff
path: root/libs/ardour/playlist.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-07-27 02:11:15 +0000
committerCarl Hetherington <carl@carlh.net>2010-07-27 02:11:15 +0000
commitb1e535570c0dff1827d74b044e8dd7b621d7e050 (patch)
tree3f3eea233c41efca01155ef61d2092537416d623 /libs/ardour/playlist.cc
parent4977924a6e0914f40adfb3d66b714045188a877d (diff)
Fix up gain envelope handling with region split. Fixes #3306.
git-svn-id: svn://localhost/ardour2/branches/3.0@7510 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/playlist.cc')
-rw-r--r--libs/ardour/playlist.cc13
1 files changed, 8 insertions, 5 deletions
diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc
index e55b82c06b..8ea84b96bf 100644
--- a/libs/ardour/playlist.cc
+++ b/libs/ardour/playlist.cc
@@ -1401,12 +1401,15 @@ Playlist::_split_region (boost::shared_ptr<Region> region, framepos_t playlist_p
{
PropertyList plist;
- plist.add (Properties::start, region->start());
plist.add (Properties::length, before);
plist.add (Properties::name, before_name);
plist.add (Properties::left_of_split, true);
-
- left = RegionFactory::create (region, plist);
+
+ /* note: we must use the version of ::create with an offset here,
+ since it supplies that offset to the Region constructor, which
+ is necessary to get audio region gain envelopes right.
+ */
+ left = RegionFactory::create (region, 0, plist);
}
RegionFactory::region_name (after_name, region->name(), false);
@@ -1414,12 +1417,12 @@ Playlist::_split_region (boost::shared_ptr<Region> region, framepos_t playlist_p
{
PropertyList plist;
- plist.add (Properties::start, region->start() + before);
plist.add (Properties::length, after);
plist.add (Properties::name, after_name);
plist.add (Properties::right_of_split, true);
- right = RegionFactory::create (region, plist);
+ /* same note as above */
+ right = RegionFactory::create (region, before, plist);
}
add_region_internal (left, region->position());