diff --git a/wled00/cfg.cpp b/wled00/cfg.cpp index 18048649e..7f938688f 100644 --- a/wled00/cfg.cpp +++ b/wled00/cfg.cpp @@ -277,10 +277,6 @@ bool deserializeConfig(JsonObject doc, bool fromFS) { CJSON(arlsDisableGammaCorrection, if_live[F("no-gc")]); // false CJSON(arlsOffset, if_live[F("offset")]); // 0 - CJSON(liveHSVCorrection, if_live[F("corr")]); - CJSON(liveHSVSaturation, if_live[F("hsvsat")]); - CJSON(liveHSVValue, if_live[F("hsvval")]); - CJSON(alexaEnabled, interfaces["va"][F("alexa")]); // false CJSON(macroAlexaOn, interfaces["va"]["macros"][0]); @@ -628,9 +624,6 @@ void serializeConfig() { if_live[F("maxbri")] = arlsForceMaxBri; if_live[F("no-gc")] = arlsDisableGammaCorrection; if_live[F("offset")] = arlsOffset; - if_live[F("corr")] = liveHSVCorrection; - if_live[F("hsvsat")] = liveHSVSaturation; - if_live[F("hsvval")] = liveHSVValue; JsonObject if_va = interfaces.createNestedObject("va"); if_va[F("alexa")] = alexaEnabled; diff --git a/wled00/colors.cpp b/wled00/colors.cpp index 5db873267..dfdd53e07 100644 --- a/wled00/colors.cpp +++ b/wled00/colors.cpp @@ -47,77 +47,6 @@ void relativeChangeWhite(int8_t amount, byte lowerBoundary) col[3] = new_val; } -void colorHSVtoRGB(float hue, float saturation, float value, byte& red, byte& green, byte& blue) -{ - float r, g, b; - - auto i = static_cast(hue * 6); - auto f = hue * 6 - i; - auto p = value * (1 - saturation); - auto q = value * (1 - f * saturation); - auto t = value * (1 - (1 - f) * saturation); - - switch (i % 6) - { - case 0: r = value, g = t, b = p; - break; - case 1: r = q, g = value, b = p; - break; - case 2: r = p, g = value, b = t; - break; - case 3: r = p, g = q, b = value; - break; - case 4: r = t, g = p, b = value; - break; - case 5: r = value, g = p, b = q; - break; - } - - red = static_cast(r * 255); - green = static_cast(g * 255); - blue = static_cast(b * 255); -} - -void colorRGBtoHSV(byte red, byte green, byte blue, float& hue, float& saturation, float& value) -{ - auto rd = static_cast(red) / 255; - auto gd = static_cast(green) / 255; - auto bd = static_cast(blue) / 255; - auto max = std::max({ rd, gd, bd }), min = std::min({ rd, gd, bd }); - - value = max; - - auto d = max - min; - saturation = max == 0 ? 0 : d / max; - - hue = 0; - if (max != min) - { - if (max == rd) hue = (gd - bd) / d + (gd < bd ? 6 : 0); - else if (max == gd) hue = (bd - rd) / d + 2; - else if (max == bd) hue = (rd - gd) / d + 4; - hue /= 6; - } -} - -#define SATURATION_THRESHOLD 0.1 -#define MAX_HSV_VALUE 1 -#define MAX_HSV_SATURATION 1 - -//corrects the realtime colors. 10 is the unchanged saturation/value -//this feature might cause slowdowns with large LED counts -void correctColors(byte r, byte g, byte b, byte* rgb) { - float hsv[3] = { 0,0,0 }; - colorRGBtoHSV(r, g,b , hsv[0], hsv[1], hsv[2]); - float saturated = hsv[1] > SATURATION_THRESHOLD ? - hsv[1] * ((float)liveHSVSaturation / 10) : hsv[1]; - float saturation = saturated < MAX_HSV_SATURATION ? saturated : MAX_HSV_SATURATION; - - float valued = hsv[2] * ((float)liveHSVValue/10); - float value = valued < MAX_HSV_VALUE ? valued : MAX_HSV_VALUE; - colorHSVtoRGB(hsv[0], saturation, value, rgb[0], rgb[1], rgb[2]); -} - void colorHStoRGB(uint16_t hue, byte sat, byte* rgb) //hue, sat to rgb { float h = ((float)hue)/65535.0; diff --git a/wled00/data/settings_sync.htm b/wled00/data/settings_sync.htm index 66e8b4338..2ae500a88 100644 --- a/wled00/data/settings_sync.htm +++ b/wled00/data/settings_sync.htm @@ -122,10 +122,7 @@ DMX mode: Timeout: ms
Force max brightness:
Disable realtime gamma correction:
-Realtime LED offset:

-Realtime HSV color correction:
-Saturation (1-30):
-Value (1-60): +Realtime LED offset:

Alexa Voice Assistant

Emulate Alexa device:
Alexa invocation name: diff --git a/wled00/fcn_declare.h b/wled00/fcn_declare.h index 0e3dc1d81..3c458a155 100644 --- a/wled00/fcn_declare.h +++ b/wled00/fcn_declare.h @@ -58,9 +58,6 @@ void colorFromUint32(uint32_t in, bool secondary = false); void colorFromUint24(uint32_t in, bool secondary = false); uint32_t colorFromRgbw(byte* rgbw); void relativeChangeWhite(int8_t amount, byte lowerBoundary = 0); -void colorHSVtoRGB(float hue, float saturation, float value, byte& red, byte& green, byte& blue); -void colorRGBtoHSV(byte red, byte green, byte blue, float& hue, float& saturation, float& value); -void correctColors(byte r, byte g, byte b, byte* rgb); void colorHStoRGB(uint16_t hue, byte sat, byte* rgb); //hue, sat to rgb void colorKtoRGB(uint16_t kelvin, byte* rgb); void colorCTtoRGB(uint16_t mired, byte* rgb); //white spectrum to rgb diff --git a/wled00/html_settings.h b/wled00/html_settings.h index 93db6b5ff..a5bd1a3e0 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -291,12 +291,9 @@ E1.31 info
Timeout: ms
Force max brightness:
Disable realtime gamma correction:
Realtime LED offset:

Realtime HSV color correction:
Saturation (1-30):
Value (1-60):

Alexa Voice Assistant

-Emulate Alexa device:
-Alexa invocation name:

Blynk

+required>

Alexa Voice Assistant

Emulate Alexa device:
Alexa invocation name:

Blynk

Blynk, MQTT and Hue sync all connect to external hosts!
This may impact the responsiveness of the ESP8266.

For best results, only use one of these services at a time.
diff --git a/wled00/set.cpp b/wled00/set.cpp index c41738017..93f34b323 100644 --- a/wled00/set.cpp +++ b/wled00/set.cpp @@ -227,10 +227,6 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) notifyMacro = request->hasArg(F("SM")); notifyTwice = request->hasArg(F("S2")); - liveHSVCorrection = request->hasArg(F("HX")); - liveHSVSaturation = request->arg(F("HS")).toInt(); - liveHSVValue = request->arg(F("HV")).toInt(); - nodeListEnabled = request->hasArg(F("NL")); if (!nodeListEnabled) Nodes.clear(); nodeBroadcastEnabled = request->hasArg(F("NB")); diff --git a/wled00/udp.cpp b/wled00/udp.cpp index d2391e162..23a9de14e 100644 --- a/wled00/udp.cpp +++ b/wled00/udp.cpp @@ -434,11 +434,6 @@ void setRealtimePixel(uint16_t i, byte r, byte g, byte b, byte w) uint16_t pix = i + arlsOffset; if (pix < ledCount) { - if (liveHSVCorrection) { - byte correctedColors[3] = {0,0,0}; - correctColors(r, g, b, correctedColors); - r = correctedColors[0]; g = correctedColors[1]; b = correctedColors[2]; - } if (!arlsDisableGammaCorrection && strip.gammaCorrectCol) { strip.setPixelColor(pix, strip.gamma8(r), strip.gamma8(g), strip.gamma8(b), strip.gamma8(w)); diff --git a/wled00/wled.h b/wled00/wled.h index 911b16dbb..00920b960 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -299,9 +299,6 @@ WLED_GLOBAL byte irEnabled _INIT(0); // Infrared receiver WLED_GLOBAL uint16_t udpPort _INIT(21324); // WLED notifier default port WLED_GLOBAL uint16_t udpPort2 _INIT(65506); // WLED notifier supplemental port WLED_GLOBAL uint16_t udpRgbPort _INIT(19446); // Hyperion port -WLED_GLOBAL bool liveHSVCorrection _INIT(false); -WLED_GLOBAL uint16_t liveHSVSaturation _INIT(13); -WLED_GLOBAL uint16_t liveHSVValue _INIT(10); WLED_GLOBAL uint8_t syncGroups _INIT(0x01); // sync groups this instance syncs (bit mapped) WLED_GLOBAL uint8_t receiveGroups _INIT(0x01); // sync receive groups this instance belongs to (bit mapped) diff --git a/wled00/xml.cpp b/wled00/xml.cpp index 67142b772..6ef33412c 100644 --- a/wled00/xml.cpp +++ b/wled00/xml.cpp @@ -400,10 +400,6 @@ void getSettingsJS(byte subPage, char* dest) sappend('v',SET_F("GS"),syncGroups); sappend('v',SET_F("GR"),receiveGroups); - sappend('c',SET_F("HX"),liveHSVCorrection); - sappend('v',SET_F("HS"),liveHSVSaturation); - sappend('v',SET_F("HV"),liveHSVValue); - sappend('c',SET_F("RB"),receiveNotificationBrightness); sappend('c',SET_F("RC"),receiveNotificationColor); sappend('c',SET_F("RX"),receiveNotificationEffects);