From 3208535c20b5ec1fc0ef4c2b65111e5a274d7e0a Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 12 Dec 2019 20:34:50 +0100 Subject: [PATCH] Add method to look up Lua script by name --- libs/ardour/ardour/luascripting.h | 2 ++ libs/ardour/luascripting.cc | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/libs/ardour/ardour/luascripting.h b/libs/ardour/ardour/luascripting.h index 76c49c1788..283c68df8d 100644 --- a/libs/ardour/ardour/luascripting.h +++ b/libs/ardour/ardour/luascripting.h @@ -117,6 +117,8 @@ public: void refresh (bool run_scan = false); PBD::Signal0 scripts_changed; + LuaScriptInfoPtr by_name (const std::string&, LuaScriptInfo::ScriptType); + static LuaScriptInfoPtr script_info (const std::string &script); static bool try_compile (const std::string&, const LuaScriptParamList&); static std::string get_factory_bytecode (const std::string&, const std::string& ffn = "factory", const std::string& fp = "f"); diff --git a/libs/ardour/luascripting.cc b/libs/ardour/luascripting.cc index 3f1ec81e42..c1bd777f0f 100644 --- a/libs/ardour/luascripting.cc +++ b/libs/ardour/luascripting.cc @@ -337,6 +337,18 @@ LuaScripting::scripts (LuaScriptInfo::ScriptType type) { return _empty_script_info; // make some compilers happy } +LuaScriptInfoPtr +LuaScripting::by_name (const std::string& name, LuaScriptInfo::ScriptType type) +{ + LuaScriptList lsl (scripts (type)); + printf ("CHECKING %d scripts\n", lsl.size()); + for (LuaScriptList::const_iterator s = lsl.begin(); s != lsl.end(); ++s) { + if ((*s)->name == name) { + return (*s); + } + } + return LuaScriptInfoPtr(); +} std::string LuaScriptInfo::type2str (const ScriptType t) {