aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/attributes.scm
AgeCommit message (Collapse)Author
2023-06-05Fixture library: <stairville-z120m-6ch>: Add white-weirdness attributeThomas White
2023-04-11Add lots of default attribute namesThomas White
2023-04-10Add attribute friendly namesThomas 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).