diff options
author | Robin Gareus <robin@gareus.org> | 2016-08-10 03:12:11 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-08-10 03:12:11 +0200 |
commit | a8143ea44e83a87fb6a9500d59409a14a94ad655 (patch) | |
tree | 3aac8610dc26fb63abd4cc1c7afe864714a2f408 /scripts/_osc_hook_example.lua | |
parent | 2b7a89ecffa92a616cd61774d42bea1e99db6f79 (diff) |
prefix no-inst script with an underscore and skip install
Diffstat (limited to 'scripts/_osc_hook_example.lua')
-rw-r--r-- | scripts/_osc_hook_example.lua | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/scripts/_osc_hook_example.lua b/scripts/_osc_hook_example.lua new file mode 100644 index 0000000000..fdcda4b44f --- /dev/null +++ b/scripts/_osc_hook_example.lua @@ -0,0 +1,52 @@ +ardour { + ["type"] = "EditorHook", + name = "OSC Callback Example", + author = "Ardour Lua Task Force", + description = "Send OSC messages", +} + +function action_params () + return + { + ["uri"] = { title = "OSC URI ", default = "osc.udp://localhost:7890"}, + } +end + + +function signals () + s = LuaSignal.Set() + s:add ( + { + [LuaSignal.SoloActive] = true, + [LuaSignal.RegionPropertyChanged] = true, + [LuaSignal.Exported] = true, + [LuaSignal.TransportStateChange] = true + } + ) + return s +end + +function factory (params) + return function (signal, ref, ...) + local uri = params["unique"] or "osc.udp://localhost:7890" + local tx = ARDOUR.LuaOSC.Address (uri) + -- debug print (stdout) + -- print (signal, ref, ...) + + if (signal == LuaSignal.Exported) then + tx:send ("/session/exported", "ss", ...) + elseif (signal == LuaSignal.SoloActive) then + tx:send ("/session/solo_changed", "") + elseif (signal == LuaSignal.TransportStateChange) then + tx:send ("/session/transport", "if", + Session:transport_frame(), Session:transport_speed()) + elseif (signal == LuaSignal.RegionPropertyChanged) then + obj,pch = ... + tx:send ("/region_property_changed", "sTTiii", + obj:name (), + (pch:containsFramePos (ARDOUR.Properties.Start)), + (pch:containsFramePos (ARDOUR.Properties.Length)), + obj:position (), obj:start (), obj:length ()) + end + end +end |