summaryrefslogtreecommitdiff
path: root/share/scripts/session_template_advanced.lua
diff options
context:
space:
mode:
Diffstat (limited to 'share/scripts/session_template_advanced.lua')
-rw-r--r--share/scripts/session_template_advanced.lua59
1 files changed, 59 insertions, 0 deletions
diff --git a/share/scripts/session_template_advanced.lua b/share/scripts/session_template_advanced.lua
new file mode 100644
index 0000000000..1eec0349ce
--- /dev/null
+++ b/share/scripts/session_template_advanced.lua
@@ -0,0 +1,59 @@
+ardour {
+ ["type"] = "SessionInit",
+ name = "Advanced Session",
+ description = [[Allows to configure master-bus and autoconnect]],
+ master_bus = 0
+}
+
+function factory () return function ()
+
+ local auto_connect_in = {
+ [0] = "Manually",
+ [1] = "automatically to physical inputs",
+ }
+
+ local auto_connect_out = {
+ [0] = "Manually",
+ [1] = "automatically to physical outputs",
+ [2] = "automatically to master bus",
+ }
+
+ local dialog_options = {
+ { type = "heading", title = "Customize Session: " .. Session:name () },
+ { type = "number", key = "master", title = "Master bus channels", min = 0, max = 24, step = 1, digits = 0, default = 2 },
+ { type = "checkbox", key = "monitor", title = "Add monitor section", default = ARDOUR.config():get_use_monitor_bus () },
+ { type = "dropdown", key = "ac_input", title = "Autoconnect Inputs",
+ values = {
+ [auto_connect_in[0]] = 0,
+ [auto_connect_in[1]] = 1,
+ },
+ default = auto_connect_in[ARDOUR.config():get_input_auto_connect ()]
+ },
+ { type = "dropdown", key = "ac_output", title = "Autoconnect Outputs",
+ values = {
+ [auto_connect_out[0]] = 0,
+ [auto_connect_out[1]] = 1,
+ [auto_connect_out[2]] = 2,
+ },
+ default = auto_connect_out[ARDOUR.config():get_output_auto_connect ()]
+ },
+ }
+
+ local dlg = LuaDialog.Dialog ("Template Setup", dialog_options)
+ local rv = dlg:run()
+ if (not rv) then return end
+
+ if rv['master'] > 0 then
+ local count = ARDOUR.ChanCount ( ARDOUR.DataType("audio"), rv['master'])
+ Session:add_master_bus (count)
+ end
+
+ if rv['monitor'] then
+ ARDOUR.config():set_use_monitor_bus (true)
+ end
+
+ ARDOUR.config():set_input_auto_connect (rv['ac_input'])
+ ARDOUR.config():set_output_auto_connect (rv['ac_output'])
+
+ Session:save_state("");
+end end