aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/scanout.scm
AgeCommit message (Collapse)Author
2023-06-15Un-GOOPS some proceduresThomas White
These don't need to be generic any more, now that we only have one type of attribute.
2023-06-15Remove colour-component stuffThomas White
It's a bit of a hack, only needed for MIDI control. I have a better solution using OSC in mind.
2023-06-06Slow down engine a bitThomas White
2023-04-01Scanout: Retrieve the combined state only onceThomas White
2023-04-01Separate 'engine' and 'scanout'Thomas White
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.
2023-04-01Send the combined state to OLAThomas White
2023-04-01Build a general combined stateThomas White
2022-11-12Introduce new type for attribute namesThomas White
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).
2022-06-09Move scanout-fixture from (starlet scanout) to (starlet fixture)Thomas White
2022-05-06define-fixture: Eliminate need to provide names for get-attr etcThomas White
This needed some rearranging, but I think the resulting code is a little bit more efficient.
2022-05-06Move useful functions to utilsThomas White
2022-05-06FormattingThomas White
2021-06-26Remove tnow parameter from current-valueThomas White
2021-06-19Add patched-fixture-namesThomas White
2021-06-03Add patch-manyThomas White
This time it works.
2021-05-24Add hook for state changes on a playbackThomas White
2021-05-22Add total-num-attrsThomas White
2021-05-16Get rid of time parameter and use clock objects for cross-fadesThomas White
Because we can stop a clock object, but not "gettimeofday".
2021-05-13Avoid mutation of state objects by "set-state-name!"Thomas White
2021-05-10Start OLA scanout automaticallyThomas White
2021-05-10Split 'base' module up into 'fixture', 'state' and 'scanout'Thomas White