0.12.0 Beta 4
This commit is contained in:
		
							
								
								
									
										16
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| @@ -1,14 +1,14 @@ | ||||
| ## WLED changelog | ||||
|  | ||||
| ### WLED release 0.12.0 | ||||
|  | ||||
| #### Build 2103250 | ||||
|  | ||||
| -   Version bump to 0.12.0 "Hikari" | ||||
| -   Fixed RGBW mode disabled after LED settings saved | ||||
|  | ||||
| ### Development versions between 0.11.1 and 0.12.0 releases | ||||
|  | ||||
| #### Build 2103290 | ||||
|  | ||||
| -   Version bump to 0.12.0-b4 "Hikari" | ||||
| -   Experimental use of espressif32@3.1.1 | ||||
| -   Fixed RGBW mode disabled after LED settings saved | ||||
| -   Fixed infrared support not compiled in if IRPIN is not defined | ||||
|  | ||||
| #### Build 2103230 | ||||
|  | ||||
| -   Fixed current estimation | ||||
| @@ -240,7 +240,7 @@ | ||||
| #### Build 2011153 | ||||
|  | ||||
| -   Fixed an ESP32 end-of-file issue | ||||
| -   Fixed useRGBW not read from cfg.json | ||||
| -   Fixed strip.isRgbw not read from cfg.json | ||||
|  | ||||
| #### Build 2011152 | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "wled", | ||||
|   "version": "0.12.0", | ||||
|   "version": "0.12.0-b4", | ||||
|   "description": "Tools for WLED project", | ||||
|   "main": "tools/cdata.js", | ||||
|   "directories": { | ||||
|   | ||||
| @@ -259,7 +259,7 @@ build_flags = ${common.build_flags_esp8266} -D LEDPIN=1 -D WLED_DISABLE_INFRARED | ||||
|  | ||||
| [env:esp32dev] | ||||
| board = esp32dev | ||||
| platform = espressif32@2.0 | ||||
| platform = espressif32@3.1.1 | ||||
| build_unflags = ${common.build_unflags} | ||||
| build_flags = ${common.build_flags_esp32} | ||||
| lib_ignore = | ||||
| @@ -268,7 +268,7 @@ lib_ignore = | ||||
|  | ||||
| [env:esp32_eth] | ||||
| board = esp32-poe | ||||
| platform = espressif32@2.0 | ||||
| platform = espressif32@3.1.1 | ||||
| upload_speed = 921600 | ||||
| build_unflags = ${common.build_unflags} | ||||
| build_flags = ${common.build_flags_esp32} -D RLYPIN=-1 -D WLED_USE_ETHERNET -D BTNPIN=-1 | ||||
| @@ -387,7 +387,7 @@ build_flags = ${common.build_flags_esp8266} -D USE_WS2801 | ||||
|  | ||||
| [env:custom32_LEDPIN_16] | ||||
| board = esp32dev | ||||
| platform = espressif32@2.0 | ||||
| platform = espressif32@3.1.1 | ||||
| build_unflags = ${common.build_unflags} | ||||
| build_flags = ${common.build_flags_esp32} -D LEDPIN=16 -D RLYPIN=19 | ||||
| lib_ignore = | ||||
| @@ -396,7 +396,7 @@ lib_ignore = | ||||
|  | ||||
| [env:custom32_APA102] | ||||
| board = esp32dev | ||||
| platform = espressif32@2.0 | ||||
| platform = espressif32@3.1.1 | ||||
| build_unflags = ${common.build_unflags} | ||||
| build_flags = ${common.build_flags_esp32} -D USE_APA102 | ||||
| lib_ignore = | ||||
| @@ -405,7 +405,7 @@ lib_ignore = | ||||
|  | ||||
| [env:custom32_TOUCHPIN_T0] | ||||
| board = esp32dev | ||||
| platform = espressif32@2.0 | ||||
| platform = espressif32@3.1.1 | ||||
| build_unflags = ${common.build_unflags} | ||||
| build_flags = ${common.build_flags_esp32} -D TOUCHPIN=T0 | ||||
| lib_ignore = | ||||
| @@ -414,7 +414,7 @@ lib_ignore = | ||||
|  | ||||
| [env:wemos_shield_esp32] | ||||
| board = esp32dev | ||||
| platform = espressif32@2.0 | ||||
| platform = espressif32@3.1.1 | ||||
| upload_port = /dev/cu.SLAB_USBtoUART | ||||
| monitor_port = /dev/cu.SLAB_USBtoUART | ||||
| upload_speed = 460800 | ||||
| @@ -431,7 +431,7 @@ build_flags = ${common.build_flags_esp32} -D LEDPIN=27 -D BTNPIN=39 | ||||
| lib_ignore = | ||||
| 	ESPAsyncTCP | ||||
| 	ESPAsyncUDP | ||||
| platform = espressif32@2.0 | ||||
| platform = espressif32@3.1.1 | ||||
|  | ||||
| [env:sp501e] | ||||
| board = esp_wroom_02 | ||||
|   | ||||
| @@ -4,7 +4,7 @@ default_envs = d1_mini | ||||
|  | ||||
| [env:esp32dev] | ||||
| board = esp32dev | ||||
| platform = espressif32@2.0 | ||||
| platform = espressif32@3.1.1 | ||||
| build_unflags = ${common.build_unflags} | ||||
| build_flags = | ||||
|     ${common.build_flags_esp32}  | ||||
|   | ||||
| @@ -584,7 +584,7 @@ class WS2812FX { | ||||
|     } | ||||
|  | ||||
|     void | ||||
|       finalizeInit(bool supportWhite, uint16_t countPixels, bool skipFirst), | ||||
|       finalizeInit(uint16_t countPixels, bool skipFirst), | ||||
|       service(void), | ||||
|       blur(uint8_t), | ||||
|       fill(uint32_t), | ||||
| @@ -608,6 +608,7 @@ class WS2812FX { | ||||
|       setPixelSegment(uint8_t n); | ||||
|  | ||||
|     bool | ||||
|       isRgbw = false, | ||||
|       gammaCorrectBri = false, | ||||
|       gammaCorrectCol = true, | ||||
|       applyToAllSelected = true, | ||||
| @@ -813,7 +814,6 @@ class WS2812FX { | ||||
|     void handle_palette(void); | ||||
|  | ||||
|     bool | ||||
|       _useRgbw = false, | ||||
|       _skipFirstMode, | ||||
|       _triggered; | ||||
|  | ||||
|   | ||||
| @@ -44,11 +44,9 @@ | ||||
| */ | ||||
|  | ||||
| //do not call this method from system context (network callback) | ||||
| void WS2812FX::finalizeInit(bool supportWhite, uint16_t countPixels, bool skipFirst) | ||||
| void WS2812FX::finalizeInit(uint16_t countPixels, bool skipFirst) | ||||
| { | ||||
|   if (supportWhite == _useRgbw && countPixels == _length && _skipFirstMode == skipFirst) return; | ||||
|   RESET_RUNTIME; | ||||
|   _useRgbw = supportWhite; | ||||
|   _length = countPixels; | ||||
|   _skipFirstMode = skipFirst; | ||||
|  | ||||
| @@ -163,7 +161,7 @@ uint16_t WS2812FX::realPixelIndex(uint16_t i) { | ||||
| void WS2812FX::setPixelColor(uint16_t i, byte r, byte g, byte b, byte w) | ||||
| { | ||||
|   //auto calculate white channel value if enabled | ||||
|   if (_useRgbw) { | ||||
|   if (isRgbw) { | ||||
|     if (rgbwMode == RGBW_MODE_AUTO_BRIGHTER || (w == 0 && (rgbwMode == RGBW_MODE_DUAL || rgbwMode == RGBW_MODE_LEGACY))) | ||||
|     { | ||||
|       //white value is set to lowest RGB channel | ||||
| @@ -278,7 +276,7 @@ void WS2812FX::show(void) { | ||||
|     } | ||||
|  | ||||
|  | ||||
|     if (_useRgbw) //RGBW led total output with white LEDs enabled is still 50mA, so each channel uses less | ||||
|     if (isRgbw) //RGBW led total output with white LEDs enabled is still 50mA, so each channel uses less | ||||
|     { | ||||
|       powerSum *= 3; | ||||
|       powerSum = powerSum >> 2; //same as /= 4 | ||||
|   | ||||
| @@ -67,7 +67,7 @@ void onAlexaChange(EspalexaDevice* dev) | ||||
|     if (espalexaDevice->getColorMode() == EspalexaColorMode::ct) //shade of white | ||||
|     { | ||||
|       uint16_t ct = espalexaDevice->getCt(); | ||||
|       if (useRGBW) | ||||
|       if (strip.isRgbw) | ||||
|       { | ||||
|         switch (ct) { //these values empirically look good on RGBW | ||||
|           case 199: col[0]=255; col[1]=255; col[2]=255; col[3]=255; break; | ||||
|   | ||||
| @@ -99,7 +99,7 @@ void deserializeConfig() { | ||||
|  | ||||
|   JsonArray ins = hw_led["ins"]; | ||||
|   uint8_t s = 0; //bus iterator | ||||
|   useRGBW = false; | ||||
|   strip.isRgbw = false; | ||||
|   busses.removeAll(); | ||||
|   uint32_t mem = 0; | ||||
|   for (JsonObject elm : ins) { | ||||
| @@ -127,13 +127,13 @@ void deserializeConfig() { | ||||
|     uint8_t ledType = elm["type"] | TYPE_WS2812_RGB; | ||||
|     bool reversed = elm["rev"]; | ||||
|     //RGBW mode is enabled if at least one of the strips is RGBW | ||||
|     useRGBW = (useRGBW || BusManager::isRgbw(ledType)); | ||||
|     strip.isRgbw = (strip.isRgbw || BusManager::isRgbw(ledType)); | ||||
|     s++; | ||||
|     BusConfig bc = BusConfig(ledType, pins, start, length, colorOrder, reversed); | ||||
|     mem += busses.memUsage(bc); | ||||
|     if (mem <= MAX_LED_MEMORY) busses.add(bc); | ||||
|   } | ||||
|   strip.finalizeInit(useRGBW, ledCount, skipFirstLed); | ||||
|   strip.finalizeInit(ledCount, skipFirstLed); | ||||
|   if (hw_led["rev"]) busses.getBus(0)->reversed = true; //set 0.11 global reversed setting for first bus | ||||
|  | ||||
|   JsonObject hw_btn_ins_0 = hw[F("btn")][F("ins")][0]; | ||||
| @@ -491,7 +491,7 @@ void serializeConfig() { | ||||
|   if (irPin>=0) { | ||||
|     JsonObject hw_ir = hw.createNestedObject("ir"); | ||||
|     hw_ir["pin"] = irPin; | ||||
|     hw_ir[F("type"] = irEnabled;              // the byte 'irEnabled' does contain the IR-Remote Type ( 0=disabled ) | ||||
|     hw_ir[F("type")] = irEnabled;              // the byte 'irEnabled' does contain the IR-Remote Type ( 0=disabled ) | ||||
|   } | ||||
|   #endif | ||||
|  | ||||
|   | ||||
| @@ -64,7 +64,7 @@ void colorHStoRGB(uint16_t hue, byte sat, byte* rgb) //hue, sat to rgb | ||||
|     case 4: rgb[0]=t,rgb[1]=p,rgb[2]=255;break; | ||||
|     case 5: rgb[0]=255,rgb[1]=p,rgb[2]=q; | ||||
|   } | ||||
|   if (useRGBW && strip.rgbwMode == RGBW_MODE_LEGACY) colorRGBtoRGBW(col); | ||||
|   if (strip.isRgbw && strip.rgbwMode == RGBW_MODE_LEGACY) colorRGBtoRGBW(col); | ||||
| } | ||||
|  | ||||
| void colorKtoRGB(uint16_t kelvin, byte* rgb) //white spectrum to rgb, calc | ||||
| @@ -111,7 +111,7 @@ void colorCTtoRGB(uint16_t mired, byte* rgb) //white spectrum to rgb, bins | ||||
|   } else { | ||||
|     rgb[0]=237;rgb[1]=255;rgb[2]=239;//150 | ||||
|   } | ||||
|   if (useRGBW && strip.rgbwMode == RGBW_MODE_LEGACY) colorRGBtoRGBW(col); | ||||
|   if (strip.isRgbw && strip.rgbwMode == RGBW_MODE_LEGACY) colorRGBtoRGBW(col); | ||||
| } | ||||
|  | ||||
| #ifndef WLED_DISABLE_HUESYNC | ||||
| @@ -169,7 +169,7 @@ void colorXYtoRGB(float x, float y, byte* rgb) //coordinates to rgb (https://www | ||||
|   rgb[0] = 255.0*r; | ||||
|   rgb[1] = 255.0*g; | ||||
|   rgb[2] = 255.0*b; | ||||
|   if (useRGBW && strip.rgbwMode == RGBW_MODE_LEGACY) colorRGBtoRGBW(col); | ||||
|   if (strip.isRgbw && strip.rgbwMode == RGBW_MODE_LEGACY) colorRGBtoRGBW(col); | ||||
| } | ||||
|  | ||||
| void colorRGBtoXY(byte* rgb, float* xy) //rgb to coordinates (https://www.developers.meethue.com/documentation/color-conversions-rgb-xy) | ||||
|   | ||||
| @@ -913,6 +913,7 @@ input[type=number]::-webkit-outer-spin-button { | ||||
| } | ||||
|  | ||||
| .lstI { | ||||
|   position: sticky; | ||||
|   overflow: hidden; | ||||
| } | ||||
|  | ||||
| @@ -930,7 +931,6 @@ input[type=number]::-webkit-outer-spin-button { | ||||
| } | ||||
|  | ||||
| .lstI.sticky, .lstI.selected { | ||||
| 	position: sticky; | ||||
| 	z-index: 1; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -42,7 +42,7 @@ function B(){window.history.back()}function U(){document.getElementById("uf").st | ||||
| .bt{background:#333;color:#fff;font-family:Verdana,sans-serif;border:.3ch solid #333;display:inline-block;font-size:20px;margin:8px;margin-top:12px}input[type=file]{font-size:16px}body{font-family:Verdana,sans-serif;text-align:center;background:#222;color:#fff;line-height:200%}#msg{display:none} | ||||
| </style></head><body><h2>WLED Software Update</h2><form method="POST"  | ||||
| action="/update" id="uf" enctype="multipart/form-data" onsubmit="U()"> | ||||
| Installed version: 0.12.0<br>Download the latest binary: <a  | ||||
| Installed version: 0.12.0-b4<br>Download the latest binary: <a  | ||||
| href="https://github.com/Aircoookie/WLED/releases" target="_blank"><img  | ||||
| src="https://img.shields.io/github/release/Aircoookie/WLED.svg?style=flat-square"> | ||||
| </a><br><input type="file" class="bt" name="update" accept=".bin" required><br> | ||||
|   | ||||
| @@ -375,7 +375,7 @@ HTTP traffic is unencrypted. An attacker in the same network can intercept form | ||||
| <h3>Software Update</h3><button type="button" onclick="U()">Manual OTA Update | ||||
| </button><br>Enable ArduinoOTA: <input type="checkbox" name="AO"><br><h3>About | ||||
| </h3><a href="https://github.com/Aircoookie/WLED/" target="_blank">WLED</a> | ||||
|  version 0.12.0<br><br><a  | ||||
|  version 0.12.0-b4<br><br><a  | ||||
| href="https://github.com/Aircoookie/WLED/wiki/Contributors-and-credits"  | ||||
| target="_blank">Contributors, dependencies and special thanks</a><br> | ||||
| A huge thank you to everyone who helped me create WLED!<br><br> | ||||
|   | ||||
							
								
								
									
										4152
									
								
								wled00/html_ui.h
									
									
									
									
									
								
							
							
						
						
									
										4152
									
								
								wled00/html_ui.h
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -345,19 +345,19 @@ void decodeIR40(uint32_t code) | ||||
|     case IR40_MAGENTA      : colorFromUint24(COLOR_MAGENTA);                             break; | ||||
|     case IR40_PINK         : colorFromUint24(COLOR_PINK);                                break; | ||||
|     case IR40_WARMWHITE2   : { | ||||
|       if (useRGBW) {        colorFromUint32(COLOR2_WARMWHITE2);   effectCurrent = 0; }     | ||||
|       if (strip.isRgbw) {        colorFromUint32(COLOR2_WARMWHITE2);   effectCurrent = 0; }     | ||||
|       else                  colorFromUint24(COLOR_WARMWHITE2);                       }   break; | ||||
|     case IR40_WARMWHITE    : { | ||||
|       if (useRGBW) {        colorFromUint32(COLOR2_WARMWHITE);    effectCurrent = 0; }     | ||||
|       if (strip.isRgbw) {        colorFromUint32(COLOR2_WARMWHITE);    effectCurrent = 0; }     | ||||
|       else                  colorFromUint24(COLOR_WARMWHITE);                        }   break; | ||||
|     case IR40_WHITE        : { | ||||
|       if (useRGBW) {        colorFromUint32(COLOR2_NEUTRALWHITE); effectCurrent = 0; }     | ||||
|       if (strip.isRgbw) {        colorFromUint32(COLOR2_NEUTRALWHITE); effectCurrent = 0; }     | ||||
|       else                  colorFromUint24(COLOR_NEUTRALWHITE);                     }   break; | ||||
|     case IR40_COLDWHITE    : { | ||||
|       if (useRGBW) {        colorFromUint32(COLOR2_COLDWHITE);    effectCurrent = 0; }    | ||||
|       if (strip.isRgbw) {        colorFromUint32(COLOR2_COLDWHITE);    effectCurrent = 0; }    | ||||
|       else                  colorFromUint24(COLOR_COLDWHITE);                        }   break; | ||||
|     case IR40_COLDWHITE2    : { | ||||
|       if (useRGBW) {        colorFromUint32(COLOR2_COLDWHITE2);   effectCurrent = 0; }    | ||||
|       if (strip.isRgbw) {        colorFromUint32(COLOR2_COLDWHITE2);   effectCurrent = 0; }    | ||||
|       else                  colorFromUint24(COLOR_COLDWHITE2);                       }   break; | ||||
|     case IR40_WPLUS        : relativeChangeWhite(10);                                    break; | ||||
|     case IR40_WMINUS       : relativeChangeWhite(-10, 5);                                break; | ||||
| @@ -402,21 +402,21 @@ void decodeIR44(uint32_t code) | ||||
|     case IR44_MAGENTA     : colorFromUint24(COLOR_MAGENTA);                             break; | ||||
|     case IR44_PINK        : colorFromUint24(COLOR_PINK);                                break; | ||||
|     case IR44_WHITE       : { | ||||
|       if (useRGBW) { | ||||
|       if (strip.isRgbw) { | ||||
|         if (col[3] > 0) col[3] = 0;  | ||||
|         else {              colorFromUint32(COLOR2_NEUTRALWHITE); effectCurrent = 0; } | ||||
|       } else                colorFromUint24(COLOR_NEUTRALWHITE);                     }  break; | ||||
|     case IR44_WARMWHITE2  : { | ||||
|       if (useRGBW) {        colorFromUint32(COLOR2_WARMWHITE2);   effectCurrent = 0; }     | ||||
|       if (strip.isRgbw) {        colorFromUint32(COLOR2_WARMWHITE2);   effectCurrent = 0; }     | ||||
|       else                  colorFromUint24(COLOR_WARMWHITE2);                       }  break; | ||||
|     case IR44_WARMWHITE   : { | ||||
|       if (useRGBW) {        colorFromUint32(COLOR2_WARMWHITE);    effectCurrent = 0; }     | ||||
|       if (strip.isRgbw) {        colorFromUint32(COLOR2_WARMWHITE);    effectCurrent = 0; }     | ||||
|       else                  colorFromUint24(COLOR_WARMWHITE);                        }  break; | ||||
|     case IR44_COLDWHITE   : { | ||||
|       if (useRGBW) {        colorFromUint32(COLOR2_COLDWHITE);    effectCurrent = 0; }    | ||||
|       if (strip.isRgbw) {        colorFromUint32(COLOR2_COLDWHITE);    effectCurrent = 0; }    | ||||
|       else                  colorFromUint24(COLOR_COLDWHITE);                        }  break; | ||||
|     case IR44_COLDWHITE2  : { | ||||
|       if (useRGBW) {        colorFromUint32(COLOR2_COLDWHITE2);   effectCurrent = 0; }     | ||||
|       if (strip.isRgbw) {        colorFromUint32(COLOR2_COLDWHITE2);   effectCurrent = 0; }     | ||||
|       else                  colorFromUint24(COLOR_COLDWHITE2);                       }  break; | ||||
|     case IR44_REDPLUS     : relativeChange(&effectCurrent,  1, 0, MODE_COUNT);          break; | ||||
|     case IR44_REDMINUS    : relativeChange(&effectCurrent, -1, 0);                      break; | ||||
|   | ||||
| @@ -313,15 +313,15 @@ void serializeSegment(JsonObject& root, WS2812FX::Segment& seg, byte id, bool fo | ||||
|     if (id == strip.getMainSegmentId() && i < 2) //temporary, to make transition work on main segment | ||||
|     { | ||||
|       if (i == 0) { | ||||
|         colX.add(col[0]); colX.add(col[1]); colX.add(col[2]); if (useRGBW) colX.add(col[3]); | ||||
|         colX.add(col[0]); colX.add(col[1]); colX.add(col[2]); if (strip.isRgbw) colX.add(col[3]); | ||||
|       } else { | ||||
|          colX.add(colSec[0]); colX.add(colSec[1]); colX.add(colSec[2]); if (useRGBW) colX.add(colSec[3]); | ||||
|          colX.add(colSec[0]); colX.add(colSec[1]); colX.add(colSec[2]); if (strip.isRgbw) colX.add(colSec[3]); | ||||
|       } | ||||
|     } else { | ||||
|   		colX.add((seg.colors[i] >> 16) & 0xFF); | ||||
|   		colX.add((seg.colors[i] >> 8) & 0xFF); | ||||
|   		colX.add((seg.colors[i]) & 0xFF); | ||||
|   		if (useRGBW) | ||||
|   		if (strip.isRgbw) | ||||
|   			colX.add((seg.colors[i] >> 24) & 0xFF); | ||||
|     } | ||||
| 	} | ||||
| @@ -421,8 +421,8 @@ void serializeInfo(JsonObject root) | ||||
|  | ||||
|   JsonObject leds = root.createNestedObject("leds"); | ||||
|   leds[F("count")] = ledCount; | ||||
|   leds[F("rgbw")] = useRGBW; | ||||
|   leds[F("wv")] = useRGBW && (strip.rgbwMode == RGBW_MODE_MANUAL_ONLY || strip.rgbwMode == RGBW_MODE_DUAL); //should a white channel slider be displayed? | ||||
|   leds[F("rgbw")] = strip.isRgbw; | ||||
|   leds[F("wv")] = strip.isRgbw && (strip.rgbwMode == RGBW_MODE_MANUAL_ONLY || strip.rgbwMode == RGBW_MODE_DUAL); //should a white channel slider be displayed? | ||||
|   JsonArray leds_pin = leds.createNestedArray("pin"); | ||||
|   leds_pin.add(LEDPIN); | ||||
|  | ||||
|   | ||||
| @@ -50,14 +50,14 @@ void setAllLeds() { | ||||
|   { | ||||
|     strip.setBrightness(scaledBri(briT)); | ||||
|   } | ||||
|   if (useRGBW && strip.rgbwMode == RGBW_MODE_LEGACY) | ||||
|   if (strip.isRgbw && strip.rgbwMode == RGBW_MODE_LEGACY) | ||||
|   { | ||||
|     colorRGBtoRGBW(col); | ||||
|     colorRGBtoRGBW(colSec); | ||||
|   } | ||||
|   strip.setColor(0, col[0], col[1], col[2], col[3]); | ||||
|   strip.setColor(1, colSec[0], colSec[1], colSec[2], colSec[3]); | ||||
|   if (useRGBW && strip.rgbwMode == RGBW_MODE_LEGACY) | ||||
|   if (strip.isRgbw && strip.rgbwMode == RGBW_MODE_LEGACY) | ||||
|   { | ||||
|     col[3] = 0; colSec[3] = 0; | ||||
|   } | ||||
|   | ||||
| @@ -105,8 +105,8 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) | ||||
|         pins[i] = (request->arg(lp).length() > 0) ? request->arg(lp).toInt() : 255; | ||||
|       } | ||||
|       type = request->arg(lt).toInt(); | ||||
|       //if (isRgbw(type)) useRGBW = true; //30fps | ||||
|       //useRGBW = true; | ||||
|       //if (isRgbw(type)) strip.isRgbw = true; //30fps | ||||
|       //strip.isRgbw = true; | ||||
|        | ||||
|       if (request->hasArg(lc) && request->arg(lc).toInt() > 0) { | ||||
|         length = request->arg(lc).toInt(); | ||||
| @@ -119,8 +119,8 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) | ||||
|  | ||||
|       if (busConfigs[s] != nullptr) delete busConfigs[s]; | ||||
|       busConfigs[s] = new BusConfig(type, pins, start, length, colorOrder, request->hasArg(cv)); | ||||
|       //if (BusManager::isRgbw(type)) useRGBW = true; //20fps | ||||
|       //useRGBW = true; | ||||
|       //if (BusManager::isRgbw(type)) strip.isRgbw = true; //20fps | ||||
|       //strip.isRgbw = true; | ||||
|       doInitBusses = true; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -241,15 +241,16 @@ void WLED::loop() | ||||
|     doInitBusses = false; | ||||
|     busses.removeAll(); | ||||
|     uint32_t mem = 0; | ||||
|     //useRGBW = false; | ||||
|     strip.isRgbw = false; | ||||
|     for (uint8_t i = 0; i < WLED_MAX_BUSSES; i++) { | ||||
|       if (busConfigs[i] == nullptr) break; | ||||
|       mem += busses.memUsage(*busConfigs[i]); | ||||
|       if (mem <= MAX_LED_MEMORY) busses.add(*busConfigs[i]); | ||||
|       //if (BusManager::isRgbw(busConfigs[i]->type)) useRGBW = true; | ||||
|       //if (BusManager::isRgbw(busConfigs[i]->type)) strip.isRgbw = true; | ||||
|       strip.isRgbw = (strip.isRgbw || BusManager::isRgbw(busConfigs[i]->type)); | ||||
|       delete busConfigs[i]; busConfigs[i] = nullptr; | ||||
|     } | ||||
|     strip.finalizeInit(useRGBW, ledCount, skipFirstLed); | ||||
|     strip.finalizeInit(ledCount, skipFirstLed); | ||||
|     yield(); | ||||
|     serializeConfig(); | ||||
|   } | ||||
| @@ -396,7 +397,7 @@ void WLED::beginStrip() | ||||
|   if (ledCount > MAX_LEDS || ledCount == 0) | ||||
|     ledCount = 30; | ||||
|  | ||||
|   strip.finalizeInit(useRGBW, ledCount, skipFirstLed); | ||||
|   strip.finalizeInit(ledCount, skipFirstLed); | ||||
|   strip.setBrightness(0); | ||||
|   strip.setShowCallback(handleOverlayDraw); | ||||
|  | ||||
|   | ||||
| @@ -3,12 +3,12 @@ | ||||
| /* | ||||
|    Main sketch, global variable declarations | ||||
|    @title WLED project sketch | ||||
|    @version 0.12.0 | ||||
|    @version 0.12.0-b4 | ||||
|    @author Christian Schwinne | ||||
|  */ | ||||
|  | ||||
| // version code in format yymmddb (b = daily build) | ||||
| #define VERSION 2103250 | ||||
| #define VERSION 2103290 | ||||
|  | ||||
| //uncomment this if you have a "my_config.h" file you'd like to use | ||||
| //#define WLED_USE_MY_CONFIG | ||||
| @@ -135,12 +135,6 @@ | ||||
|   Comment out this error message to build regardless. | ||||
| #endif | ||||
|  | ||||
| #if !defined(IRPIN) || IRPIN < 0 | ||||
|   #ifndef WLED_DISABLE_INFRARED | ||||
|     #define WLED_DISABLE_INFRARED | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| #ifndef WLED_DISABLE_INFRARED | ||||
|   #include <IRremoteESP8266.h> | ||||
|   #include <IRrecv.h> | ||||
| @@ -174,7 +168,7 @@ | ||||
| #endif | ||||
|  | ||||
| // Global Variable definitions | ||||
| WLED_GLOBAL char versionString[] _INIT("0.12.0"); | ||||
| WLED_GLOBAL char versionString[] _INIT("0.12.0-b4"); | ||||
| #define WLED_CODENAME "Hikari" | ||||
|  | ||||
| // AP and OTA default passwords (for maximum security change them!) | ||||
| @@ -231,7 +225,6 @@ WLED_GLOBAL bool noWifiSleep _INIT(false);                         // disabling | ||||
|  | ||||
| // LED CONFIG | ||||
| WLED_GLOBAL uint16_t ledCount _INIT(30);          // overcurrent prevented by ABL | ||||
| WLED_GLOBAL bool useRGBW      _INIT(false);       // SK6812 strips can contain an extra White channel | ||||
| WLED_GLOBAL bool turnOnAtBoot _INIT(true);        // turn on LEDs at power-up | ||||
| WLED_GLOBAL byte bootPreset   _INIT(0);           // save preset to load after power-up | ||||
|  | ||||
|   | ||||
| @@ -143,7 +143,7 @@ void loadSettingsFromEEPROM() | ||||
|   arlsOffset = EEPROM.read(368); | ||||
|   if (!EEPROM.read(367)) arlsOffset = -arlsOffset; | ||||
|   turnOnAtBoot = EEPROM.read(369); | ||||
|   useRGBW = EEPROM.read(372); | ||||
|   strip.isRgbw = EEPROM.read(372); | ||||
|   //374 - strip.paletteFade | ||||
|    | ||||
|   apBehavior = EEPROM.read(376); | ||||
| @@ -406,7 +406,7 @@ void deEEP() { | ||||
|  | ||||
|         JsonArray colarr = segObj.createNestedArray("col"); | ||||
|  | ||||
|         byte numChannels = (useRGBW)? 4:3; | ||||
|         byte numChannels = (strip.isRgbw)? 4:3; | ||||
|  | ||||
|         for (uint8_t k = 0; k < 3; k++) //k=0 primary (i+2) k=1 secondary (i+6) k=2 tertiary color (i+12) | ||||
|         { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 cschwinne
					cschwinne