diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index c891d26..cfbff0a 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -73,6 +73,7 @@ bool BWreset; bool bwtouchtune; bool BWtune; bool change; +bool clockampm; bool compressedold; bool direction; bool dropout; @@ -189,7 +190,7 @@ byte amgain; byte freqoldcount; byte HighCutLevel; byte HighCutOffset; -byte items[10] = {10, static_cast(dynamicspi ? 10 : 9), 7, 10, 10, 10, 9, 8, 10, 9}; +byte items[10] = {10, static_cast(dynamicspi ? 10 : 9), 7, 10, 10, 10, 9, 9, 10, 9}; byte iMSEQ; byte iMSset; byte language; @@ -586,6 +587,7 @@ void setup() { NTPoffset = EEPROM.readByte(EE_BYTE_NTPOFFSET); autolog = EEPROM.readByte(EE_BYTE_AUTOLOG); autoDST = EEPROM.readByte(EE_BYTE_AUTODST); + clockampm = EEPROM.readByte(EE_BYTE_CLOCKAMPM); if (spispeed == SPI_SPEED_DEFAULT) { tft.setSPISpeed(SPI_FREQUENCY / 1000000); @@ -4568,6 +4570,7 @@ void DefaultSettings() { EEPROM.writeByte(EE_BYTE_NTPOFFSET, 1); EEPROM.writeByte(EE_BYTE_AUTOLOG, 1); EEPROM.writeByte(EE_BYTE_AUTODST, 1); + EEPROM.writeByte(EE_BYTE_CLOCKAMPM, 0); #ifdef DEEPELEC_DP_66X EEPROM.writeByte(EE_BYTE_ROTARYMODE, 1); @@ -4820,6 +4823,7 @@ void endMenu() { EEPROM.writeByte(EE_BYTE_NTPOFFSET, NTPoffset); EEPROM.writeByte(EE_BYTE_AUTOLOG, autolog); EEPROM.writeByte(EE_BYTE_AUTODST, autoDST); + EEPROM.writeByte(EE_BYTE_CLOCKAMPM, clockampm); EEPROM.commit(); if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false; Serial.end(); @@ -5684,7 +5688,7 @@ String getCurrentDateTime() { // Buffer for formatted date-time string char buf[20]; - if (radio.rds.region == 1) { + if (clockampm) { // USA format: MM/DD/YYYY, HH:MM AM/PM strftime(buf, sizeof(buf), "%m/%d/%Y", &timeInfo); // Format as MM/DD/YYYY diff --git a/src/constants.h b/src/constants.h index 3b883d5..fd75aca 100644 --- a/src/constants.h +++ b/src/constants.h @@ -225,9 +225,9 @@ #define EE_CHECKBYTE_VALUE 10 // 0 ~ 255,add new entry, change for new value #define EE_PRESETS_FREQUENCY 0 // Default value when memory channel should be skipped! #ifdef HAS_AIR_BAND -#define EE_TOTAL_CNT 2283 // Total occupied eeprom bytes +#define EE_TOTAL_CNT 2284 // Total occupied eeprom bytes #else -#define EE_TOTAL_CNT 2278 // Total occupied eeprom bytes +#define EE_TOTAL_CNT 2279 // Total occupied eeprom bytes #endif #define EE_PRESETS_BAND_START 0 // 99 * 1 byte @@ -348,9 +348,10 @@ #define EE_BYTE_NTPOFFSET 2275 #define EE_BYTE_AUTOLOG 2276 #define EE_BYTE_AUTODST 2277 +#define EE_BYTE_CLOCKAMPM 2278 #ifdef HAS_AIR_BAND -#define EE_BYTE_AIRSTEPSIZE 2278 -#define EE_UINT16_FREQUENCY_AIR 2279 +#define EE_BYTE_AIRSTEPSIZE 2279 +#define EE_UINT16_FREQUENCY_AIR 2280 #endif // End of EEPROM index defines diff --git a/src/gui.cpp b/src/gui.cpp index aef3861..19f4896 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -1504,6 +1504,16 @@ void ShowOneLine(byte position, byte item, bool selected) { FullLineSprite.drawString(String(amscansens), 298, 2); break; + case CONNECTIVITY: + FullLineSprite.setTextDatum(TL_DATUM); + FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + FullLineSprite.drawString(removeNewline(myLanguage[language][298]), 6, 2); + + FullLineSprite.setTextDatum(TR_DATUM); + FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + FullLineSprite.drawString((clockampm ? "12" : "24"), 298, 2); + break; + case DXMODE: FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); @@ -2587,6 +2597,15 @@ void ShowOneButton(byte position, byte item, bool selected) { PSSprite.drawString(String(amscansens), 75, 15); break; + case CONNECTIVITY: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][298])), 75, 1); + + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((clockampm ? "12" : "24"), 75, 15); + break; + case DXMODE: PSSprite.setTextDatum(TC_DATUM); PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); @@ -3826,6 +3845,13 @@ void MenuUp() { OneBigLineSprite.drawString((autoDST ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; + + case ITEM9: + clockampm = !clockampm; + + OneBigLineSprite.drawString((clockampm ? "12" : "24"), 135, 0); + OneBigLineSprite.pushSprite(24, 118); + break; } break; @@ -4804,6 +4830,13 @@ void MenuDown() { OneBigLineSprite.drawString((autoDST ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; + + case ITEM9: + clockampm = !clockampm; + + OneBigLineSprite.drawString((clockampm ? "12" : "24"), 135, 0); + OneBigLineSprite.pushSprite(24, 118); + break; } break; @@ -5840,6 +5873,13 @@ void DoMenu() { OneBigLineSprite.drawString((autoDST ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; + + case ITEM9: + Infoboxprint(myLanguage[language][298]); + + OneBigLineSprite.drawString((clockampm ? "12" : "24"), 135, 0); + OneBigLineSprite.pushSprite(24, 118); + break; } break; diff --git a/src/gui.h b/src/gui.h index 24adeae..4f60358 100644 --- a/src/gui.h +++ b/src/gui.h @@ -22,6 +22,7 @@ extern bool autosquelch; extern bool BWreset; extern bool BWtune; extern bool change; +extern bool clockampm; extern bool compressedold; extern bool dropout; extern bool dynamicPTYold; diff --git a/src/rds.cpp b/src/rds.cpp index efe4266..d4ac862 100644 --- a/src/rds.cpp +++ b/src/rds.cpp @@ -809,7 +809,7 @@ void showCT() { } // Format the time based on region - if (radio.rds.region == 1) { // USA region: 12-hour AM/PM format + if (clockampm) { // USA region: 12-hour AM/PM format // Determine AM/PM and adjust hour format int hour = localtime(&t)->tm_hour; String ampm = (hour >= 12) ? "PM" : "AM"; diff --git a/src/rds.h b/src/rds.h index dcf1bbb..1e6c3dc 100644 --- a/src/rds.h +++ b/src/rds.h @@ -18,6 +18,7 @@ extern bool artheadold; extern bool BWreset; extern bool compressedold; extern bool clearrds; +extern bool clockampm; extern bool dropout; extern bool dynamicPTYold; extern bool fullsearchrds;