projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add to LUA API (new Stripable API)
[ardour.git]
/
libs
/
ardour
/
session_events.cc
diff --git
a/libs/ardour/session_events.cc
b/libs/ardour/session_events.cc
index 9d11cb0b9194859c9bebbb3fffc954f120339cb6..a14405a9e56feeefd0129cd8570c1a49218b7e05 100644
(file)
--- a/
libs/ardour/session_events.cc
+++ b/
libs/ardour/session_events.cc
@@
-28,7
+28,7
@@
#include "ardour/debug.h"
#include "ardour/session_event.h"
#include "ardour/debug.h"
#include "ardour/session_event.h"
-#include "i18n.h"
+#include "
pbd/
i18n.h"
using namespace std;
using namespace ARDOUR;
using namespace std;
using namespace ARDOUR;
@@
-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) {
process_event (ev);
return;
if (ev->action_frame == SessionEvent::Immediate) {
process_event (ev);
return;
@@
-222,7
+227,6
@@
SessionEventManager::merge_event (SessionEvent* ev)
case SessionEvent::StopOnce:
_clear_event_type (ev->type);
break;
case SessionEvent::StopOnce:
_clear_event_type (ev->type);
break;
-
default:
for (Events::iterator i = events.begin(); i != events.end(); ++i) {
if ((*i)->type == ev->type && (*i)->action_frame == ev->action_frame) {
default:
for (Events::iterator i = events.begin(); i != events.end(); ++i) {
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 ();
}
-