Add OpenRGB per-zone LED control with separate/combined modes and zone preview

- Zone picker UI in device add/settings modals with per-zone checkbox selection
- Combined mode: pixels distributed sequentially across zones
- Separate mode: full effect resampled independently to each zone via linear interpolation
- Per-zone LED preview in target cards: one canvas strip per zone with hover overlay labels
- Zone badges on device cards enriched with actual LED counts from OpenRGB API
- Fix stale led_count by using device_led_count discovered at connect time

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-01 20:35:51 +03:00
parent aafcf83896
commit 52ee4bdeb6
19 changed files with 769 additions and 55 deletions

View File

@@ -137,6 +137,15 @@
"device.ws_url.hint": "WebSocket URL for clients to connect and receive LED data",
"device.openrgb.url": "OpenRGB URL:",
"device.openrgb.url.hint": "OpenRGB server address (e.g. openrgb://localhost:6742/0)",
"device.openrgb.zone": "Zones:",
"device.openrgb.zone.hint": "Select which LED zones to control (leave all unchecked for all zones)",
"device.openrgb.zone.loading": "Loading zones…",
"device.openrgb.zone.error": "Failed to load zones",
"device.openrgb.mode": "Zone mode:",
"device.openrgb.mode.hint": "Combined treats all zones as one continuous LED strip. Separate renders each zone independently with the full effect.",
"device.openrgb.mode.combined": "Combined strip",
"device.openrgb.mode.separate": "Independent zones",
"device.openrgb.added_multiple": "Added {count} devices",
"device.type.openrgb": "OpenRGB",
"device.url.hint": "IP address or hostname of the device (e.g. http://192.168.1.100)",
"device.name": "Device Name:",