From b37b23af97fbffbf789222f03247439324648ffb Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 1 Mar 2011 21:54:54 +0000 Subject: improve, cleanup, rationalize Session::cleanup_sources() and supporting infrastructure git-svn-id: svn://localhost/ardour2/branches/3.0@9015 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/playlist.cc | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) (limited to 'libs/ardour/playlist.cc') diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc index cb764e7f40..393cc284fb 100644 --- a/libs/ardour/playlist.cc +++ b/libs/ardour/playlist.cc @@ -827,12 +827,8 @@ Playlist::add_region_internal (boost::shared_ptr region, framepos_t posi regions.insert (upper_bound (regions.begin(), regions.end(), region, cmp), region); all_regions.insert (region); - cerr << "Playlist: region added at " << position << endl; - possibly_splice_unlocked (position, region->length(), region); - cerr << "Playlist: post-splice, region @ " << region->position() << endl; - if (!holding_state ()) { /* layers get assigned from XML state, and are not reset during undo/redo */ relayer (); @@ -1309,7 +1305,6 @@ Playlist::paste (boost::shared_ptr other, framepos_t position, float t */ copy_of_region->set_layer (copy_of_region->layer() + top_layer); - cerr << "DEBUG: add new region at " << pos << endl; add_region_internal (copy_of_region, (*i)->position() + pos); } pos += shift; @@ -1703,6 +1698,18 @@ Playlist::drop_regions () all_regions.clear (); } +void +Playlist::sync_all_regions_with_regions () +{ + RegionLock rl (this); + + all_regions.clear (); + + for (RegionList::iterator i = regions.begin(); i != regions.end(); ++i) { + all_regions.insert (*i); + } +} + void Playlist::clear (bool with_signals) { @@ -2757,6 +2764,20 @@ Playlist::nudge_after (framepos_t start, framecnt_t distance, bool forwards) } +bool +Playlist::uses_source (boost::shared_ptr src) const +{ + RegionLock rlock (const_cast (this)); + + for (set >::iterator r = all_regions.begin(); r != all_regions.end(); ++r) { + if ((*r)->uses_source (src)) { + return true; + } + } + + return false; +} + boost::shared_ptr Playlist::find_region (const ID& id) const { -- cgit v1.2.3