mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-12 09:36:33 +01:00
Properly remove-time automation
Previously "remove time" was able to produce overlapping, not ordered automation.
This commit is contained in:
parent
4b9d96ff8e
commit
616f7f40b6
1 changed files with 8 additions and 0 deletions
|
|
@ -990,6 +990,14 @@ ControlList::shift (double pos, double frames)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
Glib::Threads::RWLock::WriterLock lm (_lock);
|
Glib::Threads::RWLock::WriterLock lm (_lock);
|
||||||
|
if (frames < 0) {
|
||||||
|
/* Route::shift () with negative shift is used
|
||||||
|
* for "remove time". The time [pos.. pos-frames] is removed.
|
||||||
|
* and everyhing after, moved backwards.
|
||||||
|
* TODO: consider adding guard-points (need special-casing)
|
||||||
|
*/
|
||||||
|
erase_range_internal (pos, pos - frames, _events);
|
||||||
|
}
|
||||||
|
|
||||||
for (iterator i = _events.begin(); i != _events.end(); ++i) {
|
for (iterator i = _events.begin(); i != _events.end(); ++i) {
|
||||||
if ((*i)->when >= pos) {
|
if ((*i)->when >= pos) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue