makepad/libs/show_control
vjroger 5622f1b6a5 show control: the rig can wear colours handed in from outside
A group's colour was a hue dial at full saturation and nothing else. An
application that keeps a palette for its show can now lay it over the rig.

- RigColors holds an optional RGB for the washes and one for the laser
  and strobe; a group left at none keeps its hue dial.
- apply_dmx_mapping_with_colors is the mapping with that input;
  apply_dmx_mapping keeps its signature and calls it with none, and its
  frames are byte for byte what they were. A colour goes out at the
  level the hue would have had: the strobe still follows its fader.
  Components outside 0 to 1 are clamped, one that is not a number
  counts as 0.
- group_colors answers what the two groups wear now, from the override
  where there is one and the dial otherwise.
- the desk carries it: RoomShow::set_colors, held in DeskState and
  returned in the snapshot. Scenes neither save nor recall it, and power
  off still gives a dark frame. The beam lasers take a wheel position,
  not a colour, and stay on their dial.

Tests: 36 pass (27 before), among them the frames compared against the
old mapping over 802 states and 9 clock values. No test starts the
writer or sends to a network beyond the loopback test that was there.
2026-10-02 08:48:22 +02:00
..
resources/dmx/2025-04-30 libs: piano_model, drumkit_phys, show_control, score_view, diffusion 2026-09-15 13:40:32 +02:00
src show control: the rig can wear colours handed in from outside 2026-10-02 08:48:22 +02:00
Cargo.toml libs: piano_model, drumkit_phys, show_control, score_view, diffusion 2026-09-15 13:40:32 +02:00