From 0d3a4e033ff729a33edb9d54c915d3617e4d619a Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Sat, 3 Aug 2024 15:32:16 +0200 Subject: [PATCH] Added menuoption Show Long PS --- TEF6686_ESP32.ino | 4 ++++ src/constants.h | 11 +++++---- src/gui.cpp | 45 +++++++++++++----------------------- src/gui.h | 1 + src/language.h | 58 +++++++++++++++++++++++++++++++---------------- src/rds.cpp | 4 ++-- src/rds.h | 1 + 7 files changed, 68 insertions(+), 56 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 0716929..a81a06a 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -108,6 +108,7 @@ bool seek; bool seekinit; bool setupmode; bool showclock; +bool showlongps; bool usesquelch; bool softmuteam; bool softmutefm; @@ -524,6 +525,7 @@ void setup() { autosquelch = EEPROM.readByte(EE_BYTE_AUTOSQUELCH); longbandpress = EEPROM.readByte(EE_BYTE_LONGBANDPRESS); showclock = EEPROM.readByte(EE_BYTE_SHOWCLOCK); + showlongps = EEPROM.readByte(EE_BYTE_SHOWLONGPS); if (spispeed == SPI_SPEED_DEFAULT) { tft.setSPISpeed(SPI_FREQUENCY / 1000000); @@ -4321,6 +4323,7 @@ void DefaultSettings(byte userhardwaremodel) { EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, 0); EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, 0); EEPROM.writeByte(EE_BYTE_SHOWCLOCK, 1); + EEPROM.writeByte(EE_BYTE_SHOWLONGPS, 1); for (int i = 0; i < EE_PRESETS_CNT; i++) { EEPROM.writeByte(i + EE_PRESETS_BAND_START, BAND_FM); @@ -4550,6 +4553,7 @@ void endMenu() { EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, autosquelch); EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, longbandpress); EEPROM.writeByte(EE_BYTE_SHOWCLOCK, showclock); + EEPROM.writeByte(EE_BYTE_SHOWLONGPS, showlongps); 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 f4e6005..e6f5540 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 2222 // Total occupied eeprom bytes +#define EE_TOTAL_CNT 2223 // Total occupied eeprom bytes #else -#define EE_TOTAL_CNT 2217 // Total occupied eeprom bytes +#define EE_TOTAL_CNT 2218 // Total occupied eeprom bytes #endif #define EE_PRESETS_BAND_START 0 // 99 * 1 byte @@ -312,10 +312,11 @@ #define EE_BYTE_SCANMUTE 2213 #define EE_BYTE_AUTOSQUELCH 2214 #define EE_BYTE_LONGBANDPRESS 2215 -#define EE_BYTE_SHOWCLOCK 2216 +#define EE_BYTE_SHOWCLOCK 2216 +#define EE_BYTE_SHOWLONGPS 2217 #ifdef HAS_AIR_BAND -#define EE_BYTE_AIRSTEPSIZE 2117 -#define EE_UINT16_FREQUENCY_AIR 2218 +#define EE_BYTE_AIRSTEPSIZE 2118 +#define EE_UINT16_FREQUENCY_AIR 2219 #endif // End of EEPROM index defines diff --git a/src/gui.cpp b/src/gui.cpp index 60edd93..0d6878f 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -1246,11 +1246,11 @@ void ShowOneLine(byte position, byte item, bool selected) { case DISPLAYSETTINGS: FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - FullLineSprite.drawString(removeNewline(myLanguage[language][78]), 6, 2); + FullLineSprite.drawString(removeNewline(myLanguage[language][262]), 6, 2); FullLineSprite.setTextDatum(TR_DATUM); FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - FullLineSprite.drawString(Skin[CurrentSkin], 298, 2); + FullLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 298, 2); break; case RDSSETTINGS: @@ -1401,11 +1401,10 @@ void ShowOneLine(byte position, byte item, bool selected) { case RDSSETTINGS: FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - FullLineSprite.drawString(removeNewline(myLanguage[language][262]), 6, 2); - + FullLineSprite.drawString(removeNewline(myLanguage[language][263]), 6, 2); FullLineSprite.setTextDatum(TR_DATUM); FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - FullLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 298, 2); + FullLineSprite.drawString((showlongps ? myLanguage[language][42] : myLanguage[language][30]), 298, 2); break; case FMSETTINGS: @@ -2093,15 +2092,9 @@ void MenuUp() { break; case ITEM8: - CurrentSkin ++; - if (CurrentSkin > sizeof(Skin) / sizeof(Skin[0]) - 1) CurrentSkin = 0; - BuildMenu(); - tft.drawRoundRect(10, 30, 300, 170, 5, ActiveColor); - tft.fillRoundRect(12, 32, 296, 166, 5, BackgroundColor); - OneBigLineSprite.fillSprite(BackgroundColor); + showclock = !showclock; - Infoboxprint(myLanguage[language][78]); - OneBigLineSprite.drawString(Skin[CurrentSkin], 135, 0); + OneBigLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; @@ -2214,9 +2207,9 @@ void MenuUp() { break; case ITEM10: - showclock = !showclock; + showlongps = !showlongps; - OneBigLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); + OneBigLineSprite.drawString((showlongps ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; } @@ -2959,15 +2952,9 @@ void MenuDown() { break; case ITEM8: - CurrentSkin --; - if (CurrentSkin > sizeof(Skin) / sizeof(Skin[0]) - 1) CurrentSkin = sizeof(Skin) / sizeof(Skin[0]) - 1; - BuildMenu(); - OneBigLineSprite.fillSprite(BackgroundColor); - tft.drawRoundRect(10, 30, 300, 170, 5, ActiveColor); - tft.fillRoundRect(12, 32, 296, 166, 5, BackgroundColor); + showclock = !showclock; - Infoboxprint(myLanguage[language][78]); - OneBigLineSprite.drawString(Skin[CurrentSkin], 135, 0); + OneBigLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; @@ -3081,9 +3068,9 @@ void MenuDown() { break; case ITEM10: - showclock = !showclock; + showlongps = !showlongps; - OneBigLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); + OneBigLineSprite.drawString((showlongps ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; } @@ -3852,9 +3839,9 @@ void DoMenu() { break; case ITEM8: - Infoboxprint(myLanguage[language][78]); + Infoboxprint(myLanguage[language][262]); - OneBigLineSprite.drawString(Skin[CurrentSkin], 135, 0); + OneBigLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; @@ -3957,9 +3944,9 @@ void DoMenu() { break; case ITEM10: - Infoboxprint(myLanguage[language][262]); + Infoboxprint(myLanguage[language][263]); - OneBigLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); + OneBigLineSprite.drawString((showlongps ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; } diff --git a/src/gui.h b/src/gui.h index 443a108..6e4370b 100644 --- a/src/gui.h +++ b/src/gui.h @@ -60,6 +60,7 @@ extern bool scandxmode; extern bool scanmem; extern bool scanmute; extern bool showclock; +extern bool showlongps; extern bool softmuteam; extern bool softmutefm; extern bool Stereostatusold; diff --git a/src/language.h b/src/language.h index e00d584..b494b83 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][263] PROGMEM = { +static const char* const myLanguage[18][264] PROGMEM = { { "English", // English "Rotary direction changed", // 1 "Please release button", // 2 @@ -268,7 +268,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Alarm!!!", // 259 "Initial", // 260 "Always", // 261 - "Show clock" // 262 + "Show clock", // 262 + "Show long PS" // 263 }, { "Nederlands", // Dutch @@ -533,7 +534,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Alarm ! ALARM !", // 259 "Initieel", // 260 "Altijd", //261 - "Toon klok" // 262 + "Toon klok", // 262 + "Toon long PS" // 263 }, { "Polski", // Polish @@ -798,7 +800,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Alarm", // 259 "Początkowy", // 260 "Zawsze", // 261 - "Pokaż zegar" // 262 + "Pokaż zegar", // 262 + "Show long PS" // 263 }, { "Hrvatski", // Croatian @@ -1063,7 +1066,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Alarm !", // 259 "Početno", // 260 "Uvijek", //261 - "Prikaži sat" // 262 + "Prikaži sat", // 262 + "Show long PS" // 263 }, { "Ελληνικά", // Greek @@ -1328,7 +1332,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Συναγερμός!!!", // 259 "Αρχικό", // 260 "Πάντα", //261 - "Εμφάνιση ρολογιού" // 262 + "Εμφάνιση ρολογιού", // 262 + "Show long PS" // 263 }, { "Română", // Romanian @@ -1593,7 +1598,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Alarmă !", // 259 "Inițial", // 260 "Mereu", //261 - "Arată ceasul" // 262 + "Arată ceasul", // 262 + "Show long PS" // 263 }, { "Deutsch", // German @@ -1858,7 +1864,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Alarm! Alarm!", // 259 "Anfänglich", // 260 "Immer", // 261 - "Uhr anzeigen" // 262 + "Uhr anzeigen", // 262 + "Show long PS" // 263 }, { "Český", // Czech @@ -2123,7 +2130,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Alarm – Alarm !", // 259 "Počáteční", // 260 "Vždy", //261 - "Zobrazit hodiny" // 262 + "Zobrazit hodiny", // 262 + "Show long PS" // 263 }, { "Magyar", // Hungarian @@ -2388,7 +2396,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Riasztás!!!", // 259 "Kezdeti", // 260 "Mindig", //261 - "Óra mutatása" // 262 + "Óra mutatása", // 262 + "Show long PS" // 263 }, { "Français", // French @@ -2653,7 +2662,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Alerte !", // 259 "Initial", // 260 "Toujours", // 261 - "Afficher l'horloge" // 262 + "Afficher l'horloge", // 262 + "Show long PS" // 263 }, { "Български", // Bulgarian @@ -2918,7 +2928,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Тревога!", // 259 "Начален", // 260 "Винаги", // 261 - "Покажи часовника" // 262 + "Покажи часовника", // 262 + "Show long PS" // 263 }, { "Русский", // Russian @@ -3183,7 +3194,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Тревога!", // 259 "Начальный", // 260 "Всегда", // 261 - "Показать часы" // 262 + "Показать часы", // 262 + "Show long PS" // 263 }, { "Українська", // Ukranian @@ -3448,7 +3460,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Alarm!!!", // 259 "Початковий", // 260 "Завжди", // 261 - "Показати годинник" // 262 + "Показати годинник", // 262 + "Show long PS" // 263 }, { "Italiano", // Italian @@ -3713,7 +3726,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "!!Allarme!!", // 259 "Iniziale", // 260 "Sempre", // 261 - "Mostra l'orologio" // 262 + "Mostra l'orologio", // 262 + "Show long PS" // 263 }, { "Simplified Chinese", // Simplified Chinese @@ -3978,7 +3992,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Alarm!!!", // 259 "初始", // 260 "始终", // 261 - "显示时钟" // 262 + "显示时钟", // 262 + "Show long PS" // 263 }, { "Norsk", // Norwegian @@ -4243,7 +4258,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Alarm!", // 259 "Innledende", // 260 "Alltid", // 261 - "Vis klokka" // 262 + "Vis klokka", // 262 + "Show long PS" // 263 }, { "Español", // Spanish @@ -4508,7 +4524,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "¡ Alarma !", // 259 "Inicial", // 260 "Siempre", // 261 - "Mostrar reloj" // 262 + "Mostrar reloj", // 262 + "Show long PS" // 263 }, { "Português", // Portuguese @@ -4773,7 +4790,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Alarme – Alarme !", // 259 "Inicial", // 260 "Sempre", // 261 - "Mostrar relógio" // 262 + "Mostrar relógio", // 262 + "Show long PS" // 263 } }; -#endif +#endif \ No newline at end of file diff --git a/src/rds.cpp b/src/rds.cpp index a73d405..ae57a35 100644 --- a/src/rds.cpp +++ b/src/rds.cpp @@ -668,11 +668,11 @@ void showPTY() { } void showPS() { - if (radio.rds.stationName != PSold || radio.rds.hasLongPS) { + if (radio.rds.stationName != PSold || (radio.rds.hasLongPS && showlongps)) { if (afscreen) { if (!screenmute) tftReplace(0, PSold, radio.rds.stationName, 160, 201, BWAutoColor, BWAutoColorSmooth, BackgroundColor, 16); } else { - if (radio.rds.hasLongPS) { + if (radio.rds.hasLongPS && showlongps) { String stationNameLongString = String(radio.rds.stationNameLong) + " "; if (stationNameLongString != stationNameLongOld) { PSLongWidth = PSSprite.textWidth(stationNameLongString); diff --git a/src/rds.h b/src/rds.h index 928b691..6c1b88a 100644 --- a/src/rds.h +++ b/src/rds.h @@ -35,6 +35,7 @@ extern bool rtcset; extern bool screenmute; extern bool setupmode; extern bool showclock; +extern bool showlongps; extern bool TAold; extern bool TPold; extern bool wifi;