diff options
author | Robin Gareus <robin@gareus.org> | 2016-09-16 22:35:27 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-09-16 22:35:27 +0200 |
commit | 140c4bb1158bab6b5fc1cfd894d5a17d87c34fd4 (patch) | |
tree | 5ad38f8ec110b0a97ae3a372c7b5505139e3bc62 | |
parent | 2b8979647b7989b127e0004c2e75cc999d42166d (diff) |
re-do previous commit
* do not include _by_name() API. Port names are locale dependent
* proper whitespace (after comma, before bracket) and styleguide
-rw-r--r-- | libs/ardour/ardour/lua_api.h | 19 | ||||
-rw-r--r-- | libs/ardour/lua_api.cc | 20 | ||||
-rw-r--r-- | libs/ardour/luabindings.cc | 2 |
3 files changed, 41 insertions, 0 deletions
diff --git a/libs/ardour/ardour/lua_api.h b/libs/ardour/ardour/lua_api.h index f737eddc4b..bfe2e16283 100644 --- a/libs/ardour/ardour/lua_api.h +++ b/libs/ardour/ardour/lua_api.h @@ -82,6 +82,16 @@ namespace ARDOUR { namespace LuaAPI { * @returns true on success, false on error or out-of-bounds value */ bool set_processor_param (boost::shared_ptr<ARDOUR::Processor> proc, uint32_t which, float val); + + /** get a plugin control parameter value + * + * @param proc Plugin-Processor + * @param which control port to set (starting at 0, including ports of type input and output)) + * @param ok boolean variable contains true or false after call returned. to be checked by caller before using value. + * @returns value + */ + float get_processor_param (boost::shared_ptr<Processor> proc, uint32_t which, bool &ok); + /** set a plugin control-input parameter value * * This is a wrapper around set_processor_param which looks up the Processor by plugin-insert. @@ -93,6 +103,15 @@ namespace ARDOUR { namespace LuaAPI { */ bool set_plugin_insert_param (boost::shared_ptr<ARDOUR::PluginInsert> pi, uint32_t which, float val); + /** get a plugin control parameter value + * + * @param proc Plugin-Insert + * @param which control port to query (starting at 0, including ports of type input and output) + * @param ok boolean variable contains true or false after call returned. to be checked by caller before using value. + * @returns value + */ + float get_plugin_insert_param (boost::shared_ptr<ARDOUR::PluginInsert> pi, uint32_t which, bool &ok); + /** * A convenience function to get a Automation Lists and ParamaterDescriptor * for a given plugin control. diff --git a/libs/ardour/lua_api.cc b/libs/ardour/lua_api.cc index 1cf403b8b0..13de1df2ea 100644 --- a/libs/ardour/lua_api.cc +++ b/libs/ardour/lua_api.cc @@ -176,6 +176,17 @@ ARDOUR::LuaAPI::set_plugin_insert_param (boost::shared_ptr<PluginInsert> pi, uin return true; } +float +ARDOUR::LuaAPI::get_plugin_insert_param (boost::shared_ptr<PluginInsert> pi, uint32_t which, bool &ok) +{ + ok=false; + boost::shared_ptr<Plugin> plugin = pi->plugin(); + if (!plugin) { return 0; } + uint32_t controlid = plugin->nth_parameter (which, ok); + if (!ok) { return 0; } + return plugin->get_parameter ( controlid ); +} + bool ARDOUR::LuaAPI::set_processor_param (boost::shared_ptr<Processor> proc, uint32_t which, float val) { @@ -184,6 +195,15 @@ ARDOUR::LuaAPI::set_processor_param (boost::shared_ptr<Processor> proc, uint32_t return set_plugin_insert_param (pi, which, val); } +float +ARDOUR::LuaAPI::get_processor_param (boost::shared_ptr<Processor> proc, uint32_t which, bool &ok) +{ + ok=false; + boost::shared_ptr<PluginInsert> pi = boost::dynamic_pointer_cast<PluginInsert> (proc); + if (!pi) { return false; } + return get_plugin_insert_param (pi, which, ok); +} + int ARDOUR::LuaAPI::plugin_automation (lua_State *L) { diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc index 6bacc9b7ca..096c0647ae 100644 --- a/libs/ardour/luabindings.cc +++ b/libs/ardour/luabindings.cc @@ -1466,6 +1466,8 @@ LuaBindings::common (lua_State* L) .addFunction ("new_plugin", ARDOUR::LuaAPI::new_plugin) .addFunction ("set_processor_param", ARDOUR::LuaAPI::set_processor_param) .addFunction ("set_plugin_insert_param", ARDOUR::LuaAPI::set_plugin_insert_param) + .addRefFunction ("get_processor_param", ARDOUR::LuaAPI::get_processor_param) + .addRefFunction ("get_plugin_insert_param", ARDOUR::LuaAPI::get_plugin_insert_param) .addCFunction ("plugin_automation", ARDOUR::LuaAPI::plugin_automation) .addCFunction ("hsla_to_rgba", ARDOUR::LuaAPI::hsla_to_rgba) .addFunction ("usleep", Glib::usleep) |