Fysetc LCD backlight timeout (#14265)
This commit is contained in:
@ -148,4 +148,18 @@ void LEDLights::set_color(const LEDColor &incol
|
||||
void LEDLights::toggle() { if (lights_on) set_off(); else update(); }
|
||||
#endif
|
||||
|
||||
#ifdef LED_BACKLIGHT_TIMEOUT
|
||||
|
||||
millis_t LEDLights::led_off_time; // = 0
|
||||
|
||||
void LEDLights::update_timeout(const bool power_on) {
|
||||
const millis_t ms = millis();
|
||||
if (power_on)
|
||||
reset_timeout(ms);
|
||||
else if (ELAPSED(ms, led_off_time))
|
||||
set_off();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif // HAS_COLOR_LEDS
|
||||
|
@ -201,6 +201,17 @@ public:
|
||||
static void toggle(); // swap "off" with color
|
||||
static inline void update() { set_color(color); }
|
||||
#endif
|
||||
|
||||
#ifdef LED_BACKLIGHT_TIMEOUT
|
||||
private:
|
||||
static millis_t led_off_time;
|
||||
public:
|
||||
static inline void reset_timeout(const millis_t &ms) {
|
||||
led_off_time = ms + LED_BACKLIGHT_TIMEOUT;
|
||||
if (!lights_on) set_default();
|
||||
}
|
||||
static void update_timeout(const bool power_on);
|
||||
#endif
|
||||
};
|
||||
|
||||
extern LEDLights leds;
|
||||
|
@ -36,10 +36,20 @@
|
||||
|
||||
Adafruit_NeoPixel pixels(NEOPIXEL_PIXELS, NEOPIXEL_PIN, NEOPIXEL_TYPE + NEO_KHZ800);
|
||||
|
||||
#ifdef NEOPIXEL_BKGD_LED_INDEX
|
||||
void set_neopixel_color_background() {
|
||||
uint8_t background_color[4] = NEOPIXEL_BKGD_COLOR;
|
||||
pixels.setPixelColor(NEOPIXEL_BKGD_LED_INDEX, pixels.Color(background_color[0], background_color[1], background_color[2], background_color[3]));
|
||||
}
|
||||
#endif
|
||||
|
||||
void set_neopixel_color(const uint32_t color) {
|
||||
for (uint16_t i = 0; i < pixels.numPixels(); ++i) {
|
||||
#ifdef NEOPIXEL_BKGD_LED_INDEX
|
||||
if (NEOPIXEL_BKGD_LED_INDEX == i) i++;
|
||||
if (i == NEOPIXEL_BKGD_LED_INDEX && color != 0x000000) {
|
||||
set_neopixel_color_background();
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
pixels.setPixelColor(i, color);
|
||||
}
|
||||
@ -52,14 +62,6 @@ void set_neopixel_color_startup(const uint32_t color) {
|
||||
pixels.show();
|
||||
}
|
||||
|
||||
#ifdef NEOPIXEL_BKGD_LED_INDEX
|
||||
void set_neopixel_color_background() {
|
||||
uint8_t background_color[4] = NEOPIXEL_BKGD_COLOR;
|
||||
pixels.setPixelColor(NEOPIXEL_BKGD_LED_INDEX, pixels.Color(background_color[0], background_color[1], background_color[2], background_color[3]));
|
||||
pixels.show();
|
||||
}
|
||||
#endif
|
||||
|
||||
void setup_neopixel() {
|
||||
SET_OUTPUT(NEOPIXEL_PIN);
|
||||
pixels.setBrightness(NEOPIXEL_BRIGHTNESS); // 0 - 255 range
|
||||
|
Reference in New Issue
Block a user