#include <ardour/plugin.h>
#include <ardour/ladspa_plugin.h>
+#ifdef HAVE_SLV2
+#include <slv2/slv2.h>
+#include <ardour/lv2_plugin.h>
+#endif
+
#ifdef VST_SUPPORT
#include <ardour/vst_plugin.h>
#endif
ladspa_plugin_whitelist.push_back (2150); // tap pitch shifter
}
+ _lv2_world = slv2_world_new();
+ slv2_world_load_all(_lv2_world);
+
refresh ();
}
PluginManager::refresh ()
{
ladspa_refresh ();
+#ifdef HAVE_SLV2
+ lv2_refresh ();
+#endif
#ifdef VST_SUPPORT
if (Config->get_use_vst()) {
vst_refresh ();
info->type = ARDOUR::LADSPA;
char buf[32];
- snprintf (buf, sizeof (buf), "%u", descriptor->UniqueID);
+ snprintf (buf, sizeof (buf), "%lu", descriptor->UniqueID);
info->unique_id = buf;
for (uint32_t n=0; n < descriptor->PortCount; ++n) {
snprintf(buf, sizeof(buf), "%s%" PRIu32, LADSPA_BASE, plugin_id);
pattern.subject = buf;
- pattern.predicate = RDF_TYPE;
+ pattern.predicate = (char*)RDF_TYPE;
pattern.object = 0;
pattern.object_type = lrdf_uri;
lrdf_statement* matches1 = lrdf_matches (&pattern);
if (!matches1) {
- return _("");
+ return "";
}
pattern.subject = matches1->object;
- pattern.predicate = LADSPA_BASE "hasLabel";
+ pattern.predicate = (char*)(LADSPA_BASE "hasLabel");
pattern.object = 0;
pattern.object_type = lrdf_literal;
lrdf_free_statements(matches1);
if (!matches2) {
- return _("");
+ return ("");
}
string label = matches2->object;
return label;
}
+#ifdef HAVE_SLV2
+void
+PluginManager::lv2_refresh ()
+{
+ lv2_discover();
+}
+
+int
+PluginManager::lv2_discover ()
+{
+ _lv2_plugin_info = LV2PluginInfo::discover(_lv2_world);
+ return 0;
+}
+#endif
+
#ifdef HAVE_AUDIOUNITS
void
PluginManager::au_refresh ()
}
- snprintf (buf, sizeof (buf), "%d", finfo->uniqueID);
- info->uniqueID = buf;
+ snprintf (buf, sizeof (buf), "%d", finfo->UniqueID);
+ info->unique_id = buf;
info->category = "VST";
info->path = path;
// need to set info->creator but FST doesn't provide it