lua snippet to interact with portengine
authorRobin Gareus <robin@gareus.org>
Tue, 26 Apr 2016 15:51:48 +0000 (17:51 +0200)
committerRobin Gareus <robin@gareus.org>
Tue, 26 Apr 2016 16:16:14 +0000 (18:16 +0200)
scripts/s_portengine.lua [new file with mode: 0644]

diff --git a/scripts/s_portengine.lua b/scripts/s_portengine.lua
new file mode 100644 (file)
index 0000000..5bbcabd
--- /dev/null
@@ -0,0 +1,33 @@
+ardour { ["type"] = "Snippet", name = "portengine" }
+function factory () return function ()
+
+       a = Session:engine()
+       print ("----- Port objects from Ardour's engine ----");
+       _, t = a:get_ports (ARDOUR.DataType("audio"), ARDOUR.PortList())
+       -- table 't' holds argument references. t[2] is the PortList
+       for p in t[2]:iter() do
+               print (p:name())
+       end
+
+       print ("----- Port names queries from the backend ----");
+       _, t = a:get_backend_ports ("", ARDOUR.DataType("audio"), 0, C.StringVector())
+       -- table 't' holds argument references. t[4] is the StringVector
+       for n in t[4]:iter() do
+               print (n)
+       end
+
+       print ("----- Connections from the backend ----");
+       _, t = a:get_backend_ports ("", ARDOUR.DataType("audio"), ARDOUR.PortFlags.IsOutput, C.StringVector())
+       for n in t[4]:iter() do
+               local printed_name = false;
+               _, ct = a:get_connections (n, C.StringVector())
+               for c in ct[2]:iter() do
+                       if (not printed_name) then
+                               printed_name = true;
+                               print (n)
+                       end
+                       print (" ->", c)
+               end
+       end
+
+end end