summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/events/LoadPluginsEvent.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2006-09-09 14:24:56 +0000
committerDavid Robillard <d@drobilla.net>2006-09-09 14:24:56 +0000
commitfca95e5d454d37bd74b98f5bce35cfcbaee86c3f (patch)
tree97fcf6e8afaf4356d46a24236e9aa2451ab55698 /src/libs/engine/events/LoadPluginsEvent.cpp
parentb853b3dde1f7028dd275f78433a6ad9b5b9f61c7 (diff)
downloadingen-fca95e5d454d37bd74b98f5bce35cfcbaee86c3f.tar.gz
ingen-fca95e5d454d37bd74b98f5bce35cfcbaee86c3f.tar.bz2
ingen-fca95e5d454d37bd74b98f5bce35cfcbaee86c3f.zip
Drove 'er home! Working monolothic Ingenuity (ie. in-process engine).
Countless bugfixes. git-svn-id: http://svn.drobilla.net/lad/ingen@123 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/events/LoadPluginsEvent.cpp')
-rw-r--r--src/libs/engine/events/LoadPluginsEvent.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/libs/engine/events/LoadPluginsEvent.cpp b/src/libs/engine/events/LoadPluginsEvent.cpp
index 6962387b..daf61378 100644
--- a/src/libs/engine/events/LoadPluginsEvent.cpp
+++ b/src/libs/engine/events/LoadPluginsEvent.cpp
@@ -18,6 +18,7 @@
#include "Responder.h"
#include "Engine.h"
#include "NodeFactory.h"
+#include "ClientBroadcaster.h"
#include <iostream>
using std::cerr;
@@ -28,10 +29,22 @@ namespace Ingen {
LoadPluginsEvent::LoadPluginsEvent(Engine& engine, CountedPtr<Responder> responder, SampleCount timestamp)
: QueuedEvent(engine, responder, timestamp)
{
- cerr << "LOADING PLUGINS\n";
- _engine.node_factory()->load_plugins();
}
+void
+LoadPluginsEvent::pre_process()
+{
+ _engine.node_factory()->load_plugins();
+
+ // FIXME: send the changes (added and removed plugins) instead of the entire list each time
+
+ // Take a copy to send in the post processing thread (to avoid problems
+ // because std::list isn't thread safe)
+ _plugins = _engine.node_factory()->plugins();
+ cerr << "loaded " << _plugins.size() << "plugins.\n";
+
+ QueuedEvent::pre_process();
+}
void
LoadPluginsEvent::post_process()