diff options
author | David Robillard <d@drobilla.net> | 2009-10-22 17:17:34 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-10-22 17:17:34 +0000 |
commit | 155338d168b362dd135597695aaa1e419831a277 (patch) | |
tree | c2f97ff4b99366b72418765cb4a69ccbd4c45065 /libs/ardour/lv2_plugin.cc | |
parent | 525da3281674a92ff00150098ef1be7a403555dd (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.cc | 10 |
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; } |