summaryrefslogtreecommitdiffstats
path: root/src/server/PostProcessor.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-09-15 07:17:10 +0000
committerDavid Robillard <d@drobilla.net>2011-09-15 07:17:10 +0000
commitc7f671ff5bf9cf2559697bbc90cf3cee97cc7975 (patch)
treec9448a87cce9bfc957d32bc3b1b404cb7f0c6984 /src/server/PostProcessor.cpp
parentba99f4ca92ea2e6cf8de51341489b0689223e1fc (diff)
downloadingen-c7f671ff5bf9cf2559697bbc90cf3cee97cc7975.tar.gz
ingen-c7f671ff5bf9cf2559697bbc90cf3cee97cc7975.tar.bz2
ingen-c7f671ff5bf9cf2559697bbc90cf3cee97cc7975.zip
Fix control bindings (MIDI learn).
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3464 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/PostProcessor.cpp')
-rw-r--r--src/server/PostProcessor.cpp19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/server/PostProcessor.cpp b/src/server/PostProcessor.cpp
index 2dd9666b..5a54d728 100644
--- a/src/server/PostProcessor.cpp
+++ b/src/server/PostProcessor.cpp
@@ -71,18 +71,13 @@ PostProcessor::process()
/* FIXME: process events from all threads if parallel */
/* Process audio thread generated events */
- while (true) {
- Driver* driver = _engine.driver();
- Notification note;
- if (driver && driver->context().event_sink().peek(sizeof(note), &note)) {
- if (note.time > end_time) {
- break;
- }
-
- note.post_process(_engine);
- driver->context().event_sink().skip(sizeof(note));
- } else {
- break;
+ Driver* driver = _engine.driver();
+ if (driver) {
+ Notification note;
+ const uint32_t read_space = driver->context().event_sink().read_space();
+ for (uint32_t i = 0; i <= read_space; i += sizeof(note)) {
+ driver->context().event_sink().read(sizeof(note), &note);
+ Notification::post_process(note, _engine);
}
}