summaryrefslogtreecommitdiff
path: root/libs/ardour/audio_playlist.cc
diff options
context:
space:
mode:
authorNick Mainsbridge <beatroute@iprimus.com.au>2006-11-30 14:21:02 +0000
committerNick Mainsbridge <beatroute@iprimus.com.au>2006-11-30 14:21:02 +0000
commit9cca1464a8b031cfb26e541b6ca2d242e3df7c81 (patch)
tree65d614645ba85a596bd11296a1cf9c732b3ff9bf /libs/ardour/audio_playlist.cc
parente002eea388f9850cc5d416c70a87ffae1929b1f7 (diff)
always check_dependents() after a relayer() (useful for LaterHigher model), don't create end crossfades for external overlaps unless they are at the top layer
git-svn-id: svn://localhost/ardour2/trunk@1172 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audio_playlist.cc')
-rw-r--r--libs/ardour/audio_playlist.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/libs/ardour/audio_playlist.cc b/libs/ardour/audio_playlist.cc
index 5118aab684..dd0f313fc4 100644
--- a/libs/ardour/audio_playlist.cc
+++ b/libs/ardour/audio_playlist.cc
@@ -425,8 +425,15 @@ AudioPlaylist::check_dependents (boost::shared_ptr<Region> r, bool norefresh)
/* in, out */
xfade = new Crossfade (top, bottom, xfade_length, top->first_frame(), StartOfIn);
add_crossfade (*xfade);
- xfade = new Crossfade (bottom, top, xfade_length, top->last_frame() - xfade_length, EndOfOut);
- add_crossfade (*xfade);
+
+ if (top_region_at (top->last_frame() - 1) == top) {
+ /*
+ only add a fade out if there is no region on top of the end of 'top' (which
+ would cover it).
+ */
+ xfade = new Crossfade (bottom, top, xfade_length, top->last_frame() - xfade_length, EndOfOut);
+ add_crossfade (*xfade);
+ }
} else {