diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index dab7077..c0e1e2a 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -103,7 +103,7 @@ bool screenmute; bool screensavertriggered = false; bool seek; bool setupmode; -byte showrdserrors; +bool showclock; bool usesquelch; bool softmuteam; bool softmutefm; @@ -189,6 +189,7 @@ byte scanmodeold; byte screensaverOptions[5] = {0, 3, 10, 30, 60}; byte screensaverset; byte showmodulation; +byte showrdserrors; byte showSWMIBand; byte submenu; byte stationlistid; @@ -514,6 +515,7 @@ void setup() { scanmute = EEPROM.readByte(EE_BYTE_SCANMUTE); autosquelch = EEPROM.readByte(EE_BYTE_AUTOSQUELCH); longbandpress = EEPROM.readByte(EE_BYTE_LONGBANDPRESS); + showclock = EEPROM.readByte(EE_BYTE_SHOWCLOCK); if (spispeed == SPI_SPEED_DEFAULT) { tft.setSPISpeed(SPI_FREQUENCY / 1000000); @@ -4147,6 +4149,7 @@ void DefaultSettings(byte userhardwaremodel) { EEPROM.writeByte(EE_BYTE_SCANMUTE, 0); EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, 0); EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, 0); + EEPROM.writeByte(EE_BYTE_SHOWCLOCK, 1); for (int i = 0; i < EE_PRESETS_CNT; i++) { EEPROM.writeByte(i + EE_PRESETS_BAND_START, BAND_FM); @@ -4374,6 +4377,7 @@ void endMenu() { EEPROM.writeByte(EE_BYTE_SCANMUTE, scanmute); EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, autosquelch); EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, longbandpress); + EEPROM.writeByte(EE_BYTE_SHOWCLOCK, showclock); EEPROM.commit(); if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false; Serial.end(); diff --git a/src/constants.h b/src/constants.h index 8329572..892393e 100644 --- a/src/constants.h +++ b/src/constants.h @@ -209,9 +209,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 2221 // Total occupied eeprom bytes +#define EE_TOTAL_CNT 2222 // Total occupied eeprom bytes #else -#define EE_TOTAL_CNT 2216 // Total occupied eeprom bytes +#define EE_TOTAL_CNT 2217 // Total occupied eeprom bytes #endif #define EE_PRESETS_BAND_START 0 // 99 * 1 byte @@ -312,9 +312,10 @@ #define EE_BYTE_SCANMUTE 2213 #define EE_BYTE_AUTOSQUELCH 2214 #define EE_BYTE_LONGBANDPRESS 2215 +#define EE_BYTE_SHOWCLOCK 2216 #ifdef HAS_AIR_BAND -#define EE_BYTE_AIRSTEPSIZE 2116 -#define EE_UINT16_FREQUENCY_AIR 2217 +#define EE_BYTE_AIRSTEPSIZE 2117 +#define EE_UINT16_FREQUENCY_AIR 2218 #endif // End of EEPROM index defines diff --git a/src/gui.cpp b/src/gui.cpp index a1dc962..1349cb1 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -8,7 +8,7 @@ #include byte menuitem; -byte items[9] = {9, static_cast(dynamicspi ? 10 : 9), 7, 10, 9, 10, 9, 6, 7}; +byte items[9] = {9, static_cast(dynamicspi ? 10 : 9), 7, 10, 10, 10, 9, 6, 7}; extern mem presets[]; void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de/online/rgb565-color-picker/ @@ -1394,6 +1394,16 @@ void ShowOneLine(byte position, byte item, bool selected) { FullLineSprite.drawString(FreqFont[freqfont], 298, 3); break; + case RDSSETTINGS: + FullLineSprite.setTextDatum(TL_DATUM); + FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + FullLineSprite.drawString(removeNewline(myLanguage[language][262]), 6, 3); + + FullLineSprite.setTextDatum(TR_DATUM); + FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + FullLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 298, 3); + break; + case FMSETTINGS: FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); @@ -2228,6 +2238,13 @@ void MenuUp() { OneBigLineSprite.pushSprite(24, 118); break; + + case ITEM10: + showclock = !showclock; + + OneBigLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); + OneBigLineSprite.pushSprite(24, 118); + break; } break; @@ -3083,6 +3100,13 @@ void MenuDown() { OneBigLineSprite.pushSprite(24, 118); break; + + case ITEM10: + showclock = !showclock; + + OneBigLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); + OneBigLineSprite.pushSprite(24, 118); + break; } break; @@ -3946,6 +3970,13 @@ void DoMenu() { OneBigLineSprite.pushSprite(24, 118); break; + + case ITEM10: + Infoboxprint(myLanguage[language][262]); + + OneBigLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); + OneBigLineSprite.pushSprite(24, 118); + break; } break; @@ -4349,4 +4380,4 @@ String removeNewline(String inputString) { } } return outputString; -} +} \ No newline at end of file diff --git a/src/gui.h b/src/gui.h index e945fc7..443a108 100644 --- a/src/gui.h +++ b/src/gui.h @@ -59,6 +59,7 @@ extern bool usesquelch; extern bool scandxmode; extern bool scanmem; extern bool scanmute; +extern bool showclock; extern bool softmuteam; extern bool softmutefm; extern bool Stereostatusold; diff --git a/src/language.h b/src/language.h index 68b79ae..300457a 100644 --- a/src/language.h +++ b/src/language.h @@ -5,7 +5,7 @@ // [number of languages][number of texts] -static const char* const myLanguage[18][262] PROGMEM = { +static const char* const myLanguage[18][263] PROGMEM = { { "English", // English "Rotary direction changed", // 1 "Please release button", // 2 @@ -267,7 +267,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Alarm Test", // 258 "Alarm!!!", // 259 "Initial", // 260 - "Always" //261 + "Always", // 261 + "Show clock" // 262 }, { "Nederlands", // Dutch @@ -531,7 +532,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Alarmtest", // 258 "Alarm ! ALARM !", // 259 "Initieel", // 260 - "Altijd" //261 + "Altijd", //261 + "Toon klok" // 262 }, { "Polski", // Polish @@ -795,7 +797,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Alarm Test", // 258 "Alarm", // 259 "Początkowy", // 260 - "Zawsze" // 261 + "Zawsze", // 261 + "Pokaż zegar" // 262 }, { "Hrvatski", // Croatian @@ -1059,7 +1062,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Testni alarm!", // 258 "Alarm !", // 259 "Početno", // 260 - "Uvijek" //261 + "Uvijek", //261 + "Prikaži sat" // 262 }, { "Ελληνικά", // Greek @@ -1323,7 +1327,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Δοκιμή συναγερμού", // 258 "Συναγερμός!!!", // 259 "Αρχικό", // 260 - "Πάντα" //261 + "Πάντα", //261 + "Εμφάνιση ρολογιού" // 262 }, { "Română", // Romanian @@ -1587,7 +1592,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Test Alarmă", // 258 "Alarmă !", // 259 "Inițial", // 260 - "Mereu" //261 + "Mereu", //261 + "Arată ceasul" // 262 }, { "Deutsch", // German @@ -1851,7 +1857,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Alarm Test", // 258 "Alarm! Alarm!", // 259 "Anfänglich", // 260 - "Immer" // 261 + "Immer", // 261 + "Uhr anzeigen" // 262 }, { "Český", // Czech @@ -2115,7 +2122,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Alarm Test", // 258 "Alarm – Alarm !", // 259 "Počáteční", // 260 - "Vždy" //261 + "Vždy", //261 + "Zobrazit hodiny" // 262 }, { "Magyar", // Hungarian @@ -2379,7 +2387,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Riasztás Teszt", // 258 "Riasztás!!!", // 259 "Kezdeti", // 260 - "Mindig" //261 + "Mindig", //261 + "Órát mutass" // 262 }, { "Français", // French @@ -2643,7 +2652,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "TEST", // 258 "Alerte !", // 259 "Initial", // 260 - "Toujours" // 261 + "Toujours", // 261 + "Afficher l'horloge" // 262 }, { "Български", // Bulgarian @@ -2907,7 +2917,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Внимание тест", // 258 "Тревога!", // 259 "Начален", // 260 - "Винаги" // 261 + "Винаги", // 261 + "Покажи часовника" // 262 }, { "Русский", // Russian @@ -3171,7 +3182,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Внимание тест", // 258 "Тревога!", // 259 "Начальный", // 260 - "Всегда" // 261 + "Всегда", // 261 + "Показать часы" // 262 }, { "Українська", // Ukranian @@ -3435,7 +3447,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Alarm Test", // 258 "Alarm!!!", // 259 "Початковий", // 260 - "Завжди" // 261 + "Завжди", // 261 + "Показати годинник" // 262 }, { "Italiano", // Italian @@ -3699,7 +3712,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Test Allarme", // 258 "!!Allarme!!", // 259 "Iniziale", // 260 - "Sempre" // 261 + "Sempre", // 261 + "Mostra l'orologio" // 262 }, { "Simplified Chinese", // Simplified Chinese @@ -3963,7 +3977,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Alarm Test", // 258 "Alarm!!!", // 259 "初始", // 260 - "始终" // 261 + "始终", // 261 + "显示时钟" // 262 }, { "Norsk", // Norwegian @@ -4227,7 +4242,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Alarm test", // 258 "Alarm!", // 259 "Innledende", // 260 - "Alltid" // 261 + "Alltid", // 261 + "Vis klokka" // 262 }, { "Español", // Spanish @@ -4491,7 +4507,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Prueba de Alarma", // 258 "¡ Alarma !", // 259 "Inicial", // 260 - "Siempre" // 261 + "Siempre", // 261 + "Mostrar reloj" // 262 }, { "Português", // Portuguese @@ -4755,7 +4772,8 @@ static const char* const myLanguage[18][262] PROGMEM = { "Teste de Alarme", // 258 "Alarme – Alarme !", // 259 "Inicial", // 260 - "Sempre" // 261 + "Sempre", // 261 + "Mostrar relógio" // 262 } }; #endif \ No newline at end of file diff --git a/src/rds.cpp b/src/rds.cpp index a2cf475..bce1514 100644 --- a/src/rds.cpp +++ b/src/rds.cpp @@ -748,7 +748,7 @@ void showPS() { } void showCT() { - if (!screenmute) { + if (!screenmute && showclock) { if (radio.rds.hasCT && !dropout) { rds_clock = ((radio.rds.hour < 10 ? "0" : "") + String(radio.rds.hour) + ":" + (radio.rds.minute < 10 ? "0" : "") + String(radio.rds.minute)); } else if (!radio.rds.hasCT || dropout) { diff --git a/src/rds.h b/src/rds.h index 691052b..928b691 100644 --- a/src/rds.h +++ b/src/rds.h @@ -34,7 +34,7 @@ extern bool rdsstereoold; extern bool rtcset; extern bool screenmute; extern bool setupmode; -extern byte showrdserrors; +extern bool showclock; extern bool TAold; extern bool TPold; extern bool wifi; @@ -54,6 +54,7 @@ extern byte eonptyold[20]; extern byte rdsblockold; extern byte rdsqualityold; extern byte region; +extern byte showrdserrors; extern byte stationlistid; extern char eonpicodeold[20][6]; extern char programTypePrevious[18];