Enhance CSS test preview with live capture, brightness display, and UX fixes
- Stream live JPEG frames from picture sources into the test preview rectangle - Add composite layer brightness display via value source streaming - Fix missing id on css-test-rect-screen element that prevented frame display - Preload images before swapping to eliminate flicker on frame updates - Increase preview resolution to 480x360 and add subtle outline - Prevent auto-focus on name field in modals on touch devices (desktopFocus) - Fix performance chart padding, color picker clipping, and subtitle offset - Add calibration-style ticks and source name/LED count to rectangle preview Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -110,6 +110,22 @@ class CompositeColorStripStream(ColorStripStream):
|
||||
with self._colors_lock:
|
||||
return self._latest_layer_colors
|
||||
|
||||
def get_layer_brightness(self) -> List[Optional[float]]:
|
||||
"""Return per-layer brightness values (0.0-1.0) from value sources, or None if no source."""
|
||||
enabled = [l for l in self._layers if l.get("enabled", True)]
|
||||
result: List[Optional[float]] = []
|
||||
with self._sub_lock:
|
||||
for i in range(len(enabled)):
|
||||
if i in self._brightness_streams:
|
||||
_vs_id, vs = self._brightness_streams[i]
|
||||
try:
|
||||
result.append(vs.get_value())
|
||||
except Exception:
|
||||
result.append(None)
|
||||
else:
|
||||
result.append(None)
|
||||
return result
|
||||
|
||||
def configure(self, device_led_count: int) -> None:
|
||||
if self._auto_size and device_led_count > 0 and device_led_count != self._led_count:
|
||||
self._led_count = device_led_count
|
||||
|
||||
Reference in New Issue
Block a user