UI part of lua code/header consolidation.
authorRobin Gareus <robin@gareus.org>
Wed, 23 Mar 2016 12:49:25 +0000 (13:49 +0100)
committerRobin Gareus <robin@gareus.org>
Wed, 23 Mar 2016 16:00:10 +0000 (17:00 +0100)
gtk2_ardour/ardour_ui.cc
gtk2_ardour/luainstance.cc
gtk2_ardour/luainstance.h

index e1bcd06b7c48817e8916f6c297fc49dcfdc2d988..9c7a4a30dc8fcc9b69ede28f4469a7574bd31824 100644 (file)
@@ -4000,7 +4000,7 @@ ARDOUR_UI::add_lua_script ()
                return;
        }
 
-       LuaScriptParamList lsp = LuaScripting::session_script_params (spi);
+       LuaScriptParamList lsp = LuaScriptParams::script_params (spi, "sess_params");
        std::vector<std::string> reg = _session->registered_lua_functions ();
 
        ScriptParameterDialog spd (_("Set Script Parameters"), spi, reg, lsp);
index 0632199c08592497e5f5f64dc62e772f2743c91d..41d81654bcdd9d52dd73ae98134f5cfe74326e1a 100644 (file)
@@ -677,7 +677,7 @@ LuaInstance::interactive_add (LuaScriptInfo::ScriptType type, int id)
                return false;
        }
 
-       LuaScriptParamList lsp = LuaScripting::script_params (spi, "action_params");
+       LuaScriptParamList lsp = LuaScriptParams::script_params (spi, "action_params");
 
        ScriptParameterDialog spd (_("Set Script Parameters"), spi, reg, lsp);
        switch (spd.run ()) {
@@ -839,18 +839,9 @@ LuaInstance::lua_action (const int id, std::string& name, std::string& script, L
                if (!lsi) {
                        return false;
                }
-               args = LuaScripting::script_params (lsi, "action_params");
-               for (luabridge::Iterator i (static_cast<luabridge::LuaRef>(ref["args"])); !i.isNil (); ++i) {
-                       if (!i.key ().isString ()) { assert(0); continue; }
-                       std::string name = i.key ().cast<std::string> ();
-                       std::string value = i.value ().cast<std::string> ();
-                       for (LuaScriptParamList::const_iterator ii = args.begin(); ii != args.end(); ++ii) {
-                               if ((*ii)->name == name) {
-                                       (*ii)->value = value;
-                                       break;
-                               }
-                       }
-               }
+               args = LuaScriptParams::script_params (lsi, "action_params");
+               luabridge::LuaRef rargs (ref["args"]);
+               LuaScriptParams::ref_to_params (args, &rargs);
                return true;
        } catch (luabridge::LuaException const& e) {
                cerr << "LuaException:" << e.what () << endl;
@@ -1216,18 +1207,9 @@ LuaCallback::lua_slot (std::string& name, std::string& script, ActionHook& ah, A
                if (!lsi) {
                        return false;
                }
-               args = LuaScripting::script_params (lsi, "action_params");
-               for (luabridge::Iterator i (static_cast<luabridge::LuaRef>(ref["args"])); !i.isNil (); ++i) {
-                       if (!i.key ().isString ()) { assert(0); continue; }
-                       std::string name = i.key ().cast<std::string> ();
-                       std::string value = i.value ().cast<std::string> ();
-                       for (LuaScriptParamList::const_iterator ii = args.begin(); ii != args.end(); ++ii) {
-                               if ((*ii)->name == name) {
-                                       (*ii)->value = value;
-                                       break;
-                               }
-                       }
-               }
+               args = LuaScriptParams::script_params (lsi, "action_params");
+               luabridge::LuaRef rargs (ref["args"]);
+               LuaScriptParams::ref_to_params (args, &rargs);
                return true;
        } catch (luabridge::LuaException const& e) {
                cerr << "LuaException:" << e.what () << endl;
index 9fb11c5d940cc21ee008e68909d98bcc7064112a..71c29741fa7ad773fb4314999069ece0a7b5b059 100644 (file)
@@ -8,6 +8,7 @@
 #include "pbd/xml++.h"
 
 #include "ardour/luascripting.h"
+#include "ardour/lua_script_params.h"
 #include "ardour/luabindings.h"
 #include "ardour/session_handle.h"