mirror of
https://github.com/wled/WLED.git
synced 2025-04-25 15:27:19 +00:00
parent
b3acc97d03
commit
886120fe9f
@ -466,7 +466,22 @@ void BusPwm::setPixelColor(uint16_t pix, uint32_t c) {
|
|||||||
//does no index check
|
//does no index check
|
||||||
uint32_t BusPwm::getPixelColor(uint16_t pix) {
|
uint32_t BusPwm::getPixelColor(uint16_t pix) {
|
||||||
if (!_valid) return 0;
|
if (!_valid) return 0;
|
||||||
|
// 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]);
|
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
|
#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) {
|
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;
|
void* busPtr = nullptr;
|
||||||
switch (busType) {
|
switch (busType) {
|
||||||
case I_NONE: break;
|
case I_NONE: break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user