diff options
Diffstat (limited to 'scripts/session_test.lua')
-rw-r--r-- | scripts/session_test.lua | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/scripts/session_test.lua b/scripts/session_test.lua new file mode 100644 index 0000000000..dbe4390b5e --- /dev/null +++ b/scripts/session_test.lua @@ -0,0 +1,38 @@ +ardour { + ["type"] = "session", + name = "Example", + license = "MIT", + author = "Robin Gareus", + email = "robin@gareus.org", + site = "http://gareus.org", + description = [[ + An Example Ardour Session Process Plugin. + Install a 'hook' that is called on every process cycle + (before doing any processing). + This example stops the transport after rolling for a specific time.]] +} + +function sess_params () + return + { + ["print"] = { title = "Debug Print (yes/no)", default = "no", optional = true }, + ["time"] = { title = "Timeout (sec)", default = "90", optional = false }, + } +end + +function factory (params) + return function (n_samples) + local p = params["print"] or "no" + local timeout = params["time"] or 90 + a = a or 0 + if p ~= "no" then print (a, n_samples, Session:frame_rate (), Session:transport_rolling ()) end -- debug output (not rt safe) + if (not Session:transport_rolling()) then + a = 0 + return + end + a = a + n_samples + if (a > timeout * Session:frame_rate()) then + Session:request_transport_speed(0.0, true) + end + end +end |