From d226b63e707f574d8348b27de8c8dec163ab5197 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 12 Dec 2019 20:35:14 +0100 Subject: Pre-seed Lua action-buttons --- gtk2_ardour/luainstance.cc | 19 +++++++++++++++++++ gtk2_ardour/luainstance.h | 1 + 2 files changed, 20 insertions(+) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/luainstance.cc b/gtk2_ardour/luainstance.cc index f1da28c826..f4b68423b6 100644 --- a/gtk2_ardour/luainstance.cc +++ b/gtk2_ardour/luainstance.cc @@ -1320,6 +1320,7 @@ LuaInstance::load_state () { std::string uiscripts; if (!find_file (ardour_config_search_path(), ui_scripts_file_name, uiscripts)) { + pre_seed_scripts (); return -1; } XMLTree tree; @@ -1466,6 +1467,24 @@ LuaInstance::set_state (const XMLNode& node) return 0; } +void +LuaInstance::pre_seed_scripts () +{ + LuaScriptInfoPtr spi = LuaScripting::instance ().by_name ("Mixer Screenshot", LuaScriptInfo::EditorAction); + int id = 0; + if (spi) { + try { + std::string script = Glib::file_get_contents (spi->path); + LuaState ls; + register_classes (ls.getState ()); + LuaScriptParamList lsp = LuaScriptParams::script_params (ls, spi->path, "action_params"); + LuaScriptParamPtr lspp (new LuaScriptParam("x-script-origin", "", spi->path, false, true)); + lsp.push_back (lspp); + set_lua_action (id++, "Mixer Screenshot", script, lsp); + } catch (...) { } + } +} + bool LuaInstance::interactive_add (LuaScriptInfo::ScriptType type, int id) { diff --git a/gtk2_ardour/luainstance.h b/gtk2_ardour/luainstance.h index f32ee8ee5a..adf2ff4a16 100644 --- a/gtk2_ardour/luainstance.h +++ b/gtk2_ardour/luainstance.h @@ -155,6 +155,7 @@ private: void init (); void set_dirty (); void session_going_away (); + void pre_seed_scripts (); LuaState lua; -- cgit v1.2.3