This commit is contained in:
Sjef Verhoeven PE5PVB
2024-05-17 15:09:19 +02:00
5 changed files with 228 additions and 71 deletions
+10 -5
View File
@@ -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 2220 // Total occupied eeprom bytes
#define EE_TOTAL_CNT 2221 // Total occupied eeprom bytes
#else
#define EE_TOTAL_CNT 2215 // Total occupied eeprom bytes
#define EE_TOTAL_CNT 2216 // Total occupied eeprom bytes
#endif
#define EE_PRESETS_BAND_START 0 // 99 * 1 byte
@@ -310,10 +310,11 @@
#define EE_BYTE_SCANMEM 2211
#define EE_BYTE_SCANCANCEL 2212
#define EE_BYTE_SCANMUTE 2213
#define EE_BYTE_AUTOSQUELCH 2214
#define EE_BYTE_AUTOSQUELCH 2214
#define EE_BYTE_LONGBANDPRESS 2215
#ifdef HAS_AIR_BAND
#define EE_BYTE_AIRSTEPSIZE 2115
#define EE_UINT16_FREQUENCY_AIR 2216
#define EE_BYTE_AIRSTEPSIZE 2116
#define EE_UINT16_FREQUENCY_AIR 2217
#endif
// End of EEPROM index defines
@@ -332,6 +333,10 @@ typedef struct {
char RDSPS[9];
} mem;
enum LONGBANDBUTTONPRESS {
STANDBY = 0, SCREENOFF
};
enum SCAN_CANCEL {
SCAN_CANCEL = OFF, CORRECTPI, SIGNAL
};
+90 -24
View File
@@ -8,7 +8,7 @@
#include <cstring>
byte menuitem;
byte items[9] = {9, static_cast<byte>(dynamicspi ? 9 : 8), 7, 10, 9, 10, 9, 6, 7};
byte items[9] = {9, static_cast<byte>(dynamicspi ? 10 : 9), 7, 10, 9, 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/
@@ -1287,20 +1287,16 @@ void ShowOneLine(byte position, byte item, bool selected) {
break;
case MAINSETTINGS:
if (dynamicspi) {
FullLineSprite.setTextDatum(TL_DATUM);
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
FullLineSprite.drawString(removeNewline(myLanguage[language][81]), 6, 3);
FullLineSprite.setTextDatum(TL_DATUM);
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
FullLineSprite.drawString(removeNewline(myLanguage[language][224]), 6, 3);
FullLineSprite.setTextDatum(TR_DATUM);
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
FullLineSprite.drawString("MHz", 298, 3);
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
if (spispeed == 7) {
FullLineSprite.drawString(myLanguage[language][86], 258, 3);
} else {
FullLineSprite.drawString((spispeed == SPI_SPEED_DEFAULT ? String(myLanguage[language][204]) + " " + String(SPI_FREQUENCY / 1000000, DEC) : String(spispeed * 10, DEC)), 258, 3);
}
FullLineSprite.setTextDatum(TR_DATUM);
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
switch (longbandpress) {
case STANDBY: FullLineSprite.drawString(myLanguage[language][225], 298, 3); break;
case SCREENOFF: FullLineSprite.drawString(myLanguage[language][226], 298, 3); break;
default: FullLineSprite.drawString(myLanguage[language][227], 298, 3); break;
}
break;
@@ -1352,6 +1348,26 @@ void ShowOneLine(byte position, byte item, bool selected) {
FullLineSprite.drawString(removeNewline(String(myLanguage[language][84]) + " " + String(VERSION)), 152, 3);
break;
case MAINSETTINGS:
if (dynamicspi) {
FullLineSprite.setTextDatum(TL_DATUM);
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
FullLineSprite.drawString(removeNewline(myLanguage[language][81]), 6, 3);
FullLineSprite.setTextDatum(TR_DATUM);
if (spispeed == 7) {
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
FullLineSprite.drawString(myLanguage[language][86], 298, 3);
} else {
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
FullLineSprite.drawString("MHz", 298, 3);
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
FullLineSprite.drawString((spispeed == SPI_SPEED_DEFAULT ? String(myLanguage[language][204]) + " " + String(SPI_FREQUENCY / 1000000, DEC) : String(spispeed * 10, DEC)), 258, 3);
}
}
break;
case DISPLAYSETTINGS:
FullLineSprite.setTextDatum(TL_DATUM);
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
@@ -1863,16 +1879,33 @@ void MenuUp() {
break;
case ITEM9:
longbandpress++;
if (longbandpress > 2) longbandpress = 0;
switch (longbandpress) {
case STANDBY: OneBigLineSprite.drawString(myLanguage[language][225], 135, 0); break;
case SCREENOFF: OneBigLineSprite.drawString(myLanguage[language][226], 135, 0); break;
default: OneBigLineSprite.drawString(myLanguage[language][227], 135, 0); break;
}
OneBigLineSprite.pushSprite(24, 118);
break;
case ITEM10:
spispeed++;
if (spispeed > SPI_SPEED_COUNT - 1) spispeed = 0;
OneBigLineSprite.setTextDatum(TL_DATUM);
OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
OneBigLineSprite.drawString("MHz", 175, 0);
OneBigLineSprite.setTextDatum(TR_DATUM);
if (spispeed != 7) {
OneBigLineSprite.drawString("MHz", 175, 0);
OneBigLineSprite.setTextDatum(TR_DATUM);
} else {
OneBigLineSprite.setTextDatum(TC_DATUM);
}
OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
if (spispeed == 7) {
OneBigLineSprite.drawString(myLanguage[language][86], 160, 0);
OneBigLineSprite.drawString(myLanguage[language][86], 135, 0);
} else {
OneBigLineSprite.drawString((spispeed == SPI_SPEED_DEFAULT ? String(myLanguage[language][204]) + " " + String(SPI_FREQUENCY / 1000000, DEC) : String(spispeed * 10, DEC)), 160, 0);
}
@@ -2694,15 +2727,33 @@ void MenuDown() {
break;
case ITEM9:
longbandpress--;
if (longbandpress > 2) longbandpress = 2;
switch (longbandpress) {
case STANDBY: OneBigLineSprite.drawString(myLanguage[language][225], 135, 0); break;
case SCREENOFF: OneBigLineSprite.drawString(myLanguage[language][226], 135, 0); break;
default: OneBigLineSprite.drawString(myLanguage[language][227], 135, 0); break;
}
OneBigLineSprite.pushSprite(24, 118);
break;
case ITEM10:
spispeed--;
if (spispeed > SPI_SPEED_COUNT - 1) spispeed = SPI_SPEED_COUNT - 1;
OneBigLineSprite.setTextDatum(TL_DATUM);
OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
OneBigLineSprite.drawString("MHz", 175, 0);
OneBigLineSprite.setTextDatum(TR_DATUM);
if (spispeed != 7) {
OneBigLineSprite.drawString("MHz", 175, 0);
OneBigLineSprite.setTextDatum(TR_DATUM);
} else {
OneBigLineSprite.setTextDatum(TC_DATUM);
}
OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
if (spispeed == 7) {
OneBigLineSprite.drawString(myLanguage[language][86], 160, 0);
OneBigLineSprite.drawString(myLanguage[language][86], 135, 0);
} else {
OneBigLineSprite.drawString((spispeed == SPI_SPEED_DEFAULT ? String(myLanguage[language][204]) + " " + String(SPI_FREQUENCY / 1000000, DEC) : String(spispeed * 10, DEC)), 160, 0);
}
@@ -3577,20 +3628,35 @@ void DoMenu() {
case AM_BAND_NONE: OneBigLineSprite.drawString(myLanguage[language][83], 135, 0); break;
}
#endif
OneBigLineSprite.pushSprite(24, 118);
break;
case ITEM9:
Infoboxprint(myLanguage[language][224]);
switch (longbandpress) {
case STANDBY: OneBigLineSprite.drawString(myLanguage[language][225], 135, 0); break;
case SCREENOFF: OneBigLineSprite.drawString(myLanguage[language][226], 135, 0); break;
default: OneBigLineSprite.drawString(myLanguage[language][227], 135, 0); break;
}
OneBigLineSprite.pushSprite(24, 118);
break;
case ITEM10:
Infoboxprint(myLanguage[language][81]);
OneBigLineSprite.setTextDatum(TL_DATUM);
OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
OneBigLineSprite.drawString("MHz", 175, 0);
OneBigLineSprite.setTextDatum(TR_DATUM);
if (spispeed != 7) {
OneBigLineSprite.drawString("MHz", 175, 0);
OneBigLineSprite.setTextDatum(TR_DATUM);
} else {
OneBigLineSprite.setTextDatum(TC_DATUM);
}
OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
if (spispeed == 7) {
OneBigLineSprite.drawString(myLanguage[language][86], 160, 0);
OneBigLineSprite.drawString(myLanguage[language][86], 135, 0);
} else {
OneBigLineSprite.drawString((spispeed == SPI_SPEED_DEFAULT ? String(myLanguage[language][204]) + " " + String(SPI_FREQUENCY / 1000000, DEC) : String(spispeed * 10, DEC)), 160, 0);
}
+1
View File
@@ -98,6 +98,7 @@ extern byte HighCutLevel;
extern byte HighCutOffset;
extern byte language;
extern byte licold;
extern byte longbandpress;
extern byte memorypos;
extern byte menupage;
extern byte MSold;
+104 -32
View File
@@ -5,7 +5,7 @@
// [number of languages][number of texts]
// *** means the text is the same as in English
static const char* const myLanguage[18][224] PROGMEM = {
static const char* const myLanguage[18][228] PROGMEM = {
{ "English", // English
"Rotary direction changed", // 1
"Please release button", // 2
@@ -229,7 +229,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correct PI", // 220
"Signal", // 221
"Mute audio\nwhile scanning", // 222
"AIR" // 223
"AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
},
{ "Nederlands", // Dutch
@@ -455,7 +459,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correcte PI", // 220
"Signaal", // 221
"Geen geluid\ntijdens scannen", // 222
"AIR" // 223
"AIR", // 223
"5 sec. bandbutton ingedrukt", // 224
"Uitschakelen", // 225
"Scherm uit", // 226
"Geen functie" // 227
},
{ "Polski", // Polish
@@ -681,7 +689,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Poprawne PI", // 220
"Sygnał", // 221
"Wycisz dźwięk\npodczas skanowania", // 222
"AIR" // 223
"AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
},
{ "Hrvatski", // Croatian
@@ -907,7 +919,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correct PI", // 220
"Signal", // 221
"Mute audio\nwhile scanning", // 222
"AIR" // 223
"AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
},
{ "Ελληνικά", // Greek
@@ -1124,7 +1140,7 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Χρόνος αναμονής", // 211
"Εκκίνηση DX ανίχνευσης", // 212
"Επιλογές FM DX", // 213
"Ματαίωση! Παράλειψη\nτου καναλιού εκκίνησης.", // 214
"Ματαίωση! Λείπει\nτο κανάλι εκκίνησης.", // 214
"Αυτόματη ταξινόμηση\nAF", // 215
"Κανάλια μνήμης", // 216
"Εξαίρεση", // 217
@@ -1133,7 +1149,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Σωστό PI", // 220
"Σήμα", // 221
"Σίγαση ήχου\nκατά την ανίχνευση", // 222
"AIR" // 223
"AIR", // 223
"Πιέση πλήκτρου\nμπάντας 5 δευτ.", // 224
"Σβήσιμο", // 225
"Σβήσιμο οθόνης", // 226
"Ανενεργό" // 227
},
{ "Română", // Romanian
@@ -1359,7 +1379,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correct PI", // 220
"Signal", // 221
"Mute audio\nwhile scanning", // 222
"AIR" // 223
"AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
},
{ "Deutsch", // German
@@ -1585,7 +1609,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Korrekter PI-Code", // 220
"Signal", // 221
"Stumm beim Scannen", // 222
"AIR" // 223
"AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
},
{ "Český", // Czech
@@ -1811,7 +1839,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correct PI", // 220
"Signal", // 221
"Mute audio\nwhile scanning", // 222
"AIR" // 223
"AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
},
{ "Slovenský", // Slovak
@@ -2037,7 +2069,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correct PI", // 220
"Signal", // 221
"Mute audio\nwhile scanning", // 222
"AIR" // 223
"AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
},
{ "Français", // French
@@ -2263,7 +2299,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"PI Correct", // 220
"Signal", // 221
"Audio muet lors\nde la numérisation", // 222
"AIR" // 223
"AIR", // 223
"Appui sur le bouton\nband 5 sec.", // 224
"Éteindre", // 225
"Écran muet", // 226
"Inactif" // 227
},
{ "Български", // Bulgarian
@@ -2489,7 +2529,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correct PI", // 220
"Signal", // 221
"Mute audio\nwhile scanning", // 222
"AIR" // 223
"AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
},
{ "Русский", // Russian
@@ -2715,7 +2759,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"При корректном PI", // 220
"При наличии сигнала", // 221
"Отключать аудио\nпри сканировании", // 222
"AIR" // 223
"AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
},
{ "Українська", // Ukranian
@@ -2941,7 +2989,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correct PI", // 220
"Signal", // 221
"Mute audio\nwhile scanning", // 222
"AIR" // 223
"AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
},
{ "Italiano", // Italian
@@ -3006,7 +3058,7 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Mostra banda SW in m.", // 59
"Filtro RDS", // 60
"Mostra errori PI", // 61
"Utilizzare squelch", // 62
"Utilizzare squelch", // 62
"Meter di modulazione", // 63
"Soppressione rumore AM", // 64
"Soppressione rumore FM", // 65
@@ -3027,7 +3079,7 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Min.", // 80 ***
"Velocità SPI Dinamico", // 81 ***
"Sensibilità scansione", // 82
"ASSENTE", // 83
"ASSENTE", // 83
"Versione Software", // 84
"Font frequenza", // 85 ***
"Auto", // 86
@@ -3167,7 +3219,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"PI corretto", // 220
"Signale", // 221
"Audio silenziato\ndurante scansione", // 222
"AIR" // 223
"AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
},
{ "Simplified Chinese", // Simplified Chinese
@@ -3393,7 +3449,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"节目识别码正确", // 220
"信号超阈值", // 221
"扫描时静音", // 222
"AIR" // 223
"AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
},
{ "Norsk", // Norwegian
@@ -3432,7 +3492,7 @@ static const char* const myLanguage[18][224] PROGMEM = {
"AV", // 33
"SKANNER...", // 34
"Tuner ikke oppdaget", // 35
"AM Antenna gain", // 36
"AM-antenneforsterkning", // 36
"FM AGC", // 37
"Vis RDS-feil", // 38
"Språk", // 39
@@ -3444,7 +3504,7 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Pip ved båndkant", // 45
"Region", // 46 ***
"Europa", // 47
"America", // 48 ***
"Amerika", // 48
"Vis understrek i RDS", // 49
"USB modus", // 50
"Wi-Fi aktiv", // 51
@@ -3481,7 +3541,7 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Skannefølsomhet", // 82
"INGEN", // 83
"Programvareversjon", // 84
"Frekvens skrifttype", // 85 ***
"Frekvens skrifttype", // 85
"Auto", // 86
"Ingen AF", // 87
"Ingen EON", // 88
@@ -3570,7 +3630,7 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Ocean", // 171 ***
"Indigo", // 172 ***
"Batterialternativer", // 173
"Vis batteriverdi", // 174
"Vis batterispenning", // 174
"Vis batteriprosent", // 175
"RT buffering", // 176 ***
"Hovedinnstillinger", // 177
@@ -3592,9 +3652,9 @@ static const char* const myLanguage[18][224] PROGMEM = {
"FM", // 193 ***
"AM", // 194 ***
"TILKOBLE", // 195
"DX MODE", // 196
"DX MODUS", // 196
"Stationlist ID", // 197 ***
"AM ATT", // 198
"AM AGC", // 198
"FM ettertrykkelse", // 199
"Lite", // 200
"Mye", // 201
@@ -3602,7 +3662,7 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Rask PS", // 203
"Standard", // 204
"Dempet skjerm på\nXDRGTK tilkobling", // 205
"FMSI stereo forbedringt", // 206
"FMSI stereo forbedring", // 206
"Kun tilgjengelig\npå TEF6687/6689!", // 207
"Funksjon ikke tilgjengelig\npå valgt skin!", // 208
"Begynn å skanne\nminnekanaler", // 209
@@ -3616,10 +3676,14 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Utelukke", // 217
"Kun", // 218
"Avbryt skanning automatisk", // 219
"korrekt PI", // 220
"Korrekt PI", // 220
"Signal", // 221
"Demp lyden\nmens du skanner", // 222
"AIR" // 223
"Flybånd", // 223
"Hold båndknappen\n i 5 sek", // 224
"Slå av radio", // 225
"Slå av skjerm", // 226
"Deaktivert" // 227
},
{ "Español", // Spanish
@@ -3655,7 +3719,7 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Apagar", // 30
"¡La pantalla está en silencio!", // 31
"Para desactivar,\ndesmarque la casilla RF+", // 32
"APAGADO", // 33
"APAG.", // 33
"ESCANEANDO...", // 34
"Sintonizador no detectado", // 35
"AM Ganancia de antena", // 36
@@ -3845,7 +3909,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"PI correcto", // 220
"Señal", // 221
"Audio mudo\nmientras busca", // 222
"AIR" // 223
"AIR", // 223
"Presione el botón\nband durante 5 seg.", // 224
"Apagado", // 225
"Pantalla silenciosa", // 226
"Inactivo" // 227
},
{ "Português", // Portuguese
@@ -3881,7 +3949,7 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Desligado", // 30
"A tela está silenciada!", // 31
"Para desativar o silenciamento,\ndesmarque a caixa RF+", // 32
"DESATIVADO", // 33
"DESAT.", // 33
"ANALISANDO...", // 34
"Sintonizador não detectado", // 35
"AM Ganho da antena", // 36
@@ -4071,7 +4139,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"PI correto", // 220
"Sinal", // 221
"Mudo áudio\nenquanto procura", // 222
"AIR" // 223
"AIR", // 223
"Pressione o botão\nbanda por 5 seg.", // 224
"Desligar", // 225
"Silenciar tela", // 226
"Inativo" // 227
}
};
#endif