diff --git a/wled00/bus_manager.h b/wled00/bus_manager.h index a5c88daf8..b3dc29d0b 100644 --- a/wled00/bus_manager.h +++ b/wled00/bus_manager.h @@ -170,6 +170,7 @@ class Bus { static bool isRgbw(uint8_t type) { if (type == TYPE_SK6812_RGBW || type == TYPE_TM1814) return true; if (type > TYPE_ONOFF && type <= TYPE_ANALOG_5CH && type != TYPE_ANALOG_3CH) return true; + if (type == TYPE_NET_DDP_RGBW) return true; return false; } virtual bool hasRGB() { @@ -178,7 +179,7 @@ class Bus { } virtual bool hasWhite() { if (_type == TYPE_SK6812_RGBW || _type == TYPE_TM1814 || _type == TYPE_WS2812_1CH || _type == TYPE_WS2812_WWA || - _type == TYPE_ANALOG_1CH || _type == TYPE_ANALOG_2CH || _type == TYPE_ANALOG_4CH || _type == TYPE_ANALOG_5CH) return true; + _type == TYPE_ANALOG_1CH || _type == TYPE_ANALOG_2CH || _type == TYPE_ANALOG_4CH || _type == TYPE_ANALOG_5CH || _type == TYPE_NET_DDP_RGBW) return true; return false; } static void setCCT(uint16_t cct) { @@ -573,9 +574,9 @@ class BusNetwork : public Bus { // _rgbw = false; // _UDPtype = 0; // break; -// default: - _rgbw = false; - _UDPtype = bc.type - TYPE_NET_DDP_RGB; +// default: // TYPE_NET_DDP_RGB / TYPE_NET_DDP_RGBW + _rgbw = bc.type == TYPE_NET_DDP_RGBW; + _UDPtype = 0; // break; // } _UDPchannels = _rgbw ? 4 : 3; diff --git a/wled00/const.h b/wled00/const.h index c1676bc4c..322c32b99 100644 --- a/wled00/const.h +++ b/wled00/const.h @@ -172,8 +172,9 @@ #define TYPE_LPD6803 54 //Network types (master broadcast) (80-95) #define TYPE_NET_DDP_RGB 80 //network DDP RGB bus (master broadcast bus) -#define TYPE_NET_E131_RGB 81 //network E131 RGB bus (master broadcast bus) -#define TYPE_NET_ARTNET_RGB 82 //network ArtNet RGB bus (master broadcast bus) +#define TYPE_NET_E131_RGB 81 //network E131 RGB bus (master broadcast bus, unused) +#define TYPE_NET_ARTNET_RGB 82 //network ArtNet RGB bus (master broadcast bus, unused) +#define TYPE_NET_DDP_RGBW 88 //network DDP RGBW bus (master broadcast bus) #define IS_DIGITAL(t) ((t) & 0x10) //digital are 16-31 and 48-63 #define IS_PWM(t) ((t) > 40 && (t) < 46) diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm index 3a6c3901a..a7afd9890 100644 --- a/wled00/data/settings_leds.htm +++ b/wled00/data/settings_leds.htm @@ -177,7 +177,7 @@ if (t > 31 && t < 48) d.getElementsByName("LC"+n)[0].value = 1; // for sanity change analog count just to 1 LED } gId("rf"+n).onclick = (t == 31) ? (()=>{return false}) : (()=>{}); // prevent change for TM1814 - isRGBW |= (t == 30 || t == 31 || (t > 40 && t < 46 && t != 43)); // RGBW checkbox, TYPE_xxxx values from const.h + isRGBW = (t == 30 || t == 31 || (t > 40 && t < 46 && t != 43) || t == 88); // RGBW checkbox, TYPE_xxxx values from const.h gId("co"+n).style.display = ((t >= 80 && t < 96) || (t >= 40 && t < 48)) ? "none":"inline"; // hide color order for PWM gId("dig"+n+"w").style.display = (t == 30 || t == 31) ? "inline":"none"; // show swap channels dropdown if (!(t == 30 || t == 31)) d.getElementsByName("WO"+n)[0].value = 0; // reset swapping @@ -332,6 +332,7 @@ ${i+1}: +
Color Order: