mirror of
https://github.com/wled/WLED.git
synced 2025-04-23 22:37:18 +00:00
parent
b3acc97d03
commit
886120fe9f
@ -466,7 +466,22 @@ void BusPwm::setPixelColor(uint16_t pix, uint32_t c) {
|
||||
//does no index check
|
||||
uint32_t BusPwm::getPixelColor(uint16_t pix) {
|
||||
if (!_valid) return 0;
|
||||
return RGBW32(_data[0], _data[1], _data[2], _data[3]);
|
||||
// TODO getting the reverse from CCT is involved (a quick approximation when CCT blending is ste to 0 implemented)
|
||||
switch (_type) {
|
||||
case TYPE_ANALOG_1CH: //one channel (white), relies on auto white calculation
|
||||
return RGBW32(0, 0, 0, _data[0]);
|
||||
case TYPE_ANALOG_2CH: //warm white + cold white
|
||||
if (cctICused) return RGBW32(0, 0, 0, _data[0]);
|
||||
else return RGBW32(0, 0, 0, _data[0] + _data[1]);
|
||||
case TYPE_ANALOG_5CH: //RGB + warm white + cold white
|
||||
if (cctICused) return RGBW32(_data[0], _data[1], _data[2], _data[3]);
|
||||
else return RGBW32(_data[0], _data[1], _data[2], _data[3] + _data[4]);
|
||||
case TYPE_ANALOG_4CH: //RGBW
|
||||
return RGBW32(_data[0], _data[1], _data[2], _data[3]);
|
||||
case TYPE_ANALOG_3CH: //standard dumb RGB
|
||||
return RGBW32(_data[0], _data[1], _data[2], 0);
|
||||
}
|
||||
return RGBW32(_data[0], _data[0], _data[0], _data[0]);
|
||||
}
|
||||
|
||||
#ifndef ESP8266
|
||||
|
@ -496,6 +496,11 @@ class PolyBus {
|
||||
}
|
||||
|
||||
static void* create(uint8_t busType, uint8_t* pins, uint16_t len, uint8_t channel, uint16_t clock_kHz = 0U) {
|
||||
#if defined(ARDUINO_ARCH_ESP32) && !(defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32S3) || defined(CONFIG_IDF_TARGET_ESP32C3))
|
||||
// NOTE: "channel" is only used on ESP32 (and its variants) for RMT channel allocation
|
||||
// since 0.15.0-b3 I2S1 is favoured for classic ESP32 and moved to position 0 (channel 0) so we need to subtract 1 for correct RMT allocation
|
||||
if (channel > 1) channel--; // accommodate I2S1 which is used as 1st bus on classic ESP32
|
||||
#endif
|
||||
void* busPtr = nullptr;
|
||||
switch (busType) {
|
||||
case I_NONE: break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user