diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index 46c0a9ed0..90240241d 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -238,41 +238,21 @@ PACK(struct ExpandState { uint8_t functionSwitches:1; }); -struct ExpandState expandState; +static struct ExpandState expandState; -uint8_t PREFLIGHT_ROW(uint8_t value) -{ - if (expandState.preflight) - return value; - return HIDDEN_ROW; -} +static uint8_t PREFLIGHT_ROW(uint8_t value) { return expandState.preflight ? value : HIDDEN_ROW; } -uint8_t THROTTLE_ROW(uint8_t value) -{ - if (expandState.throttle) - return value; - return HIDDEN_ROW; -} +static uint8_t THROTTLE_ROW(uint8_t value) { return expandState.throttle ? value : HIDDEN_ROW; } #if defined(FUNCTION_SWITCHES) -uint8_t FS_ROW(uint8_t value) -{ - if (expandState.functionSwitches) - return value; - return HIDDEN_ROW; -} +static uint8_t FS_ROW(uint8_t value) { return expandState.functionSwitches ? value : HIDDEN_ROW; } uint8_t G1_ROW(int8_t value) { return (firstSwitchInGroup(1) >= 0) ? value : HIDDEN_ROW; } uint8_t G2_ROW(int8_t value) { return (firstSwitchInGroup(2) >= 0) ? value : HIDDEN_ROW; } uint8_t G3_ROW(int8_t value) { return (firstSwitchInGroup(3) >= 0) ? value : HIDDEN_ROW; } #endif -uint8_t VIEWOPT_ROW(uint8_t value) -{ - if (expandState.viewOpt) - return value; - return HIDDEN_ROW; -} +static uint8_t VIEWOPT_ROW(uint8_t value) { return expandState.viewOpt ? value : HIDDEN_ROW; } #define MODEL_SETUP_2ND_COLUMN (LCD_W-11*FW) #define MODEL_SETUP_SET_FAILSAFE_OFS 7*FW-2 diff --git a/radio/src/gui/128x64/radio_setup.cpp b/radio/src/gui/128x64/radio_setup.cpp index c10ec4afa..fb5e04448 100644 --- a/radio/src/gui/128x64/radio_setup.cpp +++ b/radio/src/gui/128x64/radio_setup.cpp @@ -64,6 +64,7 @@ enum { CASE_AUDIO(ITEM_RADIO_SETUP_SPEAKER_PITCH) ITEM_RADIO_SETUP_WAV_VOLUME, ITEM_RADIO_SETUP_BACKGROUND_VOLUME, + ITEM_RADIO_SETUP_START_SOUND, CASE_VARIO(ITEM_RADIO_SETUP_VARIO_LABEL) CASE_VARIO(ITEM_RADIO_SETUP_VARIO_VOLUME) CASE_VARIO(ITEM_RADIO_SETUP_VARIO_PITCH) @@ -90,7 +91,6 @@ enum { CASE_CONTRAST(ITEM_RADIO_SETUP_CONTRAST) CASE_BACKLIGHT(ITEM_RADIO_SETUP_FLASH_BEEP) CASE_SPLASH_PARAM(ITEM_RADIO_SETUP_DISABLE_SPLASH) - ITEM_RADIO_SETUP_START_SOUND, CASE_PWR_BUTTON_PRESS(ITEM_RADIO_SETUP_PWR_ON_SPEED) CASE_PWR_BUTTON_PRESS(ITEM_RADIO_SETUP_PWR_OFF_SPEED) CASE_PWR_BUTTON_PRESS(ITEM_RADIO_SETUP_PWR_AUTO_OFF) @@ -127,6 +127,20 @@ enum { ITEM_RADIO_SETUP_MAX }; +PACK(struct ExpandState { + uint8_t sound:1; + uint8_t alarms:1; + uint8_t viewOpt:1; +}); + +static struct ExpandState expandState; + +static uint8_t SOUND_ROW(uint8_t value) { return expandState.sound ? value : HIDDEN_ROW; } + +static uint8_t ALARMS_ROW(uint8_t value) { return expandState.alarms ? value : HIDDEN_ROW; } + +static uint8_t VIEWOPT_ROW(uint8_t value) { return expandState.viewOpt ? value : HIDDEN_ROW; } + uint8_t viewOptCheckBox(coord_t y, const char* title, uint8_t value, uint8_t attr, event_t event, uint8_t modelOption) { if (modelOption != OVERRIDE_GLOBAL) { @@ -163,45 +177,64 @@ void menuRadioSetup(event_t event) uint8_t old_editMode = s_editMode; #endif - MENU(STR_RADIO_SETUP, menuTabGeneral, MENU_RADIO_SETUP, HEADER_LINE+ITEM_RADIO_SETUP_MAX, { - HEADER_LINE_COLUMNS CASE_RTCLOCK(2) CASE_RTCLOCK(2) CASE_BATTGRAPH(1) - LABEL(SOUND), CASE_AUDIO(0) - CASE_BUZZER(0) - 0, 0, 0, 0, 0, CASE_AUDIO(0) + MENU(STR_RADIO_SETUP, menuTabGeneral, MENU_RADIO_SETUP, ITEM_RADIO_SETUP_MAX, { + HEADER_LINE_COLUMNS + CASE_RTCLOCK(2) CASE_RTCLOCK(2) CASE_BATTGRAPH(1) + // Sound + 0, + CASE_AUDIO(SOUND_ROW(0)) + CASE_BUZZER(SOUND_ROW(0)) + SOUND_ROW(0), + SOUND_ROW(0), + SOUND_ROW(0), + CASE_AUDIO(SOUND_ROW(0)) + SOUND_ROW(0), + SOUND_ROW(0), + SOUND_ROW(0), + // Vario CASE_VARIO(LABEL(VARIO)) - CASE_VARIO(0) - CASE_VARIO(0) - CASE_VARIO(0) - CASE_VARIO(0) - CASE_HAPTIC(LABEL(HAPTIC)) - CASE_HAPTIC(0) - CASE_HAPTIC(0) - CASE_HAPTIC(0) + CASE_VARIO(0) + CASE_VARIO(0) + CASE_VARIO(0) + CASE_VARIO(0) + // Haptic + CASE_HAPTIC(LABEL(VARIO)) + CASE_HAPTIC(0) + CASE_HAPTIC(0) + CASE_HAPTIC(0) + // IMU CASE_IMU(LABEL(IMU)) - CASE_IMU(0) - CASE_IMU(0) - LABEL(ALARMS), 0, - 0, 0, 0, 0, 0,/* ITEM_RADIO_SETUP_INACTIVITY_ALARM ITEM_RADIO_SETUP_MEMORY_WARNING ITEM_RADIO_SETUP_ALARM_WARNING ITEM_RADIO_SETUP_RSSI_POWEROFF_ALARM ITEM_RADIO_SETUP_TRAINER_POWEROFF_ALARM*/ - CASE_BACKLIGHT(LABEL(BACKLIGHT)) - CASE_BACKLIGHT(0) - CASE_BACKLIGHT(0) - CASE_BACKLIGHT(0) - CASE_CONTRAST(0) - CASE_BACKLIGHT(0) - CASE_SPLASH_PARAM(0) + CASE_IMU(0) + CASE_IMU(0) + // Alarms 0, + ALARMS_ROW(0), + ALARMS_ROW(0), + ALARMS_ROW(0), + ALARMS_ROW(0), + ALARMS_ROW(0), + ALARMS_ROW(0), + // Backlight + CASE_BACKLIGHT(LABEL(BACKLIGHT)) + CASE_BACKLIGHT(0) + CASE_BACKLIGHT(0) + CASE_BACKLIGHT(0) + CASE_CONTRAST(0) + CASE_BACKLIGHT(0) + CASE_SPLASH_PARAM(0) CASE_PWR_BUTTON_PRESS(0) CASE_PWR_BUTTON_PRESS(0) CASE_PWR_BUTTON_PRESS(0) CASE_HAPTIC(0) // power on/off haptic CASE_PXX2(0) /* owner registration ID */ - - CASE_GPS(0) - CASE_GPS(0) - CASE_GPS(0) - CASE_GPS(0) + // GPS + CASE_GPS(LABEL(GPS)) + CASE_GPS(0) + CASE_GPS(0) + CASE_GPS(0) CASE_PXX1(0) - 0, 0, 0, IF_FAI_CHOICE(0) + 0, 0, 0, + IF_FAI_CHOICE(0) 0, 0, // USB mode CASE_JACK_DETECT(0) // Jack mode @@ -209,19 +242,20 @@ void menuRadioSetup(event_t event) CASE_ROTARY_ENCODER(0) CASE_TX_MODE(LABEL(TX_MODE)) CASE_TX_MODE(0) - LABEL(ViewOptions), - LABEL(RadioMenuTabs), - 0, - 0, - LABEL(ModelMenuTabs), - CASE_HELI(0) - CASE_FLIGHT_MODES(0) - 0, - 0, - 0, - CASE_LUA_MODEL_SCRIPTS(0) - 0, - 1/*to force edit mode*/}); + // View options + 0, + VIEWOPT_ROW(LABEL(RadioMenuTabs)), + VIEWOPT_ROW(0), + VIEWOPT_ROW(0), + VIEWOPT_ROW(LABEL(ModelMenuTabs)), + CASE_HELI(VIEWOPT_ROW(0)) + CASE_FLIGHT_MODES(VIEWOPT_ROW(0)) + VIEWOPT_ROW(0), + VIEWOPT_ROW(0), + VIEWOPT_ROW(0), + CASE_LUA_MODEL_SCRIPTS(VIEWOPT_ROW(0)) + VIEWOPT_ROW(0), + }); if (event == EVT_ENTRY) { reusableBuffer.generalSettings.stickMode = g_eeGeneral.stickMode; @@ -235,8 +269,16 @@ void menuRadioSetup(event_t event) for (uint8_t i=0; i0) ? BLINK|INVERS : INVERS); - uint8_t attr = (sub == k ? blink : 0); + for (int j=0; j<=k; j++) { + if (mstate_tab[j+HEADER_LINE] == HIDDEN_ROW) { + if (++k >= (int)DIM(mstate_tab)) { + return; + } + } + } + + LcdFlags blink = ((s_editMode>0) ? BLINK|INVERS : INVERS); + LcdFlags attr = (sub == k ? blink : 0); switch (k) { #if defined(RTCLOCK) @@ -315,7 +357,7 @@ void menuRadioSetup(event_t event) #endif case ITEM_RADIO_SETUP_SOUND_LABEL: - lcdDrawTextAlignedLeft(y, STR_SOUND_LABEL); + expandState.sound = expandableSection(y, STR_SOUND_LABEL, expandState.sound, attr, event); break; #if defined(AUDIO) @@ -381,6 +423,10 @@ void menuRadioSetup(event_t event) break; #endif + case ITEM_RADIO_SETUP_START_SOUND: + g_eeGeneral.dontPlayHello = !editCheckBox(!g_eeGeneral.dontPlayHello, LCD_W-9, y, STR_PLAY_HELLO, attr, event, INDENT_WIDTH) ; + break; + #if defined(VARIO) case ITEM_RADIO_SETUP_VARIO_LABEL: lcdDrawTextAlignedLeft(y, STR_VARIO); @@ -466,19 +512,8 @@ void menuRadioSetup(event_t event) break; #endif -#if !defined(OLED_SCREEN) - case ITEM_RADIO_SETUP_CONTRAST: - lcdDrawTextIndented(y, STR_CONTRAST); - lcdDrawNumber(LCD_W-2, y, g_eeGeneral.contrast, attr|RIGHT); - if (attr) { - CHECK_INCDEC_GENVAR(event, g_eeGeneral.contrast, LCD_CONTRAST_MIN, LCD_CONTRAST_MAX); - lcdSetContrast(); - } - break; -#endif - case ITEM_RADIO_SETUP_ALARMS_LABEL: - lcdDrawTextAlignedLeft(y, STR_ALARMS_LABEL); + expandState.alarms = expandableSection(y, STR_ALARMS_LABEL, expandState.alarms, attr, event); break; case ITEM_RADIO_SETUP_BATTERY_WARNING: @@ -565,6 +600,17 @@ void menuRadioSetup(event_t event) break; #endif +#if !defined(OLED_SCREEN) + case ITEM_RADIO_SETUP_CONTRAST: + lcdDrawTextIndented(y, STR_CONTRAST); + lcdDrawNumber(LCD_W-2, y, g_eeGeneral.contrast, attr|RIGHT); + if (attr) { + CHECK_INCDEC_GENVAR(event, g_eeGeneral.contrast, LCD_CONTRAST_MIN, LCD_CONTRAST_MAX); + lcdSetContrast(); + } + break; +#endif + case ITEM_RADIO_SETUP_DISABLE_SPLASH: { lcdDrawTextAlignedLeft(y, STR_SPLASHSCREEN); @@ -579,11 +625,6 @@ void menuRadioSetup(event_t event) break; } - case ITEM_RADIO_SETUP_START_SOUND: - lcdDrawTextAlignedLeft(y, STR_PLAY_HELLO); - g_eeGeneral.dontPlayHello = !editCheckBox(!g_eeGeneral.dontPlayHello, LCD_W-9, y, nullptr, attr, event ) ; - break; - #if defined(PWR_BUTTON_PRESS) case ITEM_RADIO_SETUP_PWR_ON_SPEED: g_eeGeneral.pwrOnSpeed = pwrDelayToYaml(editChoice(LCD_W-2, y, STR_PWR_ON_DELAY, STR_PWR_OFF_DELAYS, pwrDelayFromYaml(g_eeGeneral.pwrOnSpeed), 0, 4, attr|RIGHT, event)); @@ -772,7 +813,7 @@ void menuRadioSetup(event_t event) #endif case ITEM_VIEW_OPTIONS_LABEL: - lcdDrawTextAlignedLeft(y, STR_ENABLED_FEATURES); + expandState.viewOpt = expandableSection(y, STR_ENABLED_FEATURES, expandState.viewOpt, attr, event); break; case ITEM_VIEW_OPTIONS_RADIO_TAB: lcdDrawText(INDENT_WIDTH-2, y, TR_RADIO_MENU_TABS); diff --git a/radio/src/gui/212x64/model_setup.cpp b/radio/src/gui/212x64/model_setup.cpp index 86e8313bb..0082894d8 100644 --- a/radio/src/gui/212x64/model_setup.cpp +++ b/radio/src/gui/212x64/model_setup.cpp @@ -205,28 +205,13 @@ PACK(struct ExpandState { uint8_t viewOpt:1; }); -struct ExpandState expandState; +static struct ExpandState expandState; -uint8_t PREFLIGHT_ROW(uint8_t value) -{ - if (expandState.preflight) - return value; - return HIDDEN_ROW; -} +static uint8_t PREFLIGHT_ROW(uint8_t value) { return expandState.preflight ? value : HIDDEN_ROW; } -uint8_t THROTTLE_ROW(uint8_t value) -{ - if (expandState.throttle) - return value; - return HIDDEN_ROW; -} +static uint8_t THROTTLE_ROW(uint8_t value) { return expandState.throttle ? value : HIDDEN_ROW; } -uint8_t VIEWOPT_ROW(uint8_t value) -{ - if (expandState.viewOpt) - return value; - return HIDDEN_ROW; -} +static uint8_t VIEWOPT_ROW(uint8_t value) { return expandState.viewOpt ? value : HIDDEN_ROW; } void copySelection(char * dst, const char * src, uint8_t size) { diff --git a/radio/src/gui/212x64/radio_setup.cpp b/radio/src/gui/212x64/radio_setup.cpp index a2e5fbb05..f6478df0c 100644 --- a/radio/src/gui/212x64/radio_setup.cpp +++ b/radio/src/gui/212x64/radio_setup.cpp @@ -55,6 +55,7 @@ enum MenuRadioSetupItems { ITEM_RADIO_SETUP_SPEAKER_PITCH, ITEM_RADIO_SETUP_WAV_VOLUME, ITEM_RADIO_SETUP_BACKGROUND_VOLUME, + ITEM_RADIO_SETUP_START_SOUND, CASE_VARIO(ITEM_RADIO_SETUP_VARIO_LABEL) CASE_VARIO(ITEM_RADIO_SETUP_VARIO_VOLUME) CASE_VARIO(ITEM_RADIO_SETUP_VARIO_PITCH) @@ -79,7 +80,6 @@ enum MenuRadioSetupItems { CASE_PCBX9E_PCBX9DP(ITEM_RADIO_SETUP_BACKLIGHT_COLOR) ITEM_RADIO_SETUP_FLASH_BEEP, CASE_SPLASH_PARAM(ITEM_RADIO_SETUP_DISABLE_SPLASH) - ITEM_RADIO_SETUP_START_SOUND, CASE_PWR_BUTTON_PRESS(ITEM_RADIO_SETUP_PWR_ON_SPEED) CASE_PWR_BUTTON_PRESS(ITEM_RADIO_SETUP_PWR_OFF_SPEED) CASE_PWR_BUTTON_PRESS(ITEM_RADIO_SETUP_PWR_AUTO_OFF) @@ -118,6 +118,20 @@ enum MenuRadioSetupItems { ITEM_RADIO_SETUP_MAX }; +PACK(struct ExpandState { + uint8_t sound:1; + uint8_t alarms:1; + uint8_t viewOpt:1; +}); + +static struct ExpandState expandState; + +static uint8_t SOUND_ROW(uint8_t value) { return expandState.sound ? value : HIDDEN_ROW; } + +static uint8_t ALARMS_ROW(uint8_t value) { return expandState.alarms ? value : HIDDEN_ROW; } + +static uint8_t VIEWOPT_ROW(uint8_t value) { return expandState.viewOpt ? value : HIDDEN_ROW; } + uint8_t viewOptCheckBox(coord_t y, const char* title, uint8_t value, uint8_t attr, event_t event, uint8_t modelOption) { lcdDrawText(INDENT_WIDTH*2, y, title); @@ -161,30 +175,36 @@ void menuRadioSetup(event_t event) 2, // time 0, // battery calibration 1, // battery range - LABEL(SOUND), - 0, // beep mode - 0, // general volume - 0, // beep volume - 0, // beep length - 0, // speaker piutch - 0, // wav volume - 0, // background volume + // Sound + 0, + SOUND_ROW(0), // beep mode + SOUND_ROW(0), // general volume + SOUND_ROW(0), // beep volume + SOUND_ROW(0), // beep length + SOUND_ROW(0), // speaker piutch + SOUND_ROW(0), // wav volume + SOUND_ROW(0), // background volume + SOUND_ROW(0), // startup sound + // Vario CASE_VARIO(LABEL(VARIO)) - CASE_VARIO(0) - CASE_VARIO(0) - CASE_VARIO(0) - CASE_VARIO(0) - CASE_HAPTIC(LABEL(HAPTIC)) - CASE_HAPTIC(0) // haptic mode - CASE_HAPTIC(0) // haptic length - CASE_HAPTIC(0) // haptic strength - LABEL(ALARMS), - 0, // battery warning - 0, // inactivity warning - 0, // memory warning - 0, // alarm warning - 0, // RSSI power off alarm - 0, // Trainer power off alarm + CASE_VARIO(0) + CASE_VARIO(0) + CASE_VARIO(0) + CASE_VARIO(0) + // Haptic + CASE_HAPTIC(LABEL(VARIO)) + CASE_HAPTIC(0) + CASE_HAPTIC(0) + CASE_HAPTIC(0) + // Alarms + 0, + ALARMS_ROW(0), + ALARMS_ROW(0), + ALARMS_ROW(0), + ALARMS_ROW(0), + ALARMS_ROW(0), + ALARMS_ROW(0), + // Backlight LABEL(BACKLIGHT), 0, // backlight mode 0, // backlight delay @@ -193,16 +213,16 @@ void menuRadioSetup(event_t event) CASE_PCBX9E_PCBX9DP(0) // backlight color 0, // flash beep CASE_SPLASH_PARAM(0) // disable splash - 0, CASE_PWR_BUTTON_PRESS(0) // pwr on speed CASE_PWR_BUTTON_PRESS(0) // pwr off speed CASE_PWR_BUTTON_PRESS(0) // pwr auto off CASE_HAPTIC(0) // power on/off haptic CASE_PXX2(0) // owner registration ID + // GPS CASE_GPS(LABEL(GPS)) - CASE_GPS(0) // timezone - CASE_GPS(0) // adjust RTC - CASE_GPS(0) // GPS format + CASE_GPS(0) + CASE_GPS(0) + CASE_GPS(0) CASE_PXX1(0) // country code 0, // voice language 0, // imperial @@ -214,20 +234,20 @@ void menuRadioSetup(event_t event) CASE_ROTARY_ENCODER(0) // Invert rotary encoder LABEL(TX_MODE), 0, // sticks mode - LABEL(ViewOptions), - LABEL(RadioMenuTabs), - 0, - 0, - LABEL(ModelMenuTabs), - CASE_HELI(0) - CASE_FLIGHT_MODES(0) - 0, - CASE_GVARS(0) - 0, - 0, - CASE_LUA_MODEL_SCRIPTS(0) - 0, - 1 /*to force edit mode*/ + // View options + 0, + VIEWOPT_ROW(LABEL(RadioMenuTabs)), + VIEWOPT_ROW(0), + VIEWOPT_ROW(0), + VIEWOPT_ROW(LABEL(ModelMenuTabs)), + CASE_HELI(VIEWOPT_ROW(0)) + CASE_FLIGHT_MODES(VIEWOPT_ROW(0)) + CASE_GVARS(VIEWOPT_ROW(0)) + VIEWOPT_ROW(0), + VIEWOPT_ROW(0), + VIEWOPT_ROW(0), + CASE_LUA_MODEL_SCRIPTS(VIEWOPT_ROW(0)) + VIEWOPT_ROW(0), }); if (event == EVT_ENTRY) { @@ -243,8 +263,11 @@ void menuRadioSetup(event_t event) coord_t y = MENU_HEADER_HEIGHT + 1 + i*FH; uint8_t k = i + menuVerticalOffset; for (int j = 0; j <= k; j++) { - if (mstate_tab[j] == HIDDEN_ROW) - k++; + if (mstate_tab[j] == HIDDEN_ROW) { + if (++k >= (int)DIM(mstate_tab)) { + return; + } + } } uint8_t blink = ((s_editMode>0) ? BLINK|INVERS : INVERS); @@ -334,7 +357,7 @@ void menuRadioSetup(event_t event) break; case ITEM_RADIO_SETUP_SOUND_LABEL: - lcdDrawTextAlignedLeft(y, STR_SOUND_LABEL); + expandState.sound = expandableSection(y, STR_SOUND_LABEL, expandState.sound, attr, event); break; case ITEM_RADIO_SETUP_BEEP_MODE: @@ -381,6 +404,10 @@ void menuRadioSetup(event_t event) } break; + case ITEM_RADIO_SETUP_START_SOUND: + g_eeGeneral.dontPlayHello = !editCheckBox(!g_eeGeneral.dontPlayHello, RADIO_SETUP_2ND_COLUMN, y, STR_PLAY_HELLO, attr, event, INDENT_WIDTH) ; + break; + #if defined(VARIO) case ITEM_RADIO_SETUP_VARIO_LABEL: lcdDrawTextAlignedLeft(y, STR_VARIO); @@ -430,17 +457,8 @@ void menuRadioSetup(event_t event) break; #endif - case ITEM_RADIO_SETUP_CONTRAST: - lcdDrawTextIndented(y, STR_CONTRAST); - lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.contrast, attr|LEFT); - if (attr) { - CHECK_INCDEC_GENVAR(event, g_eeGeneral.contrast, LCD_CONTRAST_MIN, LCD_CONTRAST_MAX); - lcdSetContrast(); - } - break; - case ITEM_RADIO_SETUP_ALARMS_LABEL: - lcdDrawTextAlignedLeft(y, STR_ALARMS_LABEL); + expandState.alarms = expandableSection(y, STR_ALARMS_LABEL, expandState.alarms, attr, event); break; case ITEM_RADIO_SETUP_BATTERY_WARNING: @@ -524,6 +542,15 @@ void menuRadioSetup(event_t event) } break; + case ITEM_RADIO_SETUP_CONTRAST: + lcdDrawTextIndented(y, STR_CONTRAST); + lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.contrast, attr|LEFT); + if (attr) { + CHECK_INCDEC_GENVAR(event, g_eeGeneral.contrast, LCD_CONTRAST_MIN, LCD_CONTRAST_MAX); + lcdSetContrast(); + } + break; + #if defined(PCBX9DP) || defined(PCBX9E) case ITEM_RADIO_SETUP_BACKLIGHT_COLOR: lcdDrawTextIndented(y, STR_BLCOLOR); @@ -544,11 +571,6 @@ void menuRadioSetup(event_t event) if (attr) g_eeGeneral.splashMode = -checkIncDecGen(event, -g_eeGeneral.splashMode, -3, 4); break; - case ITEM_RADIO_SETUP_START_SOUND: - lcdDrawTextAlignedLeft(y, STR_PLAY_HELLO); - g_eeGeneral.dontPlayHello = !editCheckBox(!g_eeGeneral.dontPlayHello, RADIO_SETUP_2ND_COLUMN, y, nullptr, attr, event ) ; - break; - #if defined(PWR_BUTTON_PRESS) case ITEM_RADIO_SETUP_PWR_ON_SPEED: g_eeGeneral.pwrOnSpeed = pwrDelayToYaml(editChoice(RADIO_SETUP_2ND_COLUMN, y, STR_PWR_ON_DELAY, STR_PWR_OFF_DELAYS, pwrDelayFromYaml(g_eeGeneral.pwrOnSpeed), 0, 4, attr|LEFT, event)); @@ -643,7 +665,6 @@ void menuRadioSetup(event_t event) break; #endif - case ITEM_RADIO_SETUP_SWITCHES_DELAY: lcdDrawTextAlignedLeft(y, STR_SWITCHES_DELAY); lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, 10*SWITCHES_DELAY(), attr|LEFT); @@ -716,7 +737,7 @@ void menuRadioSetup(event_t event) break; case ITEM_VIEW_OPTIONS_LABEL: - lcdDrawTextAlignedLeft(y, STR_ENABLED_FEATURES); + expandState.viewOpt = expandableSection(y, STR_ENABLED_FEATURES, expandState.viewOpt, attr, event); break; case ITEM_VIEW_OPTIONS_RADIO_TAB: lcdDrawTextIndented(y, TR_RADIO_MENU_TABS);