mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 07:14:56 +01:00
do not queue multiple Locate or LocateRoll events
This commit is contained in:
parent
c854dc6c68
commit
9b45e17cc4
1 changed files with 5 additions and 2 deletions
|
|
@ -211,6 +211,11 @@ SessionEventManager::merge_event (SessionEvent* ev)
|
||||||
|
|
||||||
/* try to handle immediate events right here */
|
/* try to handle immediate events right here */
|
||||||
|
|
||||||
|
if (ev->type == SessionEvent::Locate || ev->type == SessionEvent::LocateRoll) {
|
||||||
|
/* remove any existing Locates that are waiting to execute */
|
||||||
|
_clear_event_type (ev->type);
|
||||||
|
}
|
||||||
|
|
||||||
if (ev->action_frame == SessionEvent::Immediate) {
|
if (ev->action_frame == SessionEvent::Immediate) {
|
||||||
process_event (ev);
|
process_event (ev);
|
||||||
return;
|
return;
|
||||||
|
|
@ -222,7 +227,6 @@ SessionEventManager::merge_event (SessionEvent* ev)
|
||||||
case SessionEvent::StopOnce:
|
case SessionEvent::StopOnce:
|
||||||
_clear_event_type (ev->type);
|
_clear_event_type (ev->type);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
for (Events::iterator i = events.begin(); i != events.end(); ++i) {
|
for (Events::iterator i = events.begin(); i != events.end(); ++i) {
|
||||||
if ((*i)->type == ev->type && (*i)->action_frame == ev->action_frame) {
|
if ((*i)->type == ev->type && (*i)->action_frame == ev->action_frame) {
|
||||||
|
|
@ -336,4 +340,3 @@ SessionEventManager::_clear_event_type (SessionEvent::Type type)
|
||||||
|
|
||||||
set_next_event ();
|
set_next_event ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue