Age | Commit message (Collapse) | Author |
|
These don't need to be generic any more, now that we only have one type
of attribute.
|
|
It's a bit of a hack, only needed for MIDI control. I have a better
solution using OSC in mind.
|
|
|
|
|
|
The new module "engine" contains everything to do with working out the
final attribute values. This module should be referenced for anything
that needs to register states, get values etc.
Now, "scanout" is only about converting attribute values to DMX values
and sending them to OLA. This module only needs to be referenced by
fixture definitions, and once by the top level program.
|
|
|
|
|
|
There's a serious problem with the design so far, where symbols are used
for attribute names (intensity, strobe, colour etc), and also for
attribute values (on, off, random etc). There's no way for 'at' to
tell the difference between the two. For example, this form is
ambiguous: (at myfixture 'strobe 'on)
This commit introduces a new class, <starlet-attribute>, to replace the
use of symbols here. The attributes are enumerated in (starlet attributes),
and new ones can be added later. The attribute objects remember their
'canonical' names, to allow states to be printed.
Apart from solving the ambiguity problem, this has two further
advantages. First, attribute names no longer need to be quoted
everywhere. Second, multiple names can be used to refer to the same
attribute. For example: (define color colour).
|
|
|
|
This needed some rearranging, but I think the resulting code is a little
bit more efficient.
|
|
|
|
|
|
|
|
|
|
This time it works.
|
|
|
|
|
|
Because we can stop a clock object, but not "gettimeofday".
|
|
|
|
|
|
|