Merge branch 'main' into New_Model_DP_666

This commit is contained in:
Leon
2024-05-15 23:40:17 +08:00
5 changed files with 226 additions and 64 deletions
+30 -12
View File
@@ -180,6 +180,7 @@ byte iMSEQ;
byte iMSset; byte iMSset;
byte language; byte language;
byte licold; byte licold;
byte longbandpress;
byte memorypos; byte memorypos;
byte memoryposold; byte memoryposold;
byte memoryposstatus; byte memoryposstatus;
@@ -518,6 +519,7 @@ void setup() {
scancancel = EEPROM.readByte(EE_BYTE_SCANCANCEL); scancancel = EEPROM.readByte(EE_BYTE_SCANCANCEL);
scanmute = EEPROM.readByte(EE_BYTE_SCANMUTE); scanmute = EEPROM.readByte(EE_BYTE_SCANMUTE);
autosquelch = EEPROM.readByte(EE_BYTE_AUTOSQUELCH); autosquelch = EEPROM.readByte(EE_BYTE_AUTOSQUELCH);
longbandpress = EEPROM.readByte(EE_BYTE_LONGBANDPRESS);
if (spispeed == SPI_SPEED_DEFAULT) { if (spispeed == SPI_SPEED_DEFAULT) {
tft.setSPISpeed(SPI_FREQUENCY / 1000000); tft.setSPISpeed(SPI_FREQUENCY / 1000000);
@@ -610,6 +612,9 @@ void setup() {
pinMode(ROTARY_BUTTON, INPUT); pinMode(ROTARY_BUTTON, INPUT);
pinMode(ROTARY_PIN_A, INPUT); pinMode(ROTARY_PIN_A, INPUT);
pinMode(ROTARY_PIN_B, INPUT); pinMode(ROTARY_PIN_B, INPUT);
pinMode (STANDBYLED, OUTPUT);
digitalWrite(STANDBYLED, HIGH);
attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A), read_encoder, CHANGE); attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A), read_encoder, CHANGE);
attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B), read_encoder, CHANGE); attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B), read_encoder, CHANGE);
@@ -1195,8 +1200,6 @@ void WakeToSleep(bool yes) {
} else { } else {
switch (poweroptions) { switch (poweroptions) {
case LCD_OFF: case LCD_OFF:
pinMode (STANDBYLED, OUTPUT);
digitalWrite(STANDBYLED, LOW);
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
MuteScreen(0); MuteScreen(0);
screensavertriggered = false; screensavertriggered = false;
@@ -1206,8 +1209,6 @@ void WakeToSleep(bool yes) {
case LCD_BRIGHTNESS_1_PERCENT: case LCD_BRIGHTNESS_1_PERCENT:
case LCD_BRIGHTNESS_A_QUARTER: case LCD_BRIGHTNESS_A_QUARTER:
case LCD_BRIGHTNESS_HALF: case LCD_BRIGHTNESS_HALF:
pinMode (STANDBYLED, OUTPUT);
digitalWrite(STANDBYLED, LOW);
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
MuteScreen(0); MuteScreen(0);
screensavertriggered = false; screensavertriggered = false;
@@ -1682,6 +1683,19 @@ void BANDBUTTONPress() {
} else { } else {
WakeToSleep(true); WakeToSleep(true);
} }
while (digitalRead(BANDBUTTON) == LOW && counter - counterold <= 2500) counter = millis();
if (counter - counterold > 2499) {
switch (longbandpress) {
case STANDBY:
deepSleep();
break;
case SCREENOFF:
screensavertriggered = true;
MuteScreen(1);
break;
}
}
} }
} }
} }
@@ -2755,24 +2769,24 @@ void DoMemoryPosTune() {
radio.SetFreq(frequency); radio.SetFreq(frequency);
break; break;
case BAND_OIRT: case BAND_OIRT:
frequency = presets[memorypos].frequency; frequency_OIRT = presets[memorypos].frequency;
radio.SetFreq(frequency_OIRT); radio.SetFreq(frequency_OIRT);
break; break;
case BAND_LW: case BAND_LW:
frequency = presets[memorypos].frequency; frequency_LW = presets[memorypos].frequency;
radio.SetFreq(frequency_LW); radio.SetFreqAM(frequency_LW);
break; break;
case BAND_MW: case BAND_MW:
frequency = presets[memorypos].frequency; frequency_MW = presets[memorypos].frequency;
radio.SetFreq(frequency_MW); radio.SetFreqAM(frequency_MW);
break; break;
case BAND_SW: case BAND_SW:
frequency = presets[memorypos].frequency; frequency_SW = presets[memorypos].frequency;
radio.SetFreq(frequency_SW); radio.SetFreqAM(frequency_SW);
break; break;
#ifdef HAS_AIR_BAND #ifdef HAS_AIR_BAND
case BAND_AIR: case BAND_AIR:
frequency = presets[memorypos].frequency; frequency_AIR = presets[memorypos].frequency;
// radio.SetFreq(frequency_AIR); // todo // radio.SetFreq(frequency_AIR); // todo
radio.SetFreqAM(10700); // todo radio.SetFreqAM(10700); // todo
break; break;
@@ -4155,6 +4169,7 @@ void DefaultSettings(byte userhardwaremodel) {
EEPROM.writeByte(EE_BYTE_SCANCANCEL, 0); EEPROM.writeByte(EE_BYTE_SCANCANCEL, 0);
EEPROM.writeByte(EE_BYTE_SCANMUTE, 0); EEPROM.writeByte(EE_BYTE_SCANMUTE, 0);
EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, 0); EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, 0);
EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, 0);
for (int i = 0; i < EE_PRESETS_CNT; i++) { for (int i = 0; i < EE_PRESETS_CNT; i++) {
EEPROM.writeByte(i + EE_PRESETS_BAND_START, BAND_FM); EEPROM.writeByte(i + EE_PRESETS_BAND_START, BAND_FM);
@@ -4241,6 +4256,8 @@ void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int colo
void deepSleep() { void deepSleep() {
analogWrite(SMETERPIN, 0); analogWrite(SMETERPIN, 0);
pinMode (STANDBYLED, OUTPUT);
digitalWrite(STANDBYLED, LOW);
MuteScreen(1); MuteScreen(1);
StoreFrequency(); StoreFrequency();
radio.power(1); radio.power(1);
@@ -4385,6 +4402,7 @@ void endMenu() {
EEPROM.writeByte(EE_BYTE_SCANCANCEL, scancancel); EEPROM.writeByte(EE_BYTE_SCANCANCEL, scancancel);
EEPROM.writeByte(EE_BYTE_SCANMUTE, scanmute); EEPROM.writeByte(EE_BYTE_SCANMUTE, scanmute);
EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, autosquelch); EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, autosquelch);
EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, longbandpress);
EEPROM.commit(); EEPROM.commit();
if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false; if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false;
Serial.end(); Serial.end();
+9 -4
View File
@@ -209,9 +209,9 @@
#define EE_CHECKBYTE_VALUE 10 // 0 ~ 255,add new entry, change for new value #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! #define EE_PRESETS_FREQUENCY 0 // Default value when memory channel should be skipped!
#ifdef HAS_AIR_BAND #ifdef HAS_AIR_BAND
#define EE_TOTAL_CNT 2220 // Total occupied eeprom bytes #define EE_TOTAL_CNT 2221 // Total occupied eeprom bytes
#else #else
#define EE_TOTAL_CNT 2215 // Total occupied eeprom bytes #define EE_TOTAL_CNT 2216 // Total occupied eeprom bytes
#endif #endif
#define EE_PRESETS_BAND_START 0 // 99 * 1 byte #define EE_PRESETS_BAND_START 0 // 99 * 1 byte
@@ -311,9 +311,10 @@
#define EE_BYTE_SCANCANCEL 2212 #define EE_BYTE_SCANCANCEL 2212
#define EE_BYTE_SCANMUTE 2213 #define EE_BYTE_SCANMUTE 2213
#define EE_BYTE_AUTOSQUELCH 2214 #define EE_BYTE_AUTOSQUELCH 2214
#define EE_BYTE_LONGBANDPRESS 2215
#ifdef HAS_AIR_BAND #ifdef HAS_AIR_BAND
#define EE_BYTE_AIRSTEPSIZE 2115 #define EE_BYTE_AIRSTEPSIZE 2116
#define EE_UINT16_FREQUENCY_AIR 2216 #define EE_UINT16_FREQUENCY_AIR 2217
#endif #endif
// End of EEPROM index defines // End of EEPROM index defines
@@ -332,6 +333,10 @@ typedef struct {
char RDSPS[9]; char RDSPS[9];
} mem; } mem;
enum LONGBANDBUTTONPRESS {
STANDBY = 0, SCREENOFF
};
enum SCAN_CANCEL { enum SCAN_CANCEL {
SCAN_CANCEL = OFF, CORRECTPI, SIGNAL SCAN_CANCEL = OFF, CORRECTPI, SIGNAL
}; };
+80 -14
View File
@@ -8,7 +8,7 @@
#include <cstring> #include <cstring>
byte menuitem; 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[]; extern mem presets[];
void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de/online/rgb565-color-picker/ 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; break;
case MAINSETTINGS: case MAINSETTINGS:
if (dynamicspi) {
FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextDatum(TL_DATUM);
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
FullLineSprite.drawString(removeNewline(myLanguage[language][81]), 6, 3); FullLineSprite.drawString(removeNewline(myLanguage[language][224]), 6, 3);
FullLineSprite.setTextDatum(TR_DATUM); FullLineSprite.setTextDatum(TR_DATUM);
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
FullLineSprite.drawString("MHz", 298, 3);
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
if (spispeed == 7) { switch (longbandpress) {
FullLineSprite.drawString(myLanguage[language][86], 258, 3); case STANDBY: FullLineSprite.drawString(myLanguage[language][225], 298, 3); break;
} else { case SCREENOFF: FullLineSprite.drawString(myLanguage[language][226], 298, 3); break;
FullLineSprite.drawString((spispeed == SPI_SPEED_DEFAULT ? String(myLanguage[language][204]) + " " + String(SPI_FREQUENCY / 1000000, DEC) : String(spispeed * 10, DEC)), 258, 3); default: FullLineSprite.drawString(myLanguage[language][227], 298, 3); break;
}
} }
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); FullLineSprite.drawString(removeNewline(String(myLanguage[language][84]) + " " + String(VERSION)), 152, 3);
break; 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: case DISPLAYSETTINGS:
FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextDatum(TL_DATUM);
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
@@ -1863,16 +1879,33 @@ void MenuUp() {
break; break;
case ITEM9: 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++; spispeed++;
if (spispeed > SPI_SPEED_COUNT - 1) spispeed = 0; if (spispeed > SPI_SPEED_COUNT - 1) spispeed = 0;
OneBigLineSprite.setTextDatum(TL_DATUM); OneBigLineSprite.setTextDatum(TL_DATUM);
OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
if (spispeed != 7) {
OneBigLineSprite.drawString("MHz", 175, 0); OneBigLineSprite.drawString("MHz", 175, 0);
OneBigLineSprite.setTextDatum(TR_DATUM); OneBigLineSprite.setTextDatum(TR_DATUM);
} else {
OneBigLineSprite.setTextDatum(TC_DATUM);
}
OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
if (spispeed == 7) { if (spispeed == 7) {
OneBigLineSprite.drawString(myLanguage[language][86], 160, 0); OneBigLineSprite.drawString(myLanguage[language][86], 135, 0);
} else { } else {
OneBigLineSprite.drawString((spispeed == SPI_SPEED_DEFAULT ? String(myLanguage[language][204]) + " " + String(SPI_FREQUENCY / 1000000, DEC) : String(spispeed * 10, DEC)), 160, 0); 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; break;
case ITEM9: 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--; spispeed--;
if (spispeed > SPI_SPEED_COUNT - 1) spispeed = SPI_SPEED_COUNT - 1; if (spispeed > SPI_SPEED_COUNT - 1) spispeed = SPI_SPEED_COUNT - 1;
OneBigLineSprite.setTextDatum(TL_DATUM); OneBigLineSprite.setTextDatum(TL_DATUM);
OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
if (spispeed != 7) {
OneBigLineSprite.drawString("MHz", 175, 0); OneBigLineSprite.drawString("MHz", 175, 0);
OneBigLineSprite.setTextDatum(TR_DATUM); OneBigLineSprite.setTextDatum(TR_DATUM);
} else {
OneBigLineSprite.setTextDatum(TC_DATUM);
}
OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
if (spispeed == 7) { if (spispeed == 7) {
OneBigLineSprite.drawString(myLanguage[language][86], 160, 0); OneBigLineSprite.drawString(myLanguage[language][86], 135, 0);
} else { } else {
OneBigLineSprite.drawString((spispeed == SPI_SPEED_DEFAULT ? String(myLanguage[language][204]) + " " + String(SPI_FREQUENCY / 1000000, DEC) : String(spispeed * 10, DEC)), 160, 0); 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; case AM_BAND_NONE: OneBigLineSprite.drawString(myLanguage[language][83], 135, 0); break;
} }
#endif #endif
OneBigLineSprite.pushSprite(24, 118); OneBigLineSprite.pushSprite(24, 118);
break; break;
case ITEM9: 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]); Infoboxprint(myLanguage[language][81]);
OneBigLineSprite.setTextDatum(TL_DATUM); OneBigLineSprite.setTextDatum(TL_DATUM);
OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
if (spispeed != 7) {
OneBigLineSprite.drawString("MHz", 175, 0); OneBigLineSprite.drawString("MHz", 175, 0);
OneBigLineSprite.setTextDatum(TR_DATUM); OneBigLineSprite.setTextDatum(TR_DATUM);
} else {
OneBigLineSprite.setTextDatum(TC_DATUM);
}
OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
if (spispeed == 7) { if (spispeed == 7) {
OneBigLineSprite.drawString(myLanguage[language][86], 160, 0); OneBigLineSprite.drawString(myLanguage[language][86], 135, 0);
} else { } else {
OneBigLineSprite.drawString((spispeed == SPI_SPEED_DEFAULT ? String(myLanguage[language][204]) + " " + String(SPI_FREQUENCY / 1000000, DEC) : String(spispeed * 10, DEC)), 160, 0); 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 HighCutOffset;
extern byte language; extern byte language;
extern byte licold; extern byte licold;
extern byte longbandpress;
extern byte memorypos; extern byte memorypos;
extern byte menupage; extern byte menupage;
extern byte MSold; extern byte MSold;
+93 -21
View File
@@ -1,11 +1,11 @@
#ifndef LANGUAGE_H #ifndef LANGUAGE_H
#define LANGUAGE_H #define LANGUAGE_H
#define VERSION "v2.00.16" #define VERSION "v2.10 RC1"
// [number of languages][number of texts] // [number of languages][number of texts]
// *** means the text is the same as in English // *** 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 { "English", // English
"Rotary direction changed", // 1 "Rotary direction changed", // 1
"Please release button", // 2 "Please release button", // 2
@@ -229,7 +229,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correct PI", // 220 "Correct PI", // 220
"Signal", // 221 "Signal", // 221
"Mute audio\nwhile scanning", // 222 "Mute audio\nwhile scanning", // 222
"AIR" // 223 "AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
}, },
{ "Nederlands", // Dutch { "Nederlands", // Dutch
@@ -455,7 +459,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correcte PI", // 220 "Correcte PI", // 220
"Signaal", // 221 "Signaal", // 221
"Geen geluid\ntijdens scannen", // 222 "Geen geluid\ntijdens scannen", // 222
"AIR" // 223 "AIR", // 223
"5 sec. bandbutton ingedrukt", // 224
"Uitschakelen", // 225
"Scherm uit", // 226
"Geen functie" // 227
}, },
{ "Polski", // Polish { "Polski", // Polish
@@ -681,7 +689,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Poprawne PI", // 220 "Poprawne PI", // 220
"Sygnał", // 221 "Sygnał", // 221
"Wycisz dźwięk\npodczas skanowania", // 222 "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 { "Hrvatski", // Croatian
@@ -907,7 +919,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correct PI", // 220 "Correct PI", // 220
"Signal", // 221 "Signal", // 221
"Mute audio\nwhile scanning", // 222 "Mute audio\nwhile scanning", // 222
"AIR" // 223 "AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
}, },
{ "Ελληνικά", // Greek { "Ελληνικά", // Greek
@@ -1133,7 +1149,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Σωστό PI", // 220 "Σωστό PI", // 220
"Σήμα", // 221 "Σήμα", // 221
"Σίγαση ήχου\nκατά την ανίχνευση", // 222 "Σίγαση ήχου\nκατά την ανίχνευση", // 222
"AIR" // 223 "AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
}, },
{ "Română", // Romanian { "Română", // Romanian
@@ -1359,7 +1379,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correct PI", // 220 "Correct PI", // 220
"Signal", // 221 "Signal", // 221
"Mute audio\nwhile scanning", // 222 "Mute audio\nwhile scanning", // 222
"AIR" // 223 "AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
}, },
{ "Deutsch", // German { "Deutsch", // German
@@ -1585,7 +1609,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Korrekter PI-Code", // 220 "Korrekter PI-Code", // 220
"Signal", // 221 "Signal", // 221
"Stumm beim Scannen", // 222 "Stumm beim Scannen", // 222
"AIR" // 223 "AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
}, },
{ "Český", // Czech { "Český", // Czech
@@ -1811,7 +1839,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correct PI", // 220 "Correct PI", // 220
"Signal", // 221 "Signal", // 221
"Mute audio\nwhile scanning", // 222 "Mute audio\nwhile scanning", // 222
"AIR" // 223 "AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
}, },
{ "Slovenský", // Slovak { "Slovenský", // Slovak
@@ -2037,7 +2069,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correct PI", // 220 "Correct PI", // 220
"Signal", // 221 "Signal", // 221
"Mute audio\nwhile scanning", // 222 "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 { "Français", // French
@@ -2263,7 +2299,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"PI Correct", // 220 "PI Correct", // 220
"Signal", // 221 "Signal", // 221
"Audio muet lors\nde la numérisation", // 222 "Audio muet lors\nde la numérisation", // 222
"AIR" // 223 "AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
}, },
{ "Български", // Bulgarian { "Български", // Bulgarian
@@ -2489,7 +2529,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correct PI", // 220 "Correct PI", // 220
"Signal", // 221 "Signal", // 221
"Mute audio\nwhile scanning", // 222 "Mute audio\nwhile scanning", // 222
"AIR" // 223 "AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
}, },
{ "Русский", // Russian { "Русский", // Russian
@@ -2715,7 +2759,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"При корректном PI", // 220 "При корректном PI", // 220
"При наличии сигнала", // 221 "При наличии сигнала", // 221
"Отключать аудио\nпри сканировании", // 222 "Отключать аудио\nпри сканировании", // 222
"AIR" // 223 "AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
}, },
{ "Українська", // Ukranian { "Українська", // Ukranian
@@ -2941,7 +2989,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Correct PI", // 220 "Correct PI", // 220
"Signal", // 221 "Signal", // 221
"Mute audio\nwhile scanning", // 222 "Mute audio\nwhile scanning", // 222
"AIR" // 223 "AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
}, },
{ "Italiano", // Italian { "Italiano", // Italian
@@ -3167,7 +3219,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"PI corretto", // 220 "PI corretto", // 220
"Signale", // 221 "Signale", // 221
"Audio silenziato\ndurante scansione", // 222 "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 { "Simplified Chinese", // Simplified Chinese
@@ -3393,7 +3449,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"节目识别码正确", // 220 "节目识别码正确", // 220
"信号超阈值", // 221 "信号超阈值", // 221
"扫描时静音", // 222 "扫描时静音", // 222
"AIR" // 223 "AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
}, },
{ "Norsk", // Norwegian { "Norsk", // Norwegian
@@ -3444,7 +3504,7 @@ static const char* const myLanguage[18][224] PROGMEM = {
"Pip ved båndkant", // 45 "Pip ved båndkant", // 45
"Region", // 46 *** "Region", // 46 ***
"Europa", // 47 "Europa", // 47
"America", // 48 *** "Amerika", // 48 ***
"Vis understrek i RDS", // 49 "Vis understrek i RDS", // 49
"USB modus", // 50 "USB modus", // 50
"Wi-Fi aktiv", // 51 "Wi-Fi aktiv", // 51
@@ -3619,7 +3679,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"korrekt PI", // 220 "korrekt PI", // 220
"Signal", // 221 "Signal", // 221
"Demp lyden\nmens du skanner", // 222 "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 { "Español", // Spanish
@@ -3845,7 +3909,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"PI correcto", // 220 "PI correcto", // 220
"Señal", // 221 "Señal", // 221
"Audio mudo\nmientras busca", // 222 "Audio mudo\nmientras busca", // 222
"AIR" // 223 "AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
}, },
{ "Português", // Portuguese { "Português", // Portuguese
@@ -4071,7 +4139,11 @@ static const char* const myLanguage[18][224] PROGMEM = {
"PI correto", // 220 "PI correto", // 220
"Sinal", // 221 "Sinal", // 221
"Mudo áudio\nenquanto procura", // 222 "Mudo áudio\nenquanto procura", // 222
"AIR" // 223 "AIR", // 223
"5 sec. bandbutton press", // 224
"Power off", // 225
"Mute screen", // 226
"Disabled" // 227
} }
}; };
#endif #endif