No matching definitions.

osc/server

src/osc/server.tur
defopaque

Server

(Server)

opaque handle to a liblo lo_server_thread.

Since: OSC1

defn

server-new

(server-new [port : cstr proto : cstr] :)

create a new UDP OSC server thread on the given port.

portport string (e.g. "7770"); passed directly to liblo
protoignored; always creates a UDP server in this implementation

(Result Server int) -- ok carries the Server handle; err carries 0 when lo_server_thread_new fails.

(let [r (server-new "7770" "udp")]
    (if (ok? r) (let [s (ok-val r)] ...) (println "server-new failed")))

Since: OSC0

defn

server-new-tcp

(server-new-tcp [port : cstr] :)

create a new TCP OSC server thread on the given port.

portport string (e.g. "7771")

(Result Server int) -- ok carries the Server handle; err carries 0 on failure.

(let [r (server-new-tcp "7771")]
    (if (ok? r) (let [s (ok-val r)] ...) (println "server-new-tcp failed")))

Since: OSC0

defn

server-free

(server-free [s : Server] :)

stop and free a server thread created by server-new or server-new-tcp.

sst-ptr (ok-val from server-new or server-new-tcp)

void

(server-free s)

Since: OSC0

defn

server-add-method

(server-add-method)

register a handler for an OSC path and type spec.

sst-ptr (ok-val from server-new)
pathOSC address path string (e.g. "/synth/freq"); NULL matches all
typespecOSC type tag string (e.g. "f"); NULL matches all
handlercaptureless C-ABI liblo method handler of shape
`int (*)(const char *path, const char *types,
lo_arg **argv, int argc, lo_message msg,
void *user)` -- spelled
`(c-fn [cstr cstr ptr<void> int ptr<void> ptr<void>] int)`

void

(defn noop-handler [p : cstr t : cstr argv : ptr<void> argc : int
                      msg : ptr<void> user : ptr<void>] : int
    0)
  (server-add-method s "/synth/freq" "f" noop-handler)

Since: OSC0

defn

server-recv

(server-recv [s : Server timeout-ms : Server] :)

dispatch pending OSC messages, blocking up to timeout-ms milliseconds.

sst-ptr (ok-val from server-new)
timeout-msmaximum wait time in milliseconds

Number of messages dispatched as :int.

(server-recv s 100)  ; => 1

Since: OSC0

defn

server-recv-noblock

(server-recv-noblock [s : Server] :)

dispatch any pending OSC messages without blocking.

sst-ptr (ok-val from server-new)

Number of messages dispatched as :int (0 if none pending).

(server-recv-noblock s)  ; => 0

Since: OSC0