From c6be9b688802198e04a07dc902c49d1d6b66340e Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 26 Aug 2009 02:19:36 +0000 Subject: Make stacked region coverage frames correctly respect regions being muted. git-svn-id: svn://localhost/ardour2/branches/3.0@5595 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/playlist.cc | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'libs/ardour/playlist.cc') diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc index f74eb1001f..94e6e421bd 100644 --- a/libs/ardour/playlist.cc +++ b/libs/ardour/playlist.cc @@ -1418,7 +1418,38 @@ Playlist::top_region_at (nframes_t frame) delete rlist; return region; -} +} + +boost::shared_ptr +Playlist::top_unmuted_region_at (nframes_t frame) + +{ + RegionLock rlock (this); + RegionList *rlist = find_regions_at (frame); + + for (RegionList::iterator i = rlist->begin(); i != rlist->end(); ) { + + RegionList::iterator tmp = i; + ++tmp; + + if ((*i)->muted()) { + rlist->erase (i); + } + + i = tmp; + } + + boost::shared_ptr region; + + if (rlist->size()) { + RegionSortByLayer cmp; + rlist->sort (cmp); + region = rlist->back(); + } + + delete rlist; + return region; +} Playlist::RegionList* Playlist::regions_to_read (nframes_t start, nframes_t end) -- cgit v1.2.3