summaryrefslogtreecommitdiff
path: root/libs/ardour/playlist.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-05-21 22:12:06 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-05-21 22:12:06 +0000
commit48d078b97554dbc0cf8423d42c306f7b1330bff5 (patch)
tree8bb54c90b9a2adfded36eb78637cac12d33a9fc3 /libs/ardour/playlist.cc
parentb99c6c6e1d5a2f8f653f64e1ee3788f77a11a120 (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.cc7
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);