From 7a50e48e1b92f16cf58e85c8623e496d41f138a8 Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Tue, 25 Feb 2025 10:56:58 +0100 Subject: [PATCH] Added selector for Canada callsign decoder and USA with/without database check --- src/gui.cpp | 41 ++++++++++++++++++++++-------- src/language.h | 67 +++++++++++++++++++++++++++++++++----------------- 2 files changed, 75 insertions(+), 33 deletions(-) diff --git a/src/gui.cpp b/src/gui.cpp index d34b07d..b22a6af 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -711,8 +711,12 @@ void ShowOneLine(byte position, byte item, bool selected) { FullLineSprite.setTextDatum(TR_DATUM); FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - if (radio.rds.region == REGION_EU) FullLineSprite.drawString(myLanguage[language][47], 298, 2); - if (radio.rds.region == REGION_US) FullLineSprite.drawString(myLanguage[language][48], 298, 2); + switch (radio.rds.region) { + case 0: FullLineSprite.drawString(myLanguage[language][47], 298, 2); break; + case 1: FullLineSprite.drawString(String(myLanguage[language][48]) + " DB", 298, 2); break; + case 2: FullLineSprite.drawString(myLanguage[language][48], 298, 2); break; + case 3: FullLineSprite.drawString(myLanguage[language][300], 298, 2); break; + } break; case FMSETTINGS: @@ -1802,8 +1806,12 @@ void ShowOneButton(byte position, byte item, bool selected) { PSSprite.drawString(shortLine(removeNewline(myLanguage[language][46])), 75, 1); PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - if (radio.rds.region == REGION_EU) PSSprite.drawString(myLanguage[language][47], 75, 15); - if (radio.rds.region == REGION_US) PSSprite.drawString(myLanguage[language][48], 75, 15); + switch (radio.rds.region) { + case 0: PSSprite.drawString(myLanguage[language][47], 75, 15); break; + case 1: PSSprite.drawString(String(myLanguage[language][48]) + " DB", 75, 15); break; + case 2: PSSprite.drawString(myLanguage[language][48], 75, 15); break; + case 3: PSSprite.drawString(myLanguage[language][300], 75, 15); break; + } break; case FMSETTINGS: @@ -3687,10 +3695,20 @@ void MenuUpDown(bool dir) { break; case ITEM2: - if (radio.rds.region == REGION_EU) radio.rds.region = REGION_US; else radio.rds.region = REGION_EU; - if (radio.rds.region == REGION_EU) OneBigLineSprite.drawString(myLanguage[language][47], 135, 0); - if (radio.rds.region == REGION_US) OneBigLineSprite.drawString(myLanguage[language][48], 135, 0); + if (dir) { + radio.rds.region++; + if (radio.rds.region > 3) radio.rds.region = 0; + } else { + radio.rds.region--; + if (radio.rds.region > 3) radio.rds.region = 3; + } + switch (radio.rds.region) { + case 0: OneBigLineSprite.drawString(myLanguage[language][47], 135, 0); break; + case 1: OneBigLineSprite.drawString(String(myLanguage[language][48]) + " DB", 135, 0); break; + case 2: OneBigLineSprite.drawString(myLanguage[language][48], 135, 0); break; + case 3: OneBigLineSprite.drawString(myLanguage[language][300], 135, 0); break; + } OneBigLineSprite.pushSprite(24, 118); break; @@ -4916,9 +4934,12 @@ void DoMenu() { case ITEM2: Infoboxprint(myLanguage[language][46]); - if (radio.rds.region == REGION_EU) OneBigLineSprite.drawString(myLanguage[language][47], 135, 0); - if (radio.rds.region == REGION_US) OneBigLineSprite.drawString(myLanguage[language][48], 135, 0); - + switch (radio.rds.region) { + case 0: OneBigLineSprite.drawString(myLanguage[language][47], 135, 0); break; + case 1: OneBigLineSprite.drawString(String(myLanguage[language][48]) + " DB", 135, 0); break; + case 2: OneBigLineSprite.drawString(myLanguage[language][48], 135, 0); break; + case 3: OneBigLineSprite.drawString(myLanguage[language][300], 135, 0); break; + } OneBigLineSprite.pushSprite(24, 118); break; diff --git a/src/language.h b/src/language.h index f809fde..13e7174 100644 --- a/src/language.h +++ b/src/language.h @@ -5,7 +5,7 @@ // [number of languages][number of texts] -static const char* const myLanguage[21][300] PROGMEM = { +static const char* const myLanguage[21][301] PROGMEM = { { "English", // English "Rotary direction changed", // 1 "Please release button", // 2 @@ -305,7 +305,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Autologger", // 296 "Auto DST on NTP time", // 297 "Set NTP time offset", // 298 - "The logbook contains over 130 entries, which the viewer cannot process. Please download the CSV file to process it." // 299 + "The logbook contains over 130 entries, which the viewer cannot process. Please download the CSV file to process it.", // 299 + "Canada" // 300 }, { "Nederlands", // Dutch @@ -607,7 +608,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Automatisch loggen", // 296 "Auto zomertijd\nop NTP tijd", // 297 "NTP tijdverschil\ninstellen", // 298 - "Het logboek bevat meer dan 130 items, die de viewer niet kan verwerken. Download alstublieft het CSV-bestand om het te bekijken." // 299 + "Het logboek bevat meer dan 130 items, die de viewer niet kan verwerken. Download alstublieft het CSV-bestand om het te bekijken.", // 299 + "Canada" // 300 }, { "Polski", // Polish @@ -909,7 +911,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Autologowanie stacji", // 296 "Auto czas letni wg NTP", // 297 "Ustaw odchyl. czasu NTP", // 298 - "Wykaz zawiera ponad 130 wpisów, których przeglądarka nie może pokazać. Pobierz plik CSV, aby je przetworzyć." // 299 + "Wykaz zawiera ponad 130 wpisów, których przeglądarka nie może pokazać. Pobierz plik CSV, aby je przetworzyć.", // 299 + "Canada" // 300 }, { "Hrvatski", // Croatian @@ -1211,7 +1214,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Autologger", // 296 "Auto DST na NTP vremenu", // 297 "Postavi NTP pomak vremena", // 298 - "Dnevnik sadrži preko 130 unosa, koje preglednik ne može obraditi. Preuzmite CSV datoteku za obradu." // 299 + "Dnevnik sadrži preko 130 unosa, koje preglednik ne može obraditi. Preuzmite CSV datoteku za obradu.", // 299 + "Canada" // 300 }, { "Ελληνικά", // Greek @@ -1513,7 +1517,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Αυτόματη καταγραφή", // 296 "Αυτόματο DST\nσε ώρα NTP", // 297 "Ολίσθηση ώρας NTP", // 298 - "Το βιβλίο περιέχει πάνω από 130 καταγραφές, και είναι αδύνατη η επεξεργασία τους από το χρήστη. Κάντε λήψη του αρχείου CSV για να το επεξεργαστείτε." // 299 + "Το βιβλίο περιέχει πάνω από 130 καταγραφές, και είναι αδύνατη η επεξεργασία τους από το χρήστη. Κάντε λήψη του αρχείου CSV για να το επεξεργαστείτε.", // 299 + "Canada" // 300 }, { "Română", // Romanian @@ -1815,7 +1820,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Autologger", // 296 "Auto DST pe ora NTP", // 297 "Setează offsetul pentru ora NTP", // 298 - "Jurnalul conține peste 130 de intrări, pe care vizualizatorul nu le poate procesa. Te rog descarcă fișierul CSV pentru a le procesa." // 299 + "Jurnalul conține peste 130 de intrări, pe care vizualizatorul nu le poate procesa. Te rog descarcă fișierul CSV pentru a le procesa.", // 299 + "Canada" // 300 }, { "Deutsch", // German @@ -2117,7 +2123,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Automatisch loggen", // 296 "Auto-Sommerzeit\nüber NTP", // 297 "NTP-Zeitversatz\neinstellen", // 298 - "Das Logbuch enthält mehr als 130 Einträge, was das Anzeigeprogramm nicht verarbeiten kann. Bitte lade die CSV-Datei zum Verarbeiten herunter." // 299 + "Das Logbuch enthält mehr als 130 Einträge, was das Anzeigeprogramm nicht verarbeiten kann. Bitte lade die CSV-Datei zum Verarbeiten herunter.", // 299 + "Canada" // 300 }, { "Čeština", // Czech @@ -2419,7 +2426,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Automatický logger", // 296 "Auto DST u NTP času", // 297 "Nastavte časový posun NTP", // 298 - "Logbook obsahuje více než 130 položek, které prohlížeč nedokáže zpracovat. Pro zpracování všech položek si stáhněte CSV soubor." // 299 + "Logbook obsahuje více než 130 položek, které prohlížeč nedokáže zpracovat. Pro zpracování všech položek si stáhněte CSV soubor.", // 299 + "Canada" // 300 }, { "Magyar", // Hungarian @@ -2721,7 +2729,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Auto logoló", // 296 "Auto nyári idő(DST)\nNTP idő szerint", // 297 "NTP időeltolás beállítása", // 298 - "A napló több mint 130 bejegyzést tartalmaz, amelyeket a megtekintő nem tud feldolgozni. Kérlek, töltsd le a CSV fájlt a megtekintéshez." // 299 + "A napló több mint 130 bejegyzést tartalmaz, amelyeket a megtekintő nem tud feldolgozni. Kérlek, töltsd le a CSV fájlt a megtekintéshez.", // 299 + "Canada" // 300 }, { "Français", // French @@ -3023,7 +3032,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Log automatique", // 296 "DST automatique\nsur l'heure NTP", // 297 "Paramétrage du décalage horaire NTP", // 298 - "Le journal de bord contient plus de 130 entrées que la liste ne peut pas afficher. Veuillez télécharger le fichier CSV." // 299 + "Le journal de bord contient plus de 130 entrées que la liste ne peut pas afficher. Veuillez télécharger le fichier CSV.", // 299 + "Canada" // 300 }, { "Български", // Bulgarian @@ -3325,7 +3335,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Автоматичен дневник", // 296 "Автоматично лятно\nвреме по NTP", // 297 "Отместване на NTP", // 298 - "Дневникът съдържа над 130 записа, които не могат да бъдат обработени. Моля, изтеглете CSV файла за обработка." // 299 + "Дневникът съдържа над 130 записа, които не могат да бъдат обработени. Моля, изтеглете CSV файла за обработка.", // 299 + "Canada" // 300 }, { "Русский", // Russian @@ -3627,7 +3638,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Автологгер", // 296 "Автоматическое летнее время по NTP", // 297 "Смещение времени NTP", // 298 - "В логе более 130 записей, которые программа просмотра не может обработать. Загрузите файл CSV для его обработки." // 299 + "В логе более 130 записей, которые программа просмотра не может обработать. Загрузите файл CSV для его обработки.", // 299 + "Canada" // 300 }, { "Українська", // Ukranian @@ -3929,7 +3941,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Автореєстратор", // 296 "Автоматичний літній\nчас за часом NTP", // 297 "Установити зміщення\nчасу NTP", // 298 - "Журнал містить понад 130 записів, які програма перегляду не може обробити. Будь ласка, завантажте файл CSV, щоб обробити його." // 299 + "Журнал містить понад 130 записів, які програма перегляду не може обробити. Будь ласка, завантажте файл CSV, щоб обробити його.", // 299 + "Canada" // 300 }, { "Italiano", // Italian @@ -4231,7 +4244,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Autologger", // 296 "Auto DST su tempo NTP", // 297 "Imposta offset orario NTP", // 298 - "Il registro contiene più di 130 voci, che il visualizzatore non può elaborare. Scarica il file CSV per elaborarlo." // 299 + "Il registro contiene più di 130 voci, che il visualizzatore non può elaborare. Scarica il file CSV per elaborarlo.", // 299 + "Canada" // 300 }, { "Simplified Chinese", // Simplified Chinese @@ -4533,7 +4547,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "自动物体", // 296 "联网自动同步本机时间", // 297 "设置NTP时区", // 298 - "该日志包含超过130个条目,观看者无法处理。请下载CSV文件进行处理。" // 299 + "该日志包含超过130个条目,观看者无法处理。请下载CSV文件进行处理。", // 299 + "Canada" // 300 }, { "Norsk", // Norwegian @@ -4835,7 +4850,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Autologger", // 296 "Auto sommertid med NTP", // 297 "Angi NTP-tidsforskyvning", // 298 - "Loggbok har over 130 oppføringer.\nLast ned CSV for behandling." // 299 + "Loggbok har over 130 oppføringer.\nLast ned CSV for behandling.", // 299 + "Canada" // 300 }, { "Español", // Spanish @@ -5137,7 +5153,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Autoregistro", // 296 "DST automático (NTP)", // 297 "Ajustar\ndesplazamiento NTP", // 298 - "El registro tiene +130 entradas.\nDescargue el CSV." // 299 + "El registro tiene +130 entradas.\nDescargue el CSV.", // 299 + "Canada" // 300 }, { "Português", // Portuguese @@ -5439,7 +5456,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Registrador automático", // 296 "DST automático\nno horário NTP", // 297 "Definir deslocamento\nde tempo NTP", // 298 - "O diário de bordo contém mais de 130 entradas que o espectador não consegue processar. Descarregue o ficheiro CSV para processá-lo." // 299 + "O diário de bordo contém mais de 130 entradas que o espectador não consegue processar. Descarregue o ficheiro CSV para processá-lo.", // 299 + "Canada" // 300 }, { "Srpski", // Serbian @@ -5741,7 +5759,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Automatski logger", // 296 "Auto DST na\nNTP vremenu", // 297 "Postavite NTP\nvremenski offset", // 298 - "Dnevnik sadrži više od 130 unosa, što viewer ne može obraditi. Preuzmite CSV fajl za obradu." // 299 + "Dnevnik sadrži više od 130 unosa, što viewer ne može obraditi. Preuzmite CSV fajl za obradu.", // 299 + "Canada" // 300 }, { "Suomi", // Finnish @@ -6043,7 +6062,8 @@ static const char* const myLanguage[21][300] PROGMEM = { "Autolokikirja", // 296 "Auto DST\nNTP-ajassa", // 297 "Aseta\nNTP-aikasiirto", // 298 - "Lokikirja sisältää yli 130 merkintää, joita katselija ei pysty käsittelemään. Lataa CSV-tiedosto sen käsittelemiseksi." // 299 + "Lokikirja sisältää yli 130 merkintää, joita katselija ei pysty käsittelemään. Lataa CSV-tiedosto sen käsittelemiseksi.", // 299 + "Canada" // 300 }, { "Dansk", // Danish @@ -6345,8 +6365,9 @@ static const char* const myLanguage[21][300] PROGMEM = { "Autologger", // 296 "Auto DST på\nNTP-tid", // 297 "Indstil NTP-tidsforskel", // 298 - "Logbogen indeholder over 130 poster, som fremviseren ikke kan behandle. Download CSV-filen for at behandle den." // 299 + "Logbogen indeholder over 130 poster, som fremviseren ikke kan behandle. Download CSV-filen for at behandle den.", // 299 + "Canada" // 300 } }; -#endif +#endif \ No newline at end of file