summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-10-05 13:23:39 +0200
committerRobin Gareus <robin@gareus.org>2016-10-05 13:23:39 +0200
commit22f342c8d89d2e865dc0a397c83855ffa9310072 (patch)
treec988e15afa5583b1d754817c319b17407b4bff7e
parent44b41e3058437928a83530c5e6120b87a4865387 (diff)
add API to list Vamp Plugins
-rw-r--r--libs/ardour/ardour/lua_api.h6
-rw-r--r--libs/ardour/lua_api.cc7
-rw-r--r--libs/ardour/luabindings.cc1
3 files changed, 14 insertions, 0 deletions
diff --git a/libs/ardour/ardour/lua_api.h b/libs/ardour/ardour/lua_api.h
index 7735d58d7c..a76a0cfe78 100644
--- a/libs/ardour/ardour/lua_api.h
+++ b/libs/ardour/ardour/lua_api.h
@@ -176,6 +176,12 @@ namespace ARDOUR { namespace LuaAPI {
public:
Vamp (const std::string&, float sample_rate);
~Vamp ();
+
+ /** Search for all available available Vamp plugins.
+ * @returns list of plugin-keys
+ */
+ static std::vector<std::string> list_plugins ();
+
::Vamp::Plugin* plugin () { return _plugin; }
/** high-level abstraction to process a single channel of the given Readable.
diff --git a/libs/ardour/lua_api.cc b/libs/ardour/lua_api.cc
index 3fc5a5cf89..4607fd1abb 100644
--- a/libs/ardour/lua_api.cc
+++ b/libs/ardour/lua_api.cc
@@ -539,6 +539,13 @@ void LuaTableRef::assign (luabridge::LuaRef* rv, T key, const LuaTableEntry& s)
}
}
+std::vector<std::string>
+LuaAPI::Vamp::list_plugins ()
+{
+ using namespace ::Vamp::HostExt;
+ PluginLoader* loader (PluginLoader::getInstance());
+ return loader->listPlugins ();
+}
LuaAPI::Vamp::Vamp (const std::string& key, float sample_rate)
: _plugin (0)
diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc
index 8868e04afd..6caff05e79 100644
--- a/libs/ardour/luabindings.cc
+++ b/libs/ardour/luabindings.cc
@@ -1615,6 +1615,7 @@ LuaBindings::common (lua_State* L)
.beginClass <ARDOUR::LuaAPI::Vamp> ("Vamp")
.addConstructor <void (*) (const std::string&, float)> ()
+ .addStaticFunction ("list_plugins", &ARDOUR::LuaAPI::Vamp::list_plugins)
.addFunction ("plugin", &ARDOUR::LuaAPI::Vamp::plugin)
.addFunction ("analyze", &ARDOUR::LuaAPI::Vamp::analyze)
.addFunction ("reset", &ARDOUR::LuaAPI::Vamp::reset)