13
0

Prevent session-range changes to create invalid loop ranges

When a session-range coincides with a loop-range location, moving
the session-range also updates the loop-range.

Keeping session and loop-range in sync can be useful if the whole
session is looped. However markers are treated individually, so
we need prevent invalid ranges.

If session-start and loop-start coincide, but loop-end is before the
end-marker, it is possible to move session-start beyond the loop-end.
This commit is contained in:
Robin Gareus 2022-06-30 00:35:22 +02:00
parent 3bcf75a35a
commit f67e731a7f
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04

View File

@ -6523,7 +6523,7 @@ Session::start_time_changed (samplepos_t old)
Location* l = _locations->auto_loop_location ();
if (l && l->start() == old) {
if (l && l->start() == old && l->end() > s->start()) {
l->set_start (s->start(), true);
}
set_dirty ();
@ -6543,7 +6543,7 @@ Session::end_time_changed (samplepos_t old)
Location* l = _locations->auto_loop_location ();
if (l && l->end() == old) {
if (l && l->end() == old && l->start () < s->end()) {
l->set_end (s->end(), true);
}
set_dirty ();