From 22f342c8d89d2e865dc0a397c83855ffa9310072 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 5 Oct 2016 13:23:39 +0200 Subject: [PATCH] add API to list Vamp Plugins --- libs/ardour/ardour/lua_api.h | 6 ++++++ libs/ardour/lua_api.cc | 7 +++++++ libs/ardour/luabindings.cc | 1 + 3 files changed, 14 insertions(+) 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 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 +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 ("Vamp") .addConstructor () + .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)