summaryrefslogtreecommitdiffstats
path: root/src/engine/PostProcessor.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-05-12 04:34:08 +0000
committerDavid Robillard <d@drobilla.net>2009-05-12 04:34:08 +0000
commit0fd55176b99cd6bd3230afdf350687a04702bd92 (patch)
tree07f8fd4244c415bac532981c6800e0ea9beb0982 /src/engine/PostProcessor.cpp
parenteffacccee852f5070c29f214cd2d15ce9aa2e91b (diff)
downloadingen-0fd55176b99cd6bd3230afdf350687a04702bd92.tar.gz
ingen-0fd55176b99cd6bd3230afdf350687a04702bd92.tar.bz2
ingen-0fd55176b99cd6bd3230afdf350687a04702bd92.zip
Detach/Reattach from/to Jack from UI (ticket #180).
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@1985 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/PostProcessor.cpp')
-rw-r--r--src/engine/PostProcessor.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/engine/PostProcessor.cpp b/src/engine/PostProcessor.cpp
index b90f7ddc..1595ac38 100644
--- a/src/engine/PostProcessor.cpp
+++ b/src/engine/PostProcessor.cpp
@@ -55,14 +55,18 @@ PostProcessor::process()
/* FIXME: process events from all threads if parallel */
/* Process audio thread generated events */
- while (_engine.audio_driver()->context().event_sink().read(
- _event_buffer_size, _event_buffer)) {
- if (((Event*)_event_buffer)->time() > end_time) {
- cerr << "WARNING: Lost event with time "
- << ((Event*)_event_buffer)->time() << " > " << end_time << endl;
+ while (true) {
+ AudioDriver* driver = _engine.audio_driver();
+ if (driver && driver->context().event_sink().read(_event_buffer_size, _event_buffer)) {
+ if (((Event*)_event_buffer)->time() > end_time) {
+ cerr << "WARNING: Lost event with time "
+ << ((Event*)_event_buffer)->time() << " > " << end_time << endl;
+ break;
+ }
+ ((Event*)_event_buffer)->post_process();
+ } else {
break;
}
- ((Event*)_event_buffer)->post_process();
}
/* Process normal events */