diff options
author | nick_m <mainsbridge@gmail.com> | 2016-04-13 05:38:31 +1000 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2016-05-27 23:38:14 +1000 |
commit | 4f7a4cd23331d64acfabc52e978dcb3dde2e82ec (patch) | |
tree | 4bad0d36962295a4e69221f5cf9c2d562d306550 /libs/ardour/playlist.cc | |
parent | c6d9d8193b4258c75c0dee09fb3b067334a88402 (diff) |
Crapola - this is an experimental performance hack that must be reverted.
Diffstat (limited to 'libs/ardour/playlist.cc')
-rw-r--r-- | libs/ardour/playlist.cc | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc index 3301fe9f9e..2e96dee063 100644 --- a/libs/ardour/playlist.cc +++ b/libs/ardour/playlist.cc @@ -1822,6 +1822,7 @@ Playlist::regions_at (framepos_t frame) for (RegionList::iterator i = rlist->begin(); i != rlist->end(); ) { RegionList::iterator tmp = i; + ++tmp; if ((*i)->muted()) { @@ -2047,23 +2048,25 @@ Playlist::find_next_region (framepos_t frame, RegionPoint point, int dir) boost::shared_ptr<Region> r = (*i); frameoffset_t distance; + const framepos_t first_frame = r->first_frame(); + const framepos_t last_frame = r->last_frame(); - if (r->first_frame() > frame) { + if (first_frame > frame) { - distance = r->first_frame() - frame; + distance = first_frame - frame; if (distance < closest) { - ret = r->first_frame(); + ret = first_frame; closest = distance; } } - if (r->last_frame () > frame) { + if (last_frame > frame) { - distance = r->last_frame () - frame; + distance = last_frame - frame; if (distance < closest) { - ret = r->last_frame (); + ret = last_frame; closest = distance; } } @@ -2075,23 +2078,25 @@ Playlist::find_next_region (framepos_t frame, RegionPoint point, int dir) boost::shared_ptr<Region> r = (*i); frameoffset_t distance; + const framepos_t first_frame = r->first_frame(); + const framepos_t last_frame = r->last_frame(); - if (r->last_frame() < frame) { + if (last_frame < frame) { - distance = frame - r->last_frame(); + distance = frame - last_frame; if (distance < closest) { - ret = r->last_frame(); + ret = last_frame; closest = distance; } } - if (r->first_frame() < frame) { + if (first_frame < frame) { - distance = frame - r->first_frame(); + distance = frame - first_frame; if (distance < closest) { - ret = r->first_frame(); + ret = first_frame; closest = distance; } } @@ -2899,6 +2904,7 @@ Playlist::update_after_tempo_map_change () } thaw (); + notify_contents_changed(); } void |