From e612be90376ff139bdbf82cea31f34b9f18c84fe Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 2 Jan 2019 22:26:19 +0100 Subject: Add an example plugin to demonstrate Lua global variables Note: this only works when loading the script action. Window > Scripting doesn't run the factory method for upindex variables --- scripts/_remember_file.lua | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 scripts/_remember_file.lua (limited to 'scripts') diff --git a/scripts/_remember_file.lua b/scripts/_remember_file.lua new file mode 100644 index 0000000000..7a79fc861b --- /dev/null +++ b/scripts/_remember_file.lua @@ -0,0 +1,37 @@ +ardour { + ["type"] = "EditorAction", + name = "File Name Test", + author = "Ardour Lua Taskforce", + description = [[Example Plugin to show to to select a file and remember the most recently used file.]] +} + +function factory () + local file_name_testscript_last_filename -- this acts as "global" variable, use a unique name + return function () + print (file_name_testscript_last_filename) -- debug + + --set filename to most recently used, fall back to use a default + local fn = file_name_testscript_last_filename or ARDOUR.LuaAPI.build_filename (Session:path (), Session:name () .. ".ardour") + + -- prepare a dialog + local dialog_options = { + { type = "file", key = "file", title = "Select a File", path = fn } + } + + -- show dialog + local od = LuaDialog.Dialog ("title", dialog_options) + local rv = od:run() + + if rv then + -- remember most recently selected file + file_name_testscript_last_filename = rv['file'] + LuaDialog.Message ("title", "set path to " .. file_name_testscript_last_filename, LuaDialog.MessageType.Info, LuaDialog.ButtonType.Close):run() + else + -- unset most recently used filename on dialog "cancel" + file_name_testscript_last_filename = nil + end + + od = nil + collectgarbage () + end +end -- cgit v1.2.3