summaryrefslogtreecommitdiff
path: root/libs/ardour/playlist.cc
diff options
context:
space:
mode:
authorAndré Nusser <andre.nusser@googlemail.com>2015-09-20 22:22:39 +0200
committerRobin Gareus <robin@gareus.org>2015-09-20 22:22:39 +0200
commit6a248b61f07c7ff73faac21d8bb4934a22b5250e (patch)
tree363413bf374d23a073adfd416a2d8a671a724e36 /libs/ardour/playlist.cc
parent7b4aa97145b12695fc2948d5d45938cf7fcd86b0 (diff)
fix duplicating multiple selected regions - fixes #6202
Diffstat (limited to 'libs/ardour/playlist.cc')
-rw-r--r--libs/ardour/playlist.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc
index 8862c633ab..868be8da19 100644
--- a/libs/ardour/playlist.cc
+++ b/libs/ardour/playlist.cc
@@ -1245,6 +1245,13 @@ Playlist::flush_notifications (bool from_undo)
void
Playlist::duplicate (boost::shared_ptr<Region> region, framepos_t position, float times)
{
+ duplicate(region, position, region->length(), times);
+ }
+
+/** @param gap from the beginning of the region to the next beginning */
+ void
+ Playlist::duplicate (boost::shared_ptr<Region> region, framepos_t position, framecnt_t gap, float times)
+ {
times = fabs (times);
RegionWriteLock rl (this);
@@ -1255,7 +1262,7 @@ Playlist::flush_notifications (bool from_undo)
boost::shared_ptr<Region> copy = RegionFactory::create (region, true);
add_region_internal (copy, pos);
set_layer (copy, DBL_MAX);
- pos += region->length();
+ pos += gap;
}
if (floor (times) != times) {