Modifications to 4LD
This commit is contained in:
parent
1e947a34a8
commit
1ce325ee8a
@ -264,7 +264,7 @@ class FourLineDisplayUsermod : public Usermod {
|
|||||||
bool enabled = true;
|
bool enabled = true;
|
||||||
|
|
||||||
// needRedraw marks if redraw is required to prevent often redrawing.
|
// needRedraw marks if redraw is required to prevent often redrawing.
|
||||||
bool needRedraw = true;
|
//bool needRedraw = true;
|
||||||
|
|
||||||
// Next variables hold the previous known values to determine if redraw is
|
// Next variables hold the previous known values to determine if redraw is
|
||||||
// required.
|
// required.
|
||||||
@ -466,6 +466,7 @@ class FourLineDisplayUsermod : public Usermod {
|
|||||||
* or if forceRedraw).
|
* or if forceRedraw).
|
||||||
*/
|
*/
|
||||||
void redraw(bool forceRedraw) {
|
void redraw(bool forceRedraw) {
|
||||||
|
bool needRedraw = false;
|
||||||
unsigned long now = millis();
|
unsigned long now = millis();
|
||||||
|
|
||||||
if (type == NONE || !enabled) return;
|
if (type == NONE || !enabled) return;
|
||||||
@ -489,6 +490,7 @@ class FourLineDisplayUsermod : public Usermod {
|
|||||||
} else if ((bri == 0 && powerON) || (bri > 0 && !powerON)) { //trigger power icon
|
} else if ((bri == 0 && powerON) || (bri > 0 && !powerON)) { //trigger power icon
|
||||||
powerON = !powerON;
|
powerON = !powerON;
|
||||||
drawStatusIcons();
|
drawStatusIcons();
|
||||||
|
updateBrightness();
|
||||||
lastRedraw = millis();
|
lastRedraw = millis();
|
||||||
return;
|
return;
|
||||||
} else if (knownnightlight != nightlightActive) { //trigger moon icon
|
} else if (knownnightlight != nightlightActive) { //trigger moon icon
|
||||||
@ -505,27 +507,27 @@ class FourLineDisplayUsermod : public Usermod {
|
|||||||
} else if (knownMode != effectCurrent) {
|
} else if (knownMode != effectCurrent) {
|
||||||
knownMode = effectCurrent;
|
knownMode = effectCurrent;
|
||||||
if (displayTurnedOff) needRedraw = true;
|
if (displayTurnedOff) needRedraw = true;
|
||||||
else showCurrentEffectOrPalette(knownMode, JSON_mode_names, 3);
|
else { showCurrentEffectOrPalette(knownMode, JSON_mode_names, 3); return; }
|
||||||
} else if (knownPalette != effectPalette) {
|
} else if (knownPalette != effectPalette) {
|
||||||
knownPalette = effectPalette;
|
knownPalette = effectPalette;
|
||||||
if (displayTurnedOff) needRedraw = true;
|
if (displayTurnedOff) needRedraw = true;
|
||||||
else showCurrentEffectOrPalette(knownPalette, JSON_palette_names, 2);
|
else { showCurrentEffectOrPalette(knownPalette, JSON_palette_names, 2); return; }
|
||||||
} else if (knownBrightness != bri) {
|
} else if (knownBrightness != bri) {
|
||||||
if (displayTurnedOff && nightlightActive) { needRedraw = false; knownBrightness = bri; }
|
if (displayTurnedOff && nightlightActive) { needRedraw = false; knownBrightness = bri; }
|
||||||
else if (displayTurnedOff) needRedraw = true;
|
else if (displayTurnedOff) needRedraw = true;
|
||||||
else updateBrightness();
|
else { updateBrightness(); return; }
|
||||||
} else if (knownEffectSpeed != effectSpeed) {
|
} else if (knownEffectSpeed != effectSpeed) {
|
||||||
if (displayTurnedOff) needRedraw = true;
|
if (displayTurnedOff) needRedraw = true;
|
||||||
else updateSpeed();
|
else { updateSpeed(); return; }
|
||||||
} else if (knownEffectIntensity != effectIntensity) {
|
} else if (knownEffectIntensity != effectIntensity) {
|
||||||
if (displayTurnedOff) needRedraw = true;
|
if (displayTurnedOff) needRedraw = true;
|
||||||
else updateIntensity();
|
else { updateIntensity(); return; }
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!needRedraw) {
|
if (!needRedraw) {
|
||||||
// Nothing to change.
|
// Nothing to change.
|
||||||
// Turn off display after 1 minutes with no change.
|
// Turn off display after 1 minutes with no change.
|
||||||
if (sleepMode && !displayTurnedOff && (now - lastRedraw > screenTimeout)) {
|
if (sleepMode && !displayTurnedOff && (millis() - lastRedraw > screenTimeout)) {
|
||||||
// We will still check if there is a change in redraw()
|
// We will still check if there is a change in redraw()
|
||||||
// and turn it back on if it changed.
|
// and turn it back on if it changed.
|
||||||
clear();
|
clear();
|
||||||
@ -536,14 +538,10 @@ class FourLineDisplayUsermod : public Usermod {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
needRedraw = false;
|
lastRedraw = now;
|
||||||
lastRedraw = millis();
|
|
||||||
|
|
||||||
if (displayTurnedOff) {
|
|
||||||
// Turn the display back on
|
// Turn the display back on
|
||||||
sleepOrClock(false);
|
wakeDisplay();
|
||||||
clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update last known values.
|
// Update last known values.
|
||||||
knownBrightness = bri;
|
knownBrightness = bri;
|
||||||
@ -707,12 +705,10 @@ class FourLineDisplayUsermod : public Usermod {
|
|||||||
*/
|
*/
|
||||||
bool wakeDisplay() {
|
bool wakeDisplay() {
|
||||||
if (type == NONE || !enabled) return false;
|
if (type == NONE || !enabled) return false;
|
||||||
knownHour = 99;
|
|
||||||
if (displayTurnedOff) {
|
if (displayTurnedOff) {
|
||||||
clear();
|
clear();
|
||||||
// Turn the display back on
|
// Turn the display back on
|
||||||
sleepOrClock(false);
|
sleepOrClock(false);
|
||||||
redraw(true);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -724,13 +720,9 @@ class FourLineDisplayUsermod : public Usermod {
|
|||||||
* Clears the screen and prints.
|
* Clears the screen and prints.
|
||||||
*/
|
*/
|
||||||
void overlay(const char* line1, long showHowLong, byte glyphType) {
|
void overlay(const char* line1, long showHowLong, byte glyphType) {
|
||||||
if (displayTurnedOff) {
|
|
||||||
// Turn the display back on
|
// Turn the display back on
|
||||||
sleepOrClock(false);
|
wakeDisplay();
|
||||||
}
|
|
||||||
|
|
||||||
// Print the overlay
|
// Print the overlay
|
||||||
clear();
|
|
||||||
if (glyphType > 0) {
|
if (glyphType > 0) {
|
||||||
if (lineHeight == 2) drawGlyph(5, 0, glyphType, u8x8_font_benji_custom_icons_6x6, true);
|
if (lineHeight == 2) drawGlyph(5, 0, glyphType, u8x8_font_benji_custom_icons_6x6, true);
|
||||||
else drawGlyph(7, lineHeight, glyphType, u8x8_font_benji_custom_icons_2x2, true);
|
else drawGlyph(7, lineHeight, glyphType, u8x8_font_benji_custom_icons_2x2, true);
|
||||||
@ -742,13 +734,9 @@ class FourLineDisplayUsermod : public Usermod {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void networkOverlay(const char* line1, long showHowLong) {
|
void networkOverlay(const char* line1, long showHowLong) {
|
||||||
if (displayTurnedOff) {
|
|
||||||
// Turn the display back on
|
// Turn the display back on
|
||||||
sleepOrClock(false);
|
wakeDisplay();
|
||||||
}
|
|
||||||
// Print the overlay
|
// Print the overlay
|
||||||
clear();
|
|
||||||
// First row string
|
|
||||||
if (line1) {
|
if (line1) {
|
||||||
String l1 = line1;
|
String l1 = line1;
|
||||||
l1.trim();
|
l1.trim();
|
||||||
@ -785,15 +773,15 @@ class FourLineDisplayUsermod : public Usermod {
|
|||||||
*/
|
*/
|
||||||
void sleepOrClock(bool enabled) {
|
void sleepOrClock(bool enabled) {
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
|
displayTurnedOff = true;
|
||||||
if (clockMode) {
|
if (clockMode) {
|
||||||
knownMinute = knownHour = 99;
|
knownMinute = knownHour = 99;
|
||||||
showTime();
|
showTime();
|
||||||
} else
|
} else
|
||||||
setPowerSave(1);
|
setPowerSave(1);
|
||||||
displayTurnedOff = true;
|
|
||||||
} else {
|
} else {
|
||||||
setPowerSave(0);
|
|
||||||
displayTurnedOff = false;
|
displayTurnedOff = false;
|
||||||
|
setPowerSave(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user