summaryrefslogtreecommitdiffstats
path: root/src/engine/EventSource.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2010-03-06 21:15:14 +0000
committerDavid Robillard <d@drobilla.net>2010-03-06 21:15:14 +0000
commit32ed8eb92f194d0cce1b0617d0686147d4be09c0 (patch)
treeaecbd03f668bf87a8863cd441ddeecf298dbc02b /src/engine/EventSource.cpp
parent2bfa0960c87e569d4efdb5bd7db896b2dfdb9e8b (diff)
downloadingen-32ed8eb92f194d0cce1b0617d0686147d4be09c0.tar.gz
ingen-32ed8eb92f194d0cce1b0617d0686147d4be09c0.tar.bz2
ingen-32ed8eb92f194d0cce1b0617d0686147d4be09c0.zip
Fully load patch in LV2 instantiate method.
Actually connect to LV2 buffers. Ingen confirmed working as an LV2 plugin doing audio I/O in lv2_jack_host and Ardour. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2536 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/EventSource.cpp')
-rw-r--r--src/engine/EventSource.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/engine/EventSource.cpp b/src/engine/EventSource.cpp
index 9e1f2741..271bb0a1 100644
--- a/src/engine/EventSource.cpp
+++ b/src/engine/EventSource.cpp
@@ -61,7 +61,7 @@ EventSource::push_queued(QueuedEvent* const ev)
* Executed events will be pushed to @a dest.
*/
void
-EventSource::process(PostProcessor& dest, ProcessContext& context)
+EventSource::process(PostProcessor& dest, ProcessContext& context, bool limit)
{
ThreadManager::assert_thread(THREAD_PROCESS);
@@ -82,7 +82,8 @@ EventSource::process(PostProcessor& dest, ProcessContext& context)
while (ev && ev->is_prepared() && ev->time() < context.end()) {
ev->execute(context);
new_head = new_head->next();
- if (++num_events_processed > MAX_QUEUED_EVENTS)
+ ++num_events_processed;
+ if (limit && num_events_processed > MAX_QUEUED_EVENTS)
break;
ev = (new_head ? (QueuedEvent*)new_head->elem() : NULL);
}
@@ -105,8 +106,6 @@ EventSource::_whipped()
QueuedEvent* const ev = (QueuedEvent*)pb->elem();
assert(ev);
- if (!ev)
- return;
assert(!ev->is_prepared());
ev->pre_process();