summaryrefslogtreecommitdiff
path: root/libs/ardour/audio_playlist.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-01-14 01:25:12 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-01-14 01:25:12 +0000
commit56cd926425310e5534f4a6864b296101ad0477c6 (patch)
tree1924efbcc8eeba6db2f6c9fdc821ca2afac5502f /libs/ardour/audio_playlist.cc
parenta7a6f464adadb756362b2679121477dc442da5c4 (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.cc14
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;