summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/ClientBroadcaster.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-10-11 17:24:49 +0000
committerDavid Robillard <d@drobilla.net>2007-10-11 17:24:49 +0000
commit5791d19a0f56c65ef7b89da80f4bcc3e1cee0c93 (patch)
treede0a795658df184d29e4ed795c6b6b15c6e0454d /src/libs/engine/ClientBroadcaster.cpp
parent058174f81f325521957cc6927667dfcf0d7346b4 (diff)
downloadingen-5791d19a0f56c65ef7b89da80f4bcc3e1cee0c93.tar.gz
ingen-5791d19a0f56c65ef7b89da80f4bcc3e1cee0c93.tar.bz2
ingen-5791d19a0f56c65ef7b89da80f4bcc3e1cee0c93.zip
Fix awful plugin loading situation.
Don't double-lookup plugins on discovery/load. O(log(n)) plugin searching instead of 2*O(n). Don't keep discovered LADSPA plugins loaded (until a node is instantiated). git-svn-id: http://svn.drobilla.net/lad/ingen@876 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/ClientBroadcaster.cpp')
-rw-r--r--src/libs/engine/ClientBroadcaster.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/libs/engine/ClientBroadcaster.cpp b/src/libs/engine/ClientBroadcaster.cpp
index df8e6c6f..67cf8dd9 100644
--- a/src/libs/engine/ClientBroadcaster.cpp
+++ b/src/libs/engine/ClientBroadcaster.cpp
@@ -100,12 +100,12 @@ ClientBroadcaster::send_error(const string& msg)
}
void
-ClientBroadcaster::send_plugins_to(ClientInterface* client, const list<PluginImpl*>& plugin_list)
+ClientBroadcaster::send_plugins_to(ClientInterface* client, const NodeFactory::Plugins& plugins)
{
client->transfer_begin();
- for (list<PluginImpl*>::const_iterator i = plugin_list.begin(); i != plugin_list.end(); ++i) {
- const PluginImpl* const plugin = *i;
+ for (NodeFactory::Plugins::const_iterator i = plugins.begin(); i != plugins.end(); ++i) {
+ const PluginImpl* const plugin = i->second;
client->new_plugin(plugin->uri(), plugin->type_uri(), plugin->name());
}
@@ -114,10 +114,10 @@ ClientBroadcaster::send_plugins_to(ClientInterface* client, const list<PluginImp
void
-ClientBroadcaster::send_plugins(const list<PluginImpl*>& plugin_list)
+ClientBroadcaster::send_plugins(const NodeFactory::Plugins& plugins)
{
for (Clients::const_iterator c = _clients.begin(); c != _clients.end(); ++c)
- send_plugins_to((*c).second, plugin_list);
+ send_plugins_to((*c).second, plugins);
}