mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-09 08:14:58 +01:00
expose Lua OSC transmitter
This commit is contained in:
parent
d0746b8378
commit
93449d3431
2 changed files with 52 additions and 0 deletions
|
|
@ -193,6 +193,7 @@ LuaInstance::register_classes (lua_State* L)
|
||||||
LuaBindings::stddef (L);
|
LuaBindings::stddef (L);
|
||||||
LuaBindings::common (L);
|
LuaBindings::common (L);
|
||||||
LuaBindings::session (L);
|
LuaBindings::session (L);
|
||||||
|
LuaBindings::osc (L);
|
||||||
|
|
||||||
bind_cairo (L);
|
bind_cairo (L);
|
||||||
register_hooks (L);
|
register_hooks (L);
|
||||||
|
|
|
||||||
51
scripts/osc_hook_example.lua
Normal file
51
scripts/osc_hook_example.lua
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
ardour {
|
||||||
|
["type"] = "EditorHook",
|
||||||
|
name = "OSC Callback Example",
|
||||||
|
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 = OSC.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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue