diff --git a/server/src/wled_controller/core/processing/color_strip_stream.py b/server/src/wled_controller/core/processing/color_strip_stream.py index 039511a..00960be 100644 --- a/server/src/wled_controller/core/processing/color_strip_stream.py +++ b/server/src/wled_controller/core/processing/color_strip_stream.py @@ -305,6 +305,7 @@ class PictureColorStripStream(ColorStripStream): Uses pre-allocated uint16 scratch buffers (_u16_a, _u16_b). """ + nonlocal _u16_a, _u16_b np.copyto(_u16_a, a, casting='unsafe') np.copyto(_u16_b, b, casting='unsafe') _u16_a *= (256 - alpha_b) @@ -318,6 +319,7 @@ class PictureColorStripStream(ColorStripStream): Returns the (possibly reassigned) led_colors array. """ + nonlocal _i32 if self._saturation != 1.0: _apply_saturation(led_colors, self._saturation, _i32, _i32_gray, led_colors) if self._gamma != 1.0: diff --git a/server/src/wled_controller/static/js/features/kc-targets.js b/server/src/wled_controller/static/js/features/kc-targets.js index c0ea4fb..5a13349 100644 --- a/server/src/wled_controller/static/js/features/kc-targets.js +++ b/server/src/wled_controller/static/js/features/kc-targets.js @@ -363,11 +363,9 @@ function _populateKCBrightnessVsDropdown(selectedId = '') { // Keep the first "None" option, remove the rest while (sel.options.length > 1) sel.remove(1); _cachedValueSources.forEach(vs => { - const typeIcons = { static: '📊', animated: '🔄', audio: '🎵' }; - const icon = typeIcons[vs.source_type] || '🔢'; const opt = document.createElement('option'); opt.value = vs.id; - opt.textContent = `${icon} ${vs.name}`; + opt.textContent = `🔢 ${vs.name}`; sel.appendChild(opt); }); sel.value = selectedId || ''; diff --git a/server/src/wled_controller/static/js/features/targets.js b/server/src/wled_controller/static/js/features/targets.js index cb0e480..2924061 100644 --- a/server/src/wled_controller/static/js/features/targets.js +++ b/server/src/wled_controller/static/js/features/targets.js @@ -184,9 +184,7 @@ function _populateBrightnessVsDropdown(selectedId = '') { const select = document.getElementById('target-editor-brightness-vs'); let html = ``; _cachedValueSources.forEach(vs => { - const typeIcons = { static: '📊', animated: '🔄', audio: '🎵' }; - const icon = typeIcons[vs.source_type] || '🎚️'; - html += ``; + html += ``; }); select.innerHTML = html; } diff --git a/server/src/wled_controller/static/locales/en.json b/server/src/wled_controller/static/locales/en.json index 5338349..2bd7758 100644 --- a/server/src/wled_controller/static/locales/en.json +++ b/server/src/wled_controller/static/locales/en.json @@ -431,7 +431,7 @@ "kc.pattern_template": "Pattern Template:", "kc.pattern_template.hint": "Select the rectangle pattern to use for color extraction", "kc.pattern_template.none": "-- Select a pattern template --", - "kc.brightness_vs": "🔢 Brightness Source:", + "kc.brightness_vs": "Brightness Source:", "kc.brightness_vs.hint": "Optional value source that dynamically controls brightness each frame (multiplied with the manual brightness slider)", "kc.brightness_vs.none": "None (manual brightness only)", "kc.created": "Key colors target created successfully", @@ -847,7 +847,7 @@ "value_source.deleted": "Value source deleted", "value_source.delete.confirm": "Are you sure you want to delete this value source?", "value_source.error.name_required": "Please enter a name", - "targets.brightness_vs": "🔢 Brightness Source:", + "targets.brightness_vs": "Brightness Source:", "targets.brightness_vs.hint": "Optional value source that dynamically controls brightness each frame (overrides device brightness)", "targets.brightness_vs.none": "None (device brightness)" } diff --git a/server/src/wled_controller/static/locales/ru.json b/server/src/wled_controller/static/locales/ru.json index c00e14c..e70ea20 100644 --- a/server/src/wled_controller/static/locales/ru.json +++ b/server/src/wled_controller/static/locales/ru.json @@ -431,7 +431,7 @@ "kc.pattern_template": "Шаблон Паттерна:", "kc.pattern_template.hint": "Выберите шаблон прямоугольников для извлечения цветов", "kc.pattern_template.none": "-- Выберите шаблон паттерна --", - "kc.brightness_vs": "🔢 Источник Яркости:", + "kc.brightness_vs": "Источник Яркости:", "kc.brightness_vs.hint": "Опциональный источник значений, динамически управляющий яркостью каждый кадр (умножается на ручной слайдер яркости)", "kc.brightness_vs.none": "Нет (только ручная яркость)", "kc.created": "Цель ключевых цветов успешно создана", @@ -847,7 +847,7 @@ "value_source.deleted": "Источник значений удалён", "value_source.delete.confirm": "Удалить этот источник значений?", "value_source.error.name_required": "Введите название", - "targets.brightness_vs": "🔢 Источник яркости:", + "targets.brightness_vs": "Источник яркости:", "targets.brightness_vs.hint": "Необязательный источник значений для динамического управления яркостью каждый кадр (переопределяет яркость устройства)", "targets.brightness_vs.none": "Нет (яркость устройства)" }