== ola
[[toc:]]
== 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
[[https://github.com/retroj/ola-egg/|github project page]].
== Authors
* John J Foerch
== Requirements
=== Chicken Eggs
* [[r7rs]]
* [[srfi-99]]
* [[foreigners]]
* [[list-utils]]
* [[matchable]]
=== C Headers
* ola (libola-dev)
== API
=== Version
(ola-version) => (major minor revision)
Return ola's version as a list.
(ola-version-string) => string
Return ola's version as a string.
=== Logging
(init-logging [level] [output]) => bool
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
Construct a new empty dmxbuffer.
(dmxbuffer other-dmxbuffer) => dmxbuffer
Construct a new dmxbuffer with the same contents as other-dmxbuffer.
(dmxbuffer bytevector) => dmxbuffer
Constructs a new dmxbuffer with the same contents as bytevector.
(dmxbuffer? dmxbuffer) => bool
Dmxbuffer predicate.
(dmxbuffer=? dmxbuffer-a dmxbuffer-b) => bool
Test whether dmxbuffer-a and dmxbuffer-b have equal contents.
(dmxbuffer-size dmxbuffer) => size
Size of dmxbuffer.
(dmxbuffer-get dmxbuffer) => bytevector
Return contents of dmxbuffer as a bytevector.
(dmxbuffer-get-channel dmxbuffer channel) => value
Return the value of the given channel in dmxbuffer.
(dmxbuffer-get-range dmxbuffer offset length) => bytevector
Return a bytevector of the requested range in dmxbuffer.
(dmxbuffer-set! dmxbuffer bytevector offset size) => bool
Set the contents of dmxbuffer to contents of bytevector at given offset and size.
(dmxbuffer-set! dmxbuffer bytevector) => bool
Set the contents of dmxbuffer to contents of bytevector.
(dmxbuffer-set! dmxbuffer dmxbuffer-other) => bool
Set the contents of dmxbuffer to contents of dmxbuffer-other.
(dmxbuffer-set-channel! dmxbuffer channel value) => undefined
Set dmxbuffer channel to value.
(dmxbuffer-set-from-string! dmxbuffer str) => bool
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
Set contents of dmxbuffer from dst-offset to contents of bytevector.
(dmxbuffer-set-range! dmxbuffer dst-offset bytevector src-offset src-length) => bool
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
Set contents of dmxbuffer from offset for length to value.
(dmxbuffer-htp-merge! dmxbuffer other-dmxbuffer) => bool
Perform an HTP merge (high value merge) with other-dmxbuffer into dmxbuffer.
(dmxbuffer-blackout! dmxbuffer) => bool
Set all channels to 0 in dmxbuffer.
(dmxbuffer-reset! dmxbuffer) => undefined
Reset dmxbuffer size to 0.
(dmxbuffer->string dmxbuffer) => string
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
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
Stops a streamingclient.
(streamingclient-send-dmx streamingclient universe dmxbuffer) => bool
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
* 0.1 (2016-03-12) initial release
* 0.2 (2016-03-13) meta and documentation
* 0.3 (2016-03-13) streamingclient-setup removed, ola-version added
* 0.4 (2016-09-05) use bytevectors instead of blobs