+ PluginManager& mgr (PluginManager::instance());
+ PluginInfoList plugs;
+
+ switch (type) {
+ case ARDOUR::LADSPA:
+ plugs = mgr.ladspa_plugin_info();
+ break;
+
+#ifdef LV2_SUPPORT
+ case ARDOUR::LV2:
+ plugs = mgr.lv2_plugin_info();
+ break;
+#endif
+
+#ifdef WINDOWS_VST_SUPPORT
+ case ARDOUR::Windows_VST:
+ plugs = mgr.windows_vst_plugin_info();
+ break;
+#endif
+
+#ifdef LXVST_SUPPORT
+ case ARDOUR::LXVST:
+ plugs = mgr.lxvst_plugin_info();
+ break;
+#endif
+
+#ifdef AUDIOUNIT_SUPPORT
+ case ARDOUR::AudioUnit:
+ plugs = mgr.au_plugin_info();
+ break;
+#endif
+
+ default:
+ return PluginPtr ((Plugin *) 0);
+ }
+
+ PluginInfoList::iterator i;
+
+ for (i = plugs.begin(); i != plugs.end(); ++i) {
+ if (identifier == (*i)->unique_id){
+ return (*i)->load (session);