diff options
Diffstat (limited to 'libs/ardour/audio_playlist.cc')
-rw-r--r-- | libs/ardour/audio_playlist.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libs/ardour/audio_playlist.cc b/libs/ardour/audio_playlist.cc index c883856cf8..9c331af610 100644 --- a/libs/ardour/audio_playlist.cc +++ b/libs/ardour/audio_playlist.cc @@ -525,6 +525,15 @@ AudioPlaylist::set_state (const XMLNode& node) try { boost::shared_ptr<Crossfade> xfade = boost::shared_ptr<Crossfade> (new Crossfade (*((const Playlist *)this), *child)); _crossfades.push_back (xfade); + + /* we should not need to do this here, since all values were set via XML. however + some older sessions may have bugs and this allows us to fix them. + */ + + xfade->update (); + + /* we care about these signals ... */ + xfade->Invalidated.connect (mem_fun (*this, &AudioPlaylist::crossfade_invalidated)); xfade->StateChanged.connect (mem_fun (*this, &AudioPlaylist::crossfade_changed)); NewCrossfade(xfade); |