summaryrefslogtreecommitdiff
path: root/libs/ardour/lv2_plugin.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-10-22 17:17:34 +0000
committerDavid Robillard <d@drobilla.net>2009-10-22 17:17:34 +0000
commit155338d168b362dd135597695aaa1e419831a277 (patch)
treec2f97ff4b99366b72418765cb4a69ccbd4c45065 /libs/ardour/lv2_plugin.cc
parent525da3281674a92ff00150098ef1be7a403555dd (diff)
Defer plugin discovery until actually needed (significant startup time improvement, especially with LV2).
git-svn-id: svn://localhost/ardour2/branches/3.0@5859 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/lv2_plugin.cc')
-rw-r--r--libs/ardour/lv2_plugin.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc
index 678dfd4715..2090d18e96 100644
--- a/libs/ardour/lv2_plugin.cc
+++ b/libs/ardour/lv2_plugin.cc
@@ -703,15 +703,15 @@ LV2PluginInfo::load (Session& session)
return PluginPtr();
}
-PluginInfoList
+PluginInfoList*
LV2PluginInfo::discover (void* lv2_world)
{
- PluginInfoList plugs;
+ PluginInfoList* plugs = new PluginInfoList;
LV2World* world = (LV2World*)lv2_world;
SLV2Plugins plugins = slv2_world_get_all_plugins(world->world);
- cerr << "LV2: Discovered " << slv2_plugins_size (plugins) << " plugins\n";
+ cerr << "LV2: Discovering " << slv2_plugins_size (plugins) << " plugins" << endl;
for (unsigned i=0; i < slv2_plugins_size(plugins); ++i) {
SLV2Plugin p = slv2_plugins_get_at(plugins, i);
@@ -750,9 +750,11 @@ LV2PluginInfo::discover (void* lv2_world)
info->unique_id = slv2_value_as_uri(slv2_plugin_get_uri(p));
info->index = 0; // Meaningless for LV2
- plugs.push_back (info);
+ plugs->push_back (info);
}
+ cerr << "Done LV2 discovery" << endl;
+
return plugs;
}