summaryrefslogtreecommitdiffstats
path: root/src/engine/PostProcessor.cpp
diff options
context:
space:
mode:
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 */