re-do previous commit
authorRobin Gareus <robin@gareus.org>
Fri, 16 Sep 2016 20:35:27 +0000 (22:35 +0200)
committerRobin Gareus <robin@gareus.org>
Fri, 16 Sep 2016 20:35:27 +0000 (22:35 +0200)
* do not include _by_name() API. Port names are locale dependent
* proper whitespace (after comma, before bracket) and styleguide

libs/ardour/ardour/lua_api.h
libs/ardour/lua_api.cc
libs/ardour/luabindings.cc

index f737eddc4bdbd870e4852094b9e11ccdad1e0ffd..bfe2e16283b290ce3f3d0889b7156156dbcbfa55 100644 (file)
@@ -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.
index 1cf403b8b0f04c737cbfe72d75858f640c161852..13de1df2eace2d7239c3db1ec35a5591fb405b1c 100644 (file)
@@ -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)
 {
index 6bacc9b7cacd8ec5fa6d83d06c85ee8e988ab9b7..096c0647aeaaee49428fe141b6ec68565477e98f 100644 (file)
@@ -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)