aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/fixture.scm
AgeCommit message (Collapse)Author
2023-05-15Implement OSC encoders for list attributesosc-with-guileoscThomas White
2023-04-30Move fixture-has-attr? to (starlet fixture) and export itThomas White
2023-04-11Add an optional comment field to the fixture's attributesThomas 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-04-24Add fallback find-attr which gives a meaningful error messageThomas White
2022-04-24Add define-fixture macroThomas White
2022-04-23Add scale-and-clamp-to-rangeThomas White
2021-05-20Add get-fixture-attrsThomas White
2021-05-10Split 'base' module up into 'fixture', 'state' and 'scanout'Thomas White