chickadee » ola

ola

Description

Basic bindings for libola, Open Lighting Architecture. Classes covered so far are DmxBuffer and StreamingClient.

For bug reports, feature requests, and development versions, visit the github project page.

Authors

Requirements

Chicken Eggs

C Headers

API

Version

(ola-version) => (major minor revision) procedure

Return ola's version as a list.

(ola-version-string) => string procedure

Return ola's version as a string.

Logging

(init-logging [level] [output]) => bool procedure

Level may be one of the following symbols:

  • log-level/none
  • log-level/fatal
  • log-level/warn
  • log-level/info
  • log-level/debug
  • log-level/max

Output may be one of the following symbols:

  • log-output/stderr
  • log-output/syslog
  • log-output/null

DmxBuffer

(dmxbuffer) => dmxbuffer procedure

Construct a new empty dmxbuffer.

(dmxbuffer other-dmxbuffer) => dmxbuffer procedure

Construct a new dmxbuffer with the same contents as other-dmxbuffer.

(dmxbuffer bytevector) => dmxbuffer procedure

Constructs a new dmxbuffer with the same contents as bytevector.

(dmxbuffer? dmxbuffer) => bool procedure

Dmxbuffer predicate.

(dmxbuffer=? dmxbuffer-a dmxbuffer-b) => bool procedure

Test whether dmxbuffer-a and dmxbuffer-b have equal contents.

(dmxbuffer-size dmxbuffer) => size procedure

Size of dmxbuffer.

(dmxbuffer-get dmxbuffer) => bytevector procedure

Return contents of dmxbuffer as a bytevector.

(dmxbuffer-get-channel dmxbuffer channel) => value procedure

Return the value of the given channel in dmxbuffer.

(dmxbuffer-get-range dmxbuffer offset length) => bytevector procedure

Return a bytevector of the requested range in dmxbuffer.

(dmxbuffer-set! dmxbuffer bytevector offset size) => bool procedure

Set the contents of dmxbuffer to contents of bytevector at given offset and size.

(dmxbuffer-set! dmxbuffer bytevector) => bool procedure

Set the contents of dmxbuffer to contents of bytevector.

(dmxbuffer-set! dmxbuffer dmxbuffer-other) => bool procedure

Set the contents of dmxbuffer to contents of dmxbuffer-other.

(dmxbuffer-set-channel! dmxbuffer channel value) => undefined procedure

Set dmxbuffer channel to value.

(dmxbuffer-set-from-string! dmxbuffer str) => bool procedure

Complement of dmxbuffer->string. Sets the contents of dmxbuffer according to the specially formatted string str. The format of the string is integers separated by commas, where 0's may be omitted, e.g. "1,2,,255"

(dmxbuffer-set-range! dmxbuffer dst-offset bytevector) => bool procedure

Set contents of dmxbuffer from dst-offset to contents of bytevector.

(dmxbuffer-set-range! dmxbuffer dst-offset bytevector src-offset src-length) => bool procedure

Set contents of dmxbuffer from dst-offset to contents of bytevector, from src-offset, src-length bytes.

(dmxbuffer-set-range-to-value! dmxbuffer offset value length) => bool procedure

Set contents of dmxbuffer from offset for length to value.

(dmxbuffer-htp-merge! dmxbuffer other-dmxbuffer) => bool procedure

Perform an HTP merge (high value merge) with other-dmxbuffer into dmxbuffer.

(dmxbuffer-blackout! dmxbuffer) => bool procedure

Set all channels to 0 in dmxbuffer.

(dmxbuffer-reset! dmxbuffer) => undefined procedure

Reset dmxbuffer size to 0.

(dmxbuffer->string dmxbuffer) => string procedure

Complement of 'dmxbuffer-set-from-string!'. Returns a human-readable string representing the contents of dmxbuffer - comma separated decimal values.

StreamingClient

(streamingclient [auto-start: bool] [server-port: port]) => streamingclient procedure

Constructs a client and attempts to establish a connection to the ola daemon. Auto-start is whether to start olad if it is not already running, default true. Server-port is the port to use, default 9010. Signals an '(exn ola)' condition if it fails to connect to the ola daemon.

(streamingclient-stop streamingclient) => undefined procedure

Stops a streamingclient.

(streamingclient-send-dmx streamingclient universe dmxbuffer) => bool procedure

Sends contents of dmxbuffer to the given universe on streamingclient.

Examples

(use ola r7rs)
(let ((client (streamingclient auto-start: #f)))
  (streamingclient-send-dmx client 0 (dmxbuffer (string->utf8 "AeIoUaEiO"))))

License

LGPL-3

Version History

Contents »