diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2007-01-14 01:25:12 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2007-01-14 01:25:12 +0000 |
commit | 56cd926425310e5534f4a6864b296101ad0477c6 (patch) | |
tree | 1924efbcc8eeba6db2f6c9fdc821ca2afac5502f /libs/ardour/audio_playlist.cc | |
parent | a7a6f464adadb756362b2679121477dc442da5c4 (diff) |
mo' better fixins fer xfades, plus reinstate hiding xfades during drags
git-svn-id: svn://localhost/ardour2/trunk@1325 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audio_playlist.cc')
-rw-r--r-- | libs/ardour/audio_playlist.cc | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/libs/ardour/audio_playlist.cc b/libs/ardour/audio_playlist.cc index f3e71d320b..eefbeb7889 100644 --- a/libs/ardour/audio_playlist.cc +++ b/libs/ardour/audio_playlist.cc @@ -274,9 +274,14 @@ AudioPlaylist::refresh_dependents (boost::shared_ptr<Region> r) if ((*x)->involves (ar)) { if (find (updated.begin(), updated.end(), *x) == updated.end()) { - if ((*x)->refresh ()) { - /* not invalidated by the refresh */ - updated.insert (*x); + try { + if ((*x)->refresh ()) { + updated.insert (*x); + } + } + + catch (Crossfade::NoCrossfadeHere& err) { + // relax, Invalidated during refresh } } } @@ -348,6 +353,7 @@ AudioPlaylist::check_dependents (boost::shared_ptr<Region> r, bool norefresh) refresh_dependents (r); } + if (!Config->get_auto_xfade()) { return; } @@ -405,7 +411,6 @@ AudioPlaylist::check_dependents (boost::shared_ptr<Region> r, bool norefresh) xfade_length = min ((nframes_t) 720, top->length()); xfade = boost::shared_ptr<Crossfade> (new Crossfade (top, bottom, xfade_length, top->first_frame(), StartOfIn)); - cerr << "StartOfIn is " << xfade << endl; add_crossfade (xfade); if (top_region_at (top->last_frame() - 1) == top) { @@ -415,7 +420,6 @@ AudioPlaylist::check_dependents (boost::shared_ptr<Region> r, bool norefresh) */ xfade = boost::shared_ptr<Crossfade> (new Crossfade (bottom, top, xfade_length, top->last_frame() - xfade_length, EndOfOut)); - cerr << "EndofOut is " << xfade << endl; add_crossfade (xfade); } break; |