Skip to content

Commit 14c2dfc

Browse files
3djcThomasKuehne
authored andcommitted
feat: allow configuration of auto dimming for OLED screen (EdgeTX#4793)
1 parent ff0423c commit 14c2dfc

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

radio/src/gui/128x64/radio_setup.cpp

+16-7
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ enum {
8989
CASE_PWM_BACKLIGHT(ITEM_RADIO_SETUP_BACKLIGHT_BRIGHTNESS_OFF)
9090
CASE_PWM_BACKLIGHT(ITEM_RADIO_SETUP_BACKLIGHT_BRIGHTNESS_ON)
9191
CASE_BACKLIGHT(ITEM_RADIO_SETUP_FLASH_BEEP)
92-
ITEM_RADIO_SETUP_CONTRAST,
92+
CASE_CONTRAST(ITEM_RADIO_SETUP_CONTRAST)
9393
CASE_SPLASH_PARAM(ITEM_RADIO_SETUP_DISABLE_SPLASH)
9494
ITEM_RADIO_SETUP_START_SOUND,
9595
CASE_PWR_BUTTON_PRESS(ITEM_RADIO_SETUP_PWR_ON_SPEED)
@@ -189,7 +189,7 @@ void menuRadioSetup(event_t event)
189189
CASE_PWM_BACKLIGHT(0)
190190
CASE_PWM_BACKLIGHT(0)
191191
CASE_BACKLIGHT(0)
192-
0, // Contrast
192+
CASE_CONTRAST(0)
193193
CASE_SPLASH_PARAM(0)
194194
0,
195195
CASE_PWR_BUTTON_PRESS(0)
@@ -471,18 +471,16 @@ void menuRadioSetup(event_t event)
471471
break;
472472
#endif
473473

474+
#if !defined(OLED_SCREEN)
474475
case ITEM_RADIO_SETUP_CONTRAST:
475-
#if defined(OLED_SCREEN)
476-
lcdDrawTextAlignedLeft(y, STR_BRIGHTNESS);
477-
#else
478476
lcdDrawTextAlignedLeft(y, STR_CONTRAST);
479-
#endif
480477
lcdDrawNumber(LCD_W-2, y, g_eeGeneral.contrast, attr|RIGHT);
481478
if (attr) {
482479
CHECK_INCDEC_GENVAR(event, g_eeGeneral.contrast, LCD_CONTRAST_MIN, LCD_CONTRAST_MAX);
483480
lcdSetContrast();
484481
}
485482
break;
483+
#endif
486484

487485
case ITEM_RADIO_SETUP_ALARMS_LABEL:
488486
lcdDrawTextAlignedLeft(y, STR_ALARMS_LABEL);
@@ -525,9 +523,13 @@ void menuRadioSetup(event_t event)
525523
if(attr) g_eeGeneral.inactivityTimer = checkIncDec(event, g_eeGeneral.inactivityTimer, 0, 250, EE_GENERAL); //0..250minutes
526524
break;
527525

528-
#if defined(BACKLIGHT_GPIO)
526+
#if defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)
529527
case ITEM_RADIO_SETUP_BACKLIGHT_LABEL:
528+
#if defined(OLED_SCREEN)
529+
lcdDrawTextAlignedLeft(y, STR_BRIGHTNESS);
530+
#else
530531
lcdDrawTextAlignedLeft(y, STR_BACKLIGHT_LABEL);
532+
#endif
531533
break;
532534

533535
case ITEM_RADIO_SETUP_BACKLIGHT_MODE:
@@ -549,11 +551,18 @@ void menuRadioSetup(event_t event)
549551

550552
case ITEM_RADIO_SETUP_BRIGHTNESS:
551553
lcdDrawText(INDENT_WIDTH, y, STR_BRIGHTNESS);
554+
#if defined(OLED_SCREEN)
555+
lcdDrawNumber(LCD_W-2, y, g_eeGeneral.contrast, attr|RIGHT);
556+
if (attr) {
557+
CHECK_INCDEC_GENVAR(event, g_eeGeneral.contrast, LCD_CONTRAST_MIN, LCD_CONTRAST_MAX);
558+
lcdSetContrast();
559+
#else
552560
lcdDrawNumber(LCD_W-2, y, 100-g_eeGeneral.backlightBright, attr|RIGHT) ;
553561
if (attr) {
554562
uint8_t b = 100 - g_eeGeneral.backlightBright;
555563
CHECK_INCDEC_GENVAR(event, b, 0, 100);
556564
g_eeGeneral.backlightBright = 100 - b;
565+
#endif
557566
}
558567
break;
559568
#endif

radio/src/gui/common/stdlcd/features.h

+7-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,13 @@
3535
#define CASE_IMU(x)
3636
#endif
3737

38-
#if defined(BACKLIGHT_GPIO)
38+
#if defined(OLED_SCREEN)
39+
#define CASE_CONTRAST(x)
40+
#else
41+
#define CASE_CONTRAST(x) x,
42+
#endif
43+
44+
#if defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)
3945
#define CASE_BACKLIGHT(x) x,
4046
#else
4147
#define CASE_BACKLIGHT(x)

0 commit comments

Comments
 (0)