feat(bw128): add option to invert LCD/OLED display (#4933)

This commit is contained in:
philmoz
2024-06-06 07:52:45 +10:00
committed by GitHub
parent fb2188cacd
commit 65e05085a4
15 changed files with 275 additions and 191 deletions
@@ -80,6 +80,10 @@ enum {
ITEM_RADIO_HARDWARE_JITTER_FILTER,
ITEM_RADIO_HARDWARE_RAS,
ITEM_RADIO_HARDWARE_SPORT_UPDATE_POWER,
#if (defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)) && (LCD_W == 128)
ITEM_RADIO_HARDWARE_SCREEN_LABEL,
ITEM_RADIO_HARDWARE_SCREEN_INVERT,
#endif
ITEM_RADIO_HARDWARE_DEBUG,
#if defined(FUNCTION_SWITCHES)
ITEM_RADIO_HARDWARE_DEBUG_FS,
@@ -211,6 +215,11 @@ static void _init_menu_tab_array(uint8_t* tab, size_t len)
tab[ITEM_RADIO_HARDWARE_SPORT_UPDATE_POWER] = HIDDEN_ROW;
}
#if (defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)) && (LCD_W == 128)
tab[ITEM_RADIO_HARDWARE_SCREEN_LABEL] = READONLY_ROW;
tab[ITEM_RADIO_HARDWARE_SCREEN_INVERT] = 0;
#endif
tab[ITEM_RADIO_HARDWARE_DEBUG] = 1;
#if defined(FUNCTION_SWITCHES)
tab[ITEM_RADIO_HARDWARE_DEBUG_FS] = 0;
@@ -425,6 +434,21 @@ void menuRadioHardware(event_t event)
}
break;
#if (defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)) && (LCD_W == 128)
case ITEM_RADIO_HARDWARE_SCREEN_LABEL:
lcdDrawTextAlignedLeft(y, STR_SCREEN);
break;
case ITEM_RADIO_HARDWARE_SCREEN_INVERT:
{
lcdDrawText(INDENT_WIDTH, y, STR_MENU_INVERT);
bool inv = g_eeGeneral.invertLCD;
g_eeGeneral.invertLCD = editCheckBox(g_eeGeneral.invertLCD, HW_SETTINGS_COLUMN2, y, nullptr, attr, event);
if (inv != g_eeGeneral.invertLCD)
lcdSetInvert(g_eeGeneral.invertLCD);
}
break;
#endif
case ITEM_RADIO_HARDWARE_DEBUG:
lcdDrawTextAlignedLeft(y, STR_DEBUG);
lcdDrawText(HW_SETTINGS_COLUMN2, y, STR_ANALOGS_BTN, menuHorizontalPosition == 0 ? attr : 0);