summaryrefslogtreecommitdiff
path: root/gtk2_ardour/luainstance.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-12-12 20:35:14 +0100
committerRobin Gareus <robin@gareus.org>2019-12-12 20:53:17 +0100
commitd226b63e707f574d8348b27de8c8dec163ab5197 (patch)
tree0e925d7c81f9124094687abe9176f5e83e770b5a /gtk2_ardour/luainstance.cc
parent3208535c20b5ec1fc0ef4c2b65111e5a274d7e0a (diff)
Pre-seed Lua action-buttons
Diffstat (limited to 'gtk2_ardour/luainstance.cc')
-rw-r--r--gtk2_ardour/luainstance.cc19
1 files changed, 19 insertions, 0 deletions
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)
{