static PBD::Signal1<void,boost::shared_ptr<Region> > CheckNewRegion;
/** create a "pure copy" of Region @param other */
- static boost::shared_ptr<Region> create (boost::shared_ptr<const Region> other, bool announce = false);
+ static boost::shared_ptr<Region> create (boost::shared_ptr<const Region> other, bool announce = false, bool fork = false);
/** create a region from a single Source */
static boost::shared_ptr<Region> create (boost::shared_ptr<Source>,
RegionReadLock rlock (const_cast<Playlist *> (this));
for (RegionList::const_iterator i = regions.begin(); i != regions.end(); ++i) {
- newlist.push_back (RegionFactory::create (*i, true));
+ newlist.push_back (RegionFactory::create (*i, true, true));
}
}
RegionFactory::CompoundAssociations RegionFactory::_compound_associations;
boost::shared_ptr<Region>
-RegionFactory::create (boost::shared_ptr<const Region> region, bool announce)
+RegionFactory::create (boost::shared_ptr<const Region> region, bool announce, bool fork)
{
boost::shared_ptr<Region> ret;
boost::shared_ptr<const AudioRegion> ar;
} else if ((mr = boost::dynamic_pointer_cast<const MidiRegion>(region)) != 0) {
- if (mr->session().config.get_midi_copy_is_fork()) {
+ if (mr->session().config.get_midi_copy_is_fork() || fork) {
/* What we really want to do here is what Editor::fork_region()
does via Session::create_midi_source_by_stealing_name(), but we
don't have a Track. We'll just live with the skipped number,