add API to list Vamp Plugins
authorRobin Gareus <robin@gareus.org>
Wed, 5 Oct 2016 11:23:39 +0000 (13:23 +0200)
committerRobin Gareus <robin@gareus.org>
Wed, 5 Oct 2016 11:23:39 +0000 (13:23 +0200)
libs/ardour/ardour/lua_api.h
libs/ardour/lua_api.cc
libs/ardour/luabindings.cc

index 7735d58d7ca69adc3d09e6f80050b933cc5d6eda..a76a0cfe7803f289f6022b83a7275bbdb0502e1d 100644 (file)
@@ -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.
index 3fc5a5cf8910fd33a3223a2a01601d1f5ba70f95..4607fd1abba418ef15f3d31dfb2ea536a35c0003 100644 (file)
@@ -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)
index 8868e04afd45d36d8eeb3c6ed4e5ca7e3b455c20..6caff05e79216eb309a19d54718595495919344e 100644 (file)
@@ -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)