osc/server
server-new
(server-new [port :cstr proto :cstr] :ptr<void>)
create a new UDP OSC server thread on the given port.
| port | port string (e.g. "7770"); passed directly to liblo | |
| proto | ignored; always creates a UDP server in this implementation |
(ok st-ptr) on success; (err 0) on failure. st-ptr is an opaque :int handle; pass to server-free and server-add-method.
(let [r (server-new "7770" "udp")]
(if (ok? r) (let [s (ok-val r)] ...) (println "server-new failed")))
Since: OSC0
server-new-tcp
(server-new-tcp [port :cstr] :ptr<void>)
create a new TCP OSC server thread on the given port.
| port | port string (e.g. "7771") |
(ok st-ptr) on success; (err 0) on failure.
(let [r (server-new-tcp "7771")]
(if (ok? r) (let [s (ok-val r)] ...) (println "server-new-tcp failed")))
Since: OSC0
server-free
(server-free [s :int] :void)
stop and free a server thread created by server-new or server-new-tcp.
| s | st-ptr (ok-val from server-new or server-new-tcp) |
void
(server-free s)
Since: OSC0
server-add-method
(server-add-method [s :int path :cstr typespec :cstr handler :int] :void)
register a handler for an OSC path and type spec.
| s | st-ptr (ok-val from server-new) | |
| path | OSC address path string (e.g. "/synth/freq"); NULL matches all | |
| typespec | OSC type tag string (e.g. "f"); NULL matches all | |
| handler | reserved for future Turmeric FFI callback support; ignored |
void Note: Full Turmeric-function callbacks require a future FFI API. This implementation registers a no-op C handler so the path/typespec entry exists in the server dispatch table.
(server-add-method s "/synth/freq" "f" 0)
Since: OSC0
server-recv
(server-recv [s :int timeout-ms :int] :int)
dispatch pending OSC messages, blocking up to timeout-ms milliseconds.
| s | st-ptr (ok-val from server-new) | |
| timeout-ms | maximum wait time in milliseconds |
Number of messages dispatched as :int.
(server-recv s 100) ; => 1
Since: OSC0
server-recv-noblock
(server-recv-noblock [s :int] :int)
dispatch any pending OSC messages without blocking.
| s | st-ptr (ok-val from server-new) |
Number of messages dispatched as :int (0 if none pending).
(server-recv-noblock s) ; => 0
Since: OSC0
Internal definitions
__ok-- create an ok result wrapping integer value v.__err-- create an err result wrapping integer error value e.