summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-08-24 22:01:26 +0000
committerCarl Hetherington <carl@carlh.net>2009-08-24 22:01:26 +0000
commit42dccb2a65089e006b268f797854f7662ac9746c (patch)
tree7ba3dc6c5c961aab57d23ba7ff5c0ed1eaa86803
parent32dd2a43d803cd0d9603958377cb39f585f14643 (diff)
Freeze the audio playlist after completing the set_state on the parent playlist (rather than before) so that the playlist state gets flushed before we start creating crossfades. Otherwise in some cases expected RegionViews won't exist for crossfades when they are created.
git-svn-id: svn://localhost/ardour2/branches/3.0@5586 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--libs/ardour/audio_playlist.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/libs/ardour/audio_playlist.cc b/libs/ardour/audio_playlist.cc
index 93bdc333f1..d6bd83a478 100644
--- a/libs/ardour/audio_playlist.cc
+++ b/libs/ardour/audio_playlist.cc
@@ -539,7 +539,6 @@ void AudioPlaylist::notify_crossfade_added (boost::shared_ptr<Crossfade> x)
if (g_atomic_int_get(&block_notifications)) {
_pending_xfade_adds.insert (_pending_xfade_adds.end(), x);
} else {
-
NewCrossfade (x); /* EMIT SIGNAL */
}
}
@@ -566,10 +565,11 @@ AudioPlaylist::set_state (const XMLNode& node)
XMLNodeConstIterator niter;
in_set_state++;
- freeze ();
Playlist::set_state (node);
+ freeze ();
+
nlist = node.children();
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {