diff options
author | Sampo Savolainen <v2@iki.fi> | 2006-03-20 22:14:12 +0000 |
---|---|---|
committer | Sampo Savolainen <v2@iki.fi> | 2006-03-20 22:14:12 +0000 |
commit | a873bbb14e5f60afac6a2fb38be447d5b00e1c10 (patch) | |
tree | 7a423435370d991b9989d69890cf239ff9bdd8ea /libs/ardour/audio_playlist.cc | |
parent | 9ae5dfa1cb08736f4ee7a38184db03796986151d (diff) |
Fix for #1179. Crossfades are not lost anymore when regions are split.
git-svn-id: svn://localhost/trunk/ardour2@410 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audio_playlist.cc')
-rw-r--r-- | libs/ardour/audio_playlist.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/libs/ardour/audio_playlist.cc b/libs/ardour/audio_playlist.cc index 0744f9c36a..6f4217c3ec 100644 --- a/libs/ardour/audio_playlist.cc +++ b/libs/ardour/audio_playlist.cc @@ -345,6 +345,27 @@ AudioPlaylist::refresh_dependents (Region& r) } void +AudioPlaylist::finalize_split_region (Region *o, Region *l, Region *r) +{ + AudioRegion *orig = dynamic_cast<AudioRegion*>(o); + AudioRegion *left = dynamic_cast<AudioRegion*>(l); + AudioRegion *right = dynamic_cast<AudioRegion*>(r); + + for (Crossfades::iterator x = _crossfades.begin(); x != _crossfades.end(); ++x) { + Crossfades::iterator tmp; + + if ((*x)->_in == orig) { + (*x)->_in = left; + } + + if ((*x)->_out == orig) { + (*x)->_out = right; + } + + } +} + +void AudioPlaylist::check_dependents (Region& r, bool norefresh) { AudioRegion* other; |