summaryrefslogtreecommitdiff
path: root/libs/ardour/playlist.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-05-26 16:03:47 +0000
committerCarl Hetherington <carl@carlh.net>2010-05-26 16:03:47 +0000
commit102f64f94c638a0b142dfd7642248aaecad0b051 (patch)
treeea423dacaeb908d0e579cbdfef75905f02800ba9 /libs/ardour/playlist.cc
parentb91e1f3605a5845b532a02620e12e3402c4785a5 (diff)
Remove empty MIDI regions which result from recordings made when no MIDI data is received.
git-svn-id: svn://localhost/ardour2/branches/3.0@7167 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/playlist.cc')
-rw-r--r--libs/ardour/playlist.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc
index 7c9ac93c3c..1d506dcee7 100644
--- a/libs/ardour/playlist.cc
+++ b/libs/ardour/playlist.cc
@@ -2939,3 +2939,22 @@ Playlist::has_region_at (framepos_t const p) const
return (i != regions.end());
}
+
+/** Remove any region that uses a given source */
+void
+Playlist::remove_region_by_source (boost::shared_ptr<Source> s)
+{
+ RegionLock rl (this);
+
+ RegionList::iterator i = regions.begin();
+ while (i != regions.end()) {
+ RegionList::iterator j = i;
+ ++j;
+
+ if ((*i)->uses_source (s)) {
+ remove_region_internal (*i);
+ }
+
+ i = j;
+ }
+}