# HG changeset patch # User heinrichsweikamp # Date 1694339205 -7200 # Node ID c4ee952b94254922658c7be1e171e57e0e270fd0 # Parent ce8f71217f456aa6ca98a1c54f60657ec32691a4 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller) diff -r ce8f71217f45 -r c4ee952b9425 Discovery/Inc/tMenu.h --- a/Discovery/Inc/tMenu.h Sun Sep 03 18:03:49 2023 +0200 +++ b/Discovery/Inc/tMenu.h Sun Sep 10 11:46:45 2023 +0200 @@ -90,6 +90,7 @@ void resetLineMask(uint32_t lineId); void disableLine(uint32_t lineId); void enableLine(uint32_t lineId); +void clearDisabledMenuLines(void); char *makeGrey(bool isGrey); #endif /* TMENU_H */ diff -r ce8f71217f45 -r c4ee952b9425 Discovery/Src/tHome.c --- a/Discovery/Src/tHome.c Sun Sep 03 18:03:49 2023 +0200 +++ b/Discovery/Src/tHome.c Sun Sep 10 11:46:45 2023 +0200 @@ -86,6 +86,8 @@ } else set_globalState(StS); + + clearDisabledMenuLines(); } diff -r ce8f71217f45 -r c4ee952b9425 Discovery/Src/tMenu.c --- a/Discovery/Src/tMenu.c Sun Sep 03 18:03:49 2023 +0200 +++ b/Discovery/Src/tMenu.c Sun Sep 10 11:46:45 2023 +0200 @@ -129,6 +129,14 @@ } +void clearDisabledMenuLines(void) +{ + for(unsigned i = 0; i <= MAXPAGES; i++) { + menu.disableLineMask[i] = 0; + } +} + + void tM_init(void) { uint8_t i; @@ -154,9 +162,10 @@ menu.StartAddressForPage[i] = 0; menu.linesAvailableForPage[i] = 0; menu.shadowPage[i] = 0; - menu.disableLineMask[i] = 0; } + clearDisabledMenuLines(); + tMscreen.FBStartAdress = 0; tMscreen.ImageHeight = 480; tMscreen.ImageWidth = 800; diff -r ce8f71217f45 -r c4ee952b9425 Discovery/Src/tMenuEditXtra.c --- a/Discovery/Src/tMenuEditXtra.c Sun Sep 03 18:03:49 2023 +0200 +++ b/Discovery/Src/tMenuEditXtra.c Sun Sep 10 11:46:45 2023 +0200 @@ -179,15 +179,10 @@ { SSettings *pSettings = settingsGetPointer(); - if(pSettings->CCR_Mode == CCRMODE_Sensors) - { + if(pSettings->CCR_Mode == CCRMODE_Sensors) { pSettings->CCR_Mode = CCRMODE_FixedSetpoint; - disableLine(StMXTRA_O2_Fallback); - } - else - { + } else { pSettings->CCR_Mode = CCRMODE_Sensors; - enableLine(StMXTRA_O2_Fallback); } exitEditWithUpdate(); diff -r ce8f71217f45 -r c4ee952b9425 Discovery/Src/tMenuSetpoint.c --- a/Discovery/Src/tMenuSetpoint.c Sun Sep 03 18:03:49 2023 +0200 +++ b/Discovery/Src/tMenuSetpoint.c Sun Sep 10 11:46:45 2023 +0200 @@ -55,16 +55,15 @@ if((actual_menu_content == MENU_SURFACE) || (stateUsed->diveSettings.diveMode != DIVEMODE_PSCR)) /* do not show setpoints in PSCR mode */ { - if (settings->autoSetpoint) { - disableLine(StMSP_Blank); - } - else { - enableLine(StMSP_Blank); + if (settings->autoSetpoint) { + disableLine(StMSP_Blank); + } else { + enableLine(StMSP_Blank); } + for(int spId=1;spId<=NUM_GASES;spId++) { if (settings->autoSetpoint) { - disableLine(StMSP_Blank); if (spId == 5) { if (actual_menu_content == MENU_SURFACE) { textPointer += snprintf(&text[textPointer], 40, "\020%c%c\016\016%c%c\017 %c%c\002%c\n\r", TXT_2BYTE, TXT2BYTE_SetpointShort, TXT_2BYTE, TXT2BYTE_SetpointLow, TXT_2BYTE, TXT2BYTE_SetpointDelayed, settings->delaySetpointLow ? '\005' : '\006'); diff -r ce8f71217f45 -r c4ee952b9425 Discovery/Src/tMenuXtra.c --- a/Discovery/Src/tMenuXtra.c Sun Sep 03 18:03:49 2023 +0200 +++ b/Discovery/Src/tMenuXtra.c Sun Sep 10 11:46:45 2023 +0200 @@ -152,45 +152,42 @@ } if((line == 0) || (line == 2)) - { - bool canDoFallback = pSettings->CCR_Mode == CCRMODE_Sensors; - if (!canDoFallback) { - text[textPointer++] = '\031'; - } - textPointer += snprintf(&text[textPointer], 60,\ - "%c" - ,TXT_Fallback - ); + { + bool canDoFallback = pSettings->CCR_Mode == CCRMODE_Sensors; + if (!canDoFallback) { + text[textPointer++] = '\031'; + } + textPointer += snprintf(&text[textPointer], 60,\ + "%c" + ,TXT_Fallback + ); - text[textPointer++] = '\t'; - if(settingsGetPointer()->fallbackToFixedSetpoint && canDoFallback) - text[textPointer++] = '\005'; - else - text[textPointer++] = '\006'; + text[textPointer++] = '\t'; + if(settingsGetPointer()->fallbackToFixedSetpoint && canDoFallback) + text[textPointer++] = '\005'; + else + text[textPointer++] = '\006'; - if (!canDoFallback) { - text[textPointer++] = '\020'; - disableLine(StMXTRA_O2_Fallback); - } - else { - enableLine(StMXTRA_O2_Fallback); - } - strcpy(&text[textPointer],"\n\r"); - textPointer += 2; - } + if (!canDoFallback) { + text[textPointer++] = '\020'; + disableLine(StMXTRA_O2_Fallback); + } else { + enableLine(StMXTRA_O2_Fallback); + } + strcpy(&text[textPointer],"\n\r"); + textPointer += 2; + } if((line == 0) || (line == 3)) - { - textPointer += snprintf(&text[textPointer], 60,\ - "%c" - ,TXT_ScrubTime - ); - strcpy(&text[textPointer],"\n\r"); - textPointer += 2; - } - - + { + textPointer += snprintf(&text[textPointer], 60,\ + "%c" + ,TXT_ScrubTime + ); + strcpy(&text[textPointer],"\n\r"); + textPointer += 2; + } #ifdef ENABLE_PSCR_MODE if(pSettings->dive_mode == DIVEMODE_PSCR)