Add multi-segment LED targets, replace single color strip source + skip fields
Each target now has a segments list where each segment maps a color strip source to a pixel range (start/end) on the device with optional reverse. This enables composing multiple visualizations on a single LED strip. Old targets auto-migrate from the single source format on load. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -356,8 +356,14 @@
|
||||
"targets.device": "Device:",
|
||||
"targets.device.hint": "Select the LED device to send data to",
|
||||
"targets.device.none": "-- Select a device --",
|
||||
"targets.color_strip_source": "Color Strip Source:",
|
||||
"targets.color_strip_source.hint": "Color strip source that captures and processes screen pixels into LED colors",
|
||||
"targets.segments": "Segments:",
|
||||
"targets.segments.hint": "Each segment maps a color strip source to a pixel range on the LED strip. Gaps between segments stay black. A single segment with Start=0, End=0 auto-fits to the full strip.",
|
||||
"targets.segments.add": "+ Add Segment",
|
||||
"targets.segment.start": "Start:",
|
||||
"targets.segment.end": "End:",
|
||||
"targets.segment.reverse": "Reverse",
|
||||
"targets.segment.remove": "Remove segment",
|
||||
"targets.no_segments": "No segments",
|
||||
"targets.source": "Source:",
|
||||
"targets.source.hint": "Which picture source to capture and process",
|
||||
"targets.source.none": "-- No source assigned --",
|
||||
@@ -373,10 +379,6 @@
|
||||
"targets.interpolation.dominant": "Dominant",
|
||||
"targets.smoothing": "Smoothing:",
|
||||
"targets.smoothing.hint": "Temporal blending between frames (0=none, 1=full). Reduces flicker.",
|
||||
"targets.led_skip": "LED Skip:",
|
||||
"targets.led_skip.hint": "Number of LEDs at the start and end of the strip to keep black. Color sources will render only across the active (non-skipped) LEDs.",
|
||||
"targets.led_skip_start": "Start:",
|
||||
"targets.led_skip_end": "End:",
|
||||
"targets.keepalive_interval": "Keep Alive Interval:",
|
||||
"targets.keepalive_interval.hint": "How often to resend the last frame when the source is static, keeping the device in live mode (0.5-5.0s)",
|
||||
"targets.created": "Target created successfully",
|
||||
|
||||
@@ -356,8 +356,14 @@
|
||||
"targets.device": "Устройство:",
|
||||
"targets.device.hint": "Выберите LED устройство для передачи данных",
|
||||
"targets.device.none": "-- Выберите устройство --",
|
||||
"targets.color_strip_source": "Источник цветовой полосы:",
|
||||
"targets.color_strip_source.hint": "Источник цветовой полосы, который захватывает и обрабатывает пиксели экрана в цвета светодиодов",
|
||||
"targets.segments": "Сегменты:",
|
||||
"targets.segments.hint": "Каждый сегмент отображает источник цветовой полосы на диапазон пикселей LED ленты. Промежутки между сегментами остаются чёрными. Один сегмент с Начало=0, Конец=0 авто-подгоняется под всю ленту.",
|
||||
"targets.segments.add": "+ Добавить сегмент",
|
||||
"targets.segment.start": "Начало:",
|
||||
"targets.segment.end": "Конец:",
|
||||
"targets.segment.reverse": "Реверс",
|
||||
"targets.segment.remove": "Удалить сегмент",
|
||||
"targets.no_segments": "Нет сегментов",
|
||||
"targets.source": "Источник:",
|
||||
"targets.source.hint": "Какой источник изображения захватывать и обрабатывать",
|
||||
"targets.source.none": "-- Источник не назначен --",
|
||||
@@ -373,10 +379,6 @@
|
||||
"targets.interpolation.dominant": "Доминантный",
|
||||
"targets.smoothing": "Сглаживание:",
|
||||
"targets.smoothing.hint": "Временное смешивание между кадрами (0=нет, 1=полное). Уменьшает мерцание.",
|
||||
"targets.led_skip": "Пропуск LED:",
|
||||
"targets.led_skip.hint": "Количество светодиодов в начале и конце ленты, которые остаются чёрными. Источники цвета будут рендериться только на активных (непропущенных) LED.",
|
||||
"targets.led_skip_start": "Начало:",
|
||||
"targets.led_skip_end": "Конец:",
|
||||
"targets.keepalive_interval": "Интервал поддержания связи:",
|
||||
"targets.keepalive_interval.hint": "Как часто повторно отправлять последний кадр при статичном источнике для удержания устройства в режиме live (0.5-5.0с)",
|
||||
"targets.created": "Цель успешно создана",
|
||||
|
||||
Reference in New Issue
Block a user