summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-09-16 22:35:27 +0200
committerRobin Gareus <robin@gareus.org>2016-09-16 22:35:27 +0200
commit140c4bb1158bab6b5fc1cfd894d5a17d87c34fd4 (patch)
tree5ad38f8ec110b0a97ae3a372c7b5505139e3bc62
parent2b8979647b7989b127e0004c2e75cc999d42166d (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.h19
-rw-r--r--libs/ardour/lua_api.cc20
-rw-r--r--libs/ardour/luabindings.cc2
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)