diff options
author | David Robillard <d@drobilla.net> | 2007-10-11 17:24:49 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-10-11 17:24:49 +0000 |
commit | 5791d19a0f56c65ef7b89da80f4bcc3e1cee0c93 (patch) | |
tree | de0a795658df184d29e4ed795c6b6b15c6e0454d /src/libs/engine/ClientBroadcaster.cpp | |
parent | 058174f81f325521957cc6927667dfcf0d7346b4 (diff) | |
download | ingen-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.cpp | 10 |
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); } |