mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-22 18:26:30 +00:00
Allow temporary change of DisplayDimmer (#23406)
This commit is contained in:
parent
b29ef3dfbc
commit
56ce7b3f93
@ -2006,12 +2006,12 @@ void CmndDisplayMode(void) {
|
||||
}
|
||||
|
||||
// Apply the current display dimmer
|
||||
void ApplyDisplayDimmer(void) {
|
||||
void ApplyDisplayDimmer(uint8_t dimmer) {
|
||||
disp_apply_display_dimmer_request = true;
|
||||
if ((disp_power < 0) || !disp_device) { return; } // Not initialized yet
|
||||
disp_apply_display_dimmer_request = false;
|
||||
|
||||
uint8_t dimmer8 = changeUIntScale(GetDisplayDimmer(), 0, 100, 0, 255);
|
||||
uint8_t dimmer8 = changeUIntScale(dimmer, 0, 100, 0, 255);
|
||||
uint16_t dimmer10_gamma = ledGamma10(dimmer8);
|
||||
if (dimmer8 && !(disp_power)) {
|
||||
ExecuteCommandPower(disp_device, POWER_ON, SRC_DISPLAY);
|
||||
@ -2035,7 +2035,7 @@ void CmndDisplayDimmer(void) {
|
||||
if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 100)) {
|
||||
uint8_t dimmer = XdrvMailbox.payload;
|
||||
SetDisplayDimmer(dimmer);
|
||||
ApplyDisplayDimmer();
|
||||
ApplyDisplayDimmer(dimmer);
|
||||
}
|
||||
ResponseCmndNumber(GetDisplayDimmer());
|
||||
}
|
||||
@ -2923,7 +2923,7 @@ bool Xdrv13(uint32_t function) {
|
||||
break;
|
||||
case FUNC_INIT:
|
||||
if (disp_apply_display_dimmer_request) {
|
||||
ApplyDisplayDimmer(); // Allowed here.
|
||||
ApplyDisplayDimmer(GetDisplayDimmer()); // Allowed here.
|
||||
}
|
||||
break;
|
||||
case FUNC_EVERY_50_MSECOND:
|
||||
|
@ -61,13 +61,20 @@ extern "C" {
|
||||
int be_ntv_display_dimmer(struct bvm *vm) {
|
||||
int32_t argc = be_top(vm); // Get the number of arguments
|
||||
int32_t dimmer;
|
||||
bool no_settings = false; // by default change settings
|
||||
if (argc >= 1) {
|
||||
if (!be_isint(vm, 1)) { be_raise(vm, "type_error", "arg must be int"); }
|
||||
dimmer = be_toint(vm, 1);
|
||||
if (argc >= 2) {
|
||||
if (!be_isbool(vm, 2)) { be_raise(vm, "type_error", "arg2 must be bool"); }
|
||||
no_settings = be_tobool(vm, 2);
|
||||
}
|
||||
if ((dimmer < 0) || (dimmer > 100)) { be_raise(vm, "value_error", "value must be in range 0..100"); }
|
||||
be_pop(vm, argc); // clear stack to avoid ripple errors in code called later
|
||||
SetDisplayDimmer(dimmer);
|
||||
ApplyDisplayDimmer();
|
||||
if (!no_settings) { // change settings
|
||||
SetDisplayDimmer(dimmer);
|
||||
}
|
||||
ApplyDisplayDimmer(dimmer);
|
||||
}
|
||||
be_pushint(vm, GetDisplayDimmer());
|
||||
be_return(vm);
|
||||
|
@ -492,7 +492,7 @@ Renderer *Init_uDisplay(const char *desc) {
|
||||
}*/
|
||||
renderer->invertDisplay(iniinv);
|
||||
|
||||
ApplyDisplayDimmer();
|
||||
ApplyDisplayDimmer(GetDisplayDimmer());
|
||||
|
||||
#ifdef SHOW_SPLASH
|
||||
if (!Settings->flag5.display_no_splash) { // SetOption135 - (Display & LVGL) force disabling default splash screen
|
||||
|
Loading…
x
Reference in New Issue
Block a user