Outdated egg!
This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for the CHICKEN 5 version of this egg, if it exists.
If it does not exist, there may be equivalent functionality provided by another egg; have a look at the egg index. Otherwise, please consider porting this egg to the current version of CHICKEN.
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 github project page.
Authors
- John J Foerch
Requirements
Chicken Eggs
C Headers
- ola (libola-dev)
API
Version
- ola-versionprocedure
Return ola's version as a list.
- ola-version-stringprocedure
Return ola's version as a string.
Logging
- (init-logging [level] [output]) => boolprocedure
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
- dmxbufferprocedure
Construct a new empty dmxbuffer.
- dmxbuffer other-dmxbufferprocedure
Construct a new dmxbuffer with the same contents as other-dmxbuffer.
- dmxbuffer bytevectorprocedure
Constructs a new dmxbuffer with the same contents as bytevector.
- dmxbuffer? dmxbufferprocedure
Dmxbuffer predicate.
- dmxbuffer=? dmxbuffer-a dmxbuffer-bprocedure
Test whether dmxbuffer-a and dmxbuffer-b have equal contents.
- dmxbuffer-size dmxbufferprocedure
Size of dmxbuffer.
- dmxbuffer-get dmxbufferprocedure
Return contents of dmxbuffer as a bytevector.
- dmxbuffer-get-channel dmxbuffer channelprocedure
Return the value of the given channel in dmxbuffer.
- dmxbuffer-get-range dmxbuffer offset lengthprocedure
Return a bytevector of the requested range in dmxbuffer.
- dmxbuffer-set! dmxbuffer bytevector offset sizeprocedure
Set the contents of dmxbuffer to contents of bytevector at given offset and size.
- dmxbuffer-set! dmxbuffer bytevectorprocedure
Set the contents of dmxbuffer to contents of bytevector.
- dmxbuffer-set! dmxbuffer dmxbuffer-otherprocedure
Set the contents of dmxbuffer to contents of dmxbuffer-other.
- dmxbuffer-set-channel! dmxbuffer channel valueprocedure
Set dmxbuffer channel to value.
- dmxbuffer-set-from-string! dmxbuffer strprocedure
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 bytevectorprocedure
Set contents of dmxbuffer from dst-offset to contents of bytevector.
- dmxbuffer-set-range! dmxbuffer dst-offset bytevector src-offset src-lengthprocedure
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 lengthprocedure
Set contents of dmxbuffer from offset for length to value.
- dmxbuffer-htp-merge! dmxbuffer other-dmxbufferprocedure
Perform an HTP merge (high value merge) with other-dmxbuffer into dmxbuffer.
- dmxbuffer-blackout! dmxbufferprocedure
Set all channels to 0 in dmxbuffer.
- dmxbuffer-reset! dmxbufferprocedure
Reset dmxbuffer size to 0.
- dmxbuffer->string dmxbufferprocedure
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]) => streamingclientprocedure
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 streamingclientprocedure
Stops a streamingclient.
- streamingclient-send-dmx streamingclient universe dmxbufferprocedure
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