diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2007-05-21 22:12:06 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2007-05-21 22:12:06 +0000 |
commit | 48d078b97554dbc0cf8423d42c306f7b1330bff5 (patch) | |
tree | 8bb54c90b9a2adfded36eb78637cac12d33a9fc3 /libs/ardour/playlist.cc | |
parent | b99c6c6e1d5a2f8f653f64e1ee3788f77a11a120 (diff) |
virtualize audioregion, make crossfade IS-A audioregion
git-svn-id: svn://localhost/ardour2/trunk@1889 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/playlist.cc')
-rw-r--r-- | libs/ardour/playlist.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc index 306f933f26..92e0503bb4 100644 --- a/libs/ardour/playlist.cc +++ b/libs/ardour/playlist.cc @@ -1598,12 +1598,17 @@ Playlist::relayer () /* we want to go through regions from desired lowest to desired highest layer, which depends on the layer model */ + RegionList copy = regions; + + /* sort according to the model */ + if (Config->get_layer_model() == MoveAddHigher || Config->get_layer_model() == AddHigher) { RegionSortByLastLayerOp cmp; copy.sort (cmp); } + for (RegionList::iterator i = copy.begin(); i != copy.end(); ++i) { /* find the lowest layer that this region can go on */ @@ -1636,7 +1641,7 @@ Playlist::relayer () layers[j].push_back (*i); } - /* set up the layer numbers in the regions */ + /* first pass: set up the layer numbers in the regions */ for (size_t j = 0; j < layers.size(); ++j) { for (RegionList::iterator i = layers[j].begin(); i != layers[j].end(); ++i) { (*i)->set_layer (j); |