13
0

Fix playhead moving beyond loop range

When some other transport related session event (anything that
requires non_realtime_work_pending, e.g. PostTransportOverWrite)
coincides with SessionEvent::AutoLoop, the auto-loop event
was removed from the main event queue and executed as one-shot
immediate event.

While looping the AutoLoop event needs to remain on the main
event queue.
This commit is contained in:
Robin Gareus 2024-09-26 16:25:39 +02:00
parent dc92ed1bc9
commit 6cc54aa1b0
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04

View File

@ -911,7 +911,8 @@ Session::process_event (SessionEvent* ev)
/* except locates, which we have the capability to handle */
if (ev->type != SessionEvent::Locate) {
if (ev->type != SessionEvent::Locate && ev->type != SessionEvent::AutoLoop) {
DEBUG_TRACE (DEBUG::SessionEvents, string_compose ("Postponing and moving event to immediate queue: %1 @ %2\n", enum_2_string (ev->type), _transport_sample));
immediate_events.insert (immediate_events.end(), ev);
_remove_event (ev);
return;