Age | Commit message (Collapse) | Author | |
---|---|---|---|
2023-06-15 | Un-GOOPS some procedures | Thomas White | |
These don't need to be generic any more, now that we only have one type of attribute. | |||
2023-06-15 | Remove colour-component stuff | Thomas White | |
It's a bit of a hack, only needed for MIDI control. I have a better solution using OSC in mind. | |||
2023-05-11 | Programmer state should be LTP | Thomas White | |
2023-04-30 | Move fixture-has-attr? to (starlet fixture) and export it | Thomas White | |
2023-04-29 | Move selection stuff to a separate module | Thomas White | |
2023-04-25 | Add selected? and desel | Thomas White | |
2023-04-13 | state-source: Quote symbol values | Thomas White | |
2022-11-13 | Some symbol-><starlet-attribute> conversions I missed | Thomas White | |
2022-11-12 | Add write method for <starlet-state> | Thomas White | |
2022-11-12 | Introduce new type for attribute names | Thomas 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-07-10 | Add "remove-selection-from-programmer!" | Thomas White | |
2022-07-10 | Add 'ps' as a synonym for programmer-state | Thomas White | |
2022-07-10 | Add "remove-fixture[s]-from-state!" | Thomas White | |
2022-07-10 | Don't send fix/attr/val to state update hook | Thomas White | |
It's not used anywhere, and it doesn't work - there are many other kinds of update apart from setting an individual value. | |||
2022-07-10 | Add "state-empty?" | Thomas White | |
2022-07-09 | Error if someone tries to set an attribute that doesn't exist | Thomas White | |
2022-06-11 | Rename make-colour-rgb to rgb, similar for cmy | Thomas White | |
2022-06-09 | Add 'blackout' | Thomas White | |
2022-06-06 | Rename state-map to state-map->list, add a real state-map | Thomas White | |
2022-01-25 | Separate cue lists from playbacks and crossfades | Thomas White | |
2021-09-11 | at: Clamp continuous attributes to range | Thomas White | |
2021-09-11 | state-source: Clamp continuous attributes to range | Thomas White | |
2021-09-11 | Run state update hook in 'clear-state!' | Thomas White | |
2021-08-08 | Add hook for state updates | Thomas White | |
This includes a "source", intended to be used for avoiding hook users from responding to their own changes. | |||
2021-06-27 | Fixture display: Show selection | Thomas White | |
2021-05-24 | Add hook for state changes on a playback | Thomas White | |
2021-05-22 | Add home-fixture!/blackout! | Thomas White | |
2021-05-16 | Get rid of time parameter and use clock objects for cross-fades | Thomas White | |
Because we can stop a clock object, but not "gettimeofday". | |||
2021-05-13 | Export copy-state | Thomas White | |
2021-05-13 | Avoid mutation of state objects by "set-state-name!" | Thomas White | |
2021-05-10 | Run cues as single atomic operations | Thomas White | |
This avoids a potential situation where one parameter of a fixture is reconfigured before another, which could (in theory) lead to flickering of lights. | |||
2021-05-10 | Make state objects' hash tables immutable with atomic updates | Thomas White | |
States often get updated while they're being scanned out. The obvious case is when manually setting values in the programmer-state, but the more pernicious one is when running a cue. This means that the updates have to be atomic. | |||
2021-05-10 | Split 'base' module up into 'fixture', 'state' and 'scanout' | Thomas White | |