diff options
author | David Robillard <d@drobilla.net> | 2009-05-12 04:34:08 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-05-12 04:34:08 +0000 |
commit | 0fd55176b99cd6bd3230afdf350687a04702bd92 (patch) | |
tree | 07f8fd4244c415bac532981c6800e0ea9beb0982 /src/engine/PostProcessor.cpp | |
parent | effacccee852f5070c29f214cd2d15ce9aa2e91b (diff) | |
download | ingen-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.cpp | 16 |
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 */ |