From c8fe5d2af247740974cbd348257661c28c00901c Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Tue, 26 Mar 2024 12:56:34 +0100 Subject: [PATCH] Added FMSI switch to menu --- TEF6686_ESP32.ino | 7 + src/constants.h | 13 +- src/gui.cpp | 407 +++++++++++++++++++++++++--------------------- src/gui.h | 2 + src/language.h | 76 ++++++--- 5 files changed, 297 insertions(+), 208 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 27b9587..31015b9 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -68,6 +68,7 @@ bool dropout; bool dynamicPTYold; bool edgebeep; bool externaltune; +bool fmsi; bool fullsearchrds; bool hasafold; bool hasCTold; @@ -469,6 +470,7 @@ void setup() { XDRGTKMuteScreen = EEPROM.readByte(EE_BYTE_XDRGTKMUTE); fmagc = EEPROM.readByte(EE_BYTE_FMAGC); amagc = EEPROM.readByte(EE_BYTE_AMAGC); + fmsi = EEPROM.readByte(EE_BYTE_FMSI); if (spispeed == SPI_SPEED_DEFAULT) tft.setSPISpeed(SPI_FREQUENCY / 1000000); else tft.setSPISpeed(spispeed * 10); LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; @@ -667,6 +669,7 @@ void setup() { if (lowByte(device) == 14) { fullsearchrds = false; + fmsi = false; tft.fillRect(152, 230, 16, 6, PrimaryColor); tftPrint(0, "TEF6686 Lithio", 160, 172, ActiveColor, ActiveColorSmooth, 28); } else if (lowByte(device) == 1) { @@ -675,6 +678,7 @@ void setup() { tftPrint(0, "TEF6687 Lithio FMSI", 160, 172, ActiveColor, ActiveColorSmooth, 28); } else if (lowByte(device) == 9) { fullsearchrds = false; + fmsi = false; tft.fillRect(152, 230, 16, 6, PrimaryColor); tftPrint(0, "TEF6688 Lithio DR", 160, 172, ActiveColor, ActiveColorSmooth, 28); } else if (lowByte(device) == 3) { @@ -726,6 +730,7 @@ void setup() { radio.rds.region = region; radio.setAGC(fmagc); radio.setAMAGC(amagc); + if (fmsi) radio.setFMSI(2); else radio.setFMSI(1); LowLevelInit = true; if (ConverterSet >= 200) { @@ -1975,6 +1980,7 @@ void ModeButtonPress() { EEPROM.writeByte(EE_BYTE_XDRGTKMUTE, XDRGTKMuteScreen); EEPROM.writeByte(EE_BYTE_FMAGC, fmagc); EEPROM.writeByte(EE_BYTE_AMAGC, amagc); + EEPROM.writeByte(EE_BYTE_FMSI, fmsi); EEPROM.commit(); if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false; if (!usesquelch) radio.setUnMute(); @@ -3612,6 +3618,7 @@ void DefaultSettings(byte userhardwaremodel) { EEPROM.writeByte(EE_BYTE_XDRGTKMUTE, 0); EEPROM.writeByte(EE_BYTE_FMAGC, 92); EEPROM.writeByte(EE_BYTE_AMAGC, 100); + EEPROM.writeByte(EE_BYTE_FMSI, 1); EEPROM.commit(); } diff --git a/src/constants.h b/src/constants.h index 5c9f062..da306c2 100644 --- a/src/constants.h +++ b/src/constants.h @@ -196,9 +196,9 @@ // EEPROM index defines #define EE_PRESETS_CNT 99 -#define EE_CHECKBYTE_VALUE 4 // 0 ~ 255,add new entry, change for new value +#define EE_CHECKBYTE_VALUE 5 // 0 ~ 255,add new entry, change for new value -#define EE_TOTAL_CNT 826 +#define EE_TOTAL_CNT 827 #define EE_UINT16_FREQUENCY_FM 0 #define EE_BYTE_VOLSET 4 #define EE_BYTE_STEREO 5 @@ -281,10 +281,11 @@ #define EE_BYTE_XDRGTKMUTE 126 #define EE_BYTE_FMAGC 127 #define EE_BYTE_AMAGC 128 -#define EE_PRESETS_BAND_START 129 -#define EE_PRESET_BW_START 229 -#define EE_PRESET_MS_START 329 -#define EE_PRESETS_START 429 +#define EE_BYTE_FMSI 129 +#define EE_PRESETS_BAND_START 130 +#define EE_PRESET_BW_START 230 +#define EE_PRESET_MS_START 330 +#define EE_PRESETS_START 430 #define EE_PRESETS_FREQUENCY 0 // End of EEPROM index defines diff --git a/src/gui.cpp b/src/gui.cpp index 94710f9..3aa77fb 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -7,7 +7,7 @@ #include byte menuitem; -byte items[8] = {8, static_cast(dynamicspi ? 7 : 6), 7, 10, 9, 10, 10, 6}; +byte items[8] = {8, static_cast(dynamicspi ? 9 : 8), 7, 10, 9, 10, 9, 6}; void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de/online/rgb565-color-picker/ switch (CurrentTheme) { @@ -825,21 +825,11 @@ void ShowOneLine(byte position, byte item, bool selected) { case AMSETTINGS: FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - FullLineSprite.drawString(removeNewline(myLanguage[language][101]), 6, 3); + FullLineSprite.drawString(removeNewline(myLanguage[language][59]), 6, 3); FullLineSprite.setTextDatum(TR_DATUM); FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - - switch (bandAM) { - case AM_BAND_ALL: FullLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], 298, 3); break; - case AM_BAND_LW_MW: FullLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103], 298, 3); break; - case AM_BAND_LW_SW: FullLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][104], 298, 3); break; - case AM_BAND_MW_SW: FullLineSprite.drawString(myLanguage[language][103] + String(",") + myLanguage[language][104], 298, 3); break; - case AM_BAND_LW: FullLineSprite.drawString(myLanguage[language][102], 298, 3); break; - case AM_BAND_MW: FullLineSprite.drawString(myLanguage[language][103], 298, 3); break; - case AM_BAND_SW: FullLineSprite.drawString(myLanguage[language][104], 298, 3); break; - case AM_BAND_NONE: FullLineSprite.drawString(myLanguage[language][83], 298, 3); break; - } + FullLineSprite.drawString((showSWMIBand ? myLanguage[language][42] : myLanguage[language][30]), 298, 3); break; case CONNECTIVITY: @@ -927,11 +917,13 @@ void ShowOneLine(byte position, byte item, bool selected) { case AMSETTINGS: FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - FullLineSprite.drawString(removeNewline(myLanguage[language][59]), 6, 3); + FullLineSprite.drawString(removeNewline(myLanguage[language][185]), 6, 3); FullLineSprite.setTextDatum(TR_DATUM); FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - FullLineSprite.drawString((showSWMIBand ? myLanguage[language][42] : myLanguage[language][30]), 298, 3); + if (amcodect != 0) FullLineSprite.drawString(String(amcodect, DEC), 258, 3); + if (amcodect != 0) FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + FullLineSprite.drawString((amcodect != 0 ? "%" : myLanguage[language][30]), 298, 3); break; case CONNECTIVITY: @@ -1021,13 +1013,11 @@ void ShowOneLine(byte position, byte item, bool selected) { case AMSETTINGS: FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - FullLineSprite.drawString(removeNewline(myLanguage[language][185]), 6, 3); + FullLineSprite.drawString(removeNewline(myLanguage[language][187]), 6, 3); FullLineSprite.setTextDatum(TR_DATUM); FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - if (amcodect != 0) FullLineSprite.drawString(String(amcodect, DEC), 258, 3); - if (amcodect != 0) FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - FullLineSprite.drawString((amcodect != 0 ? "%" : myLanguage[language][30]), 298, 3); + FullLineSprite.drawString(String(amcodectcount, DEC), 298, 3); break; case CONNECTIVITY: @@ -1051,16 +1041,18 @@ 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][100]), 6, 3); - FullLineSprite.setTextDatum(TR_DATUM); - 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); + FullLineSprite.setTextDatum(TR_DATUM); + FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + + switch (bandFM) { + case FM_BAND_ALL: FullLineSprite.drawString(myLanguage[language][105] + String(",") + myLanguage[language][106], 298, 3); break; + case FM_BAND_OIRT: FullLineSprite.drawString(myLanguage[language][106], 298, 3); break; + case FM_BAND_FM: FullLineSprite.drawString(myLanguage[language][105], 298, 3); break; + case FM_BAND_NONE: FullLineSprite.drawString(myLanguage[language][83], 298, 3); break; } break; @@ -1111,11 +1103,13 @@ void ShowOneLine(byte position, byte item, bool selected) { case AMSETTINGS: FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - FullLineSprite.drawString(removeNewline(myLanguage[language][187]), 6, 3); + FullLineSprite.drawString(removeNewline(myLanguage[language][36]), 6, 3); FullLineSprite.setTextDatum(TR_DATUM); FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - FullLineSprite.drawString(String(amcodectcount, DEC), 298, 3); + if (amgain != 0) FullLineSprite.drawString(String(amgain, DEC), 258, 3); + if (amgain != 0) FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + FullLineSprite.drawString((amgain != 0 ? "dB" : myLanguage[language][30]), 298, 3); break; } break; @@ -1128,6 +1122,26 @@ void ShowOneLine(byte position, byte item, bool selected) { FullLineSprite.drawString(removeNewline(myLanguage[language][70]), 152, 3); break; + case MAINSETTINGS: + FullLineSprite.setTextDatum(TL_DATUM); + FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + FullLineSprite.drawString(removeNewline(myLanguage[language][101]), 6, 3); + + FullLineSprite.setTextDatum(TR_DATUM); + FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + + switch (bandAM) { + case AM_BAND_ALL: FullLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], 298, 3); break; + case AM_BAND_LW_MW: FullLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103], 298, 3); break; + case AM_BAND_LW_SW: FullLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][104], 298, 3); break; + case AM_BAND_MW_SW: FullLineSprite.drawString(myLanguage[language][103] + String(",") + myLanguage[language][104], 298, 3); break; + case AM_BAND_LW: FullLineSprite.drawString(myLanguage[language][102], 298, 3); break; + case AM_BAND_MW: FullLineSprite.drawString(myLanguage[language][103], 298, 3); break; + case AM_BAND_SW: FullLineSprite.drawString(myLanguage[language][104], 298, 3); break; + case AM_BAND_NONE: FullLineSprite.drawString(myLanguage[language][83], 298, 3); break; + } + break; + case DISPLAYSETTINGS: FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); @@ -1167,19 +1181,33 @@ void ShowOneLine(byte position, byte item, bool selected) { case AMSETTINGS: FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - FullLineSprite.drawString(removeNewline(myLanguage[language][36]), 6, 3); + FullLineSprite.drawString(removeNewline(myLanguage[language][169]), 6, 3); FullLineSprite.setTextDatum(TR_DATUM); FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - if (amgain != 0) FullLineSprite.drawString(String(amgain, DEC), 258, 3); - if (amgain != 0) FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - FullLineSprite.drawString((amgain != 0 ? "dB" : myLanguage[language][30]), 298, 3); + FullLineSprite.drawString((mwstepsize ? "10" : "9"), 258, 3); + FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + FullLineSprite.drawString("kHz", 298, 3); break; } break; case 8: switch (menupage) { + 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); + 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); @@ -1202,29 +1230,20 @@ void ShowOneLine(byte position, byte item, bool selected) { case FMSETTINGS: FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - FullLineSprite.drawString(removeNewline(myLanguage[language][100]), 6, 3); - + FullLineSprite.drawString(removeNewline(myLanguage[language][206]), 6, 3); FullLineSprite.setTextDatum(TR_DATUM); FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - - switch (bandFM) { - case FM_BAND_ALL: FullLineSprite.drawString(myLanguage[language][105] + String(",") + myLanguage[language][106], 298, 3); break; - case FM_BAND_OIRT: FullLineSprite.drawString(myLanguage[language][106], 298, 3); break; - case FM_BAND_FM: FullLineSprite.drawString(myLanguage[language][105], 298, 3); break; - case FM_BAND_NONE: FullLineSprite.drawString(myLanguage[language][83], 298, 3); break; - } + FullLineSprite.drawString((fmsi ? myLanguage[language][42] : myLanguage[language][30]), 298, 3); break; case AMSETTINGS: FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - FullLineSprite.drawString(removeNewline(myLanguage[language][169]), 6, 3); + FullLineSprite.drawString(removeNewline(myLanguage[language][82]), 6, 3); FullLineSprite.setTextDatum(TR_DATUM); FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - FullLineSprite.drawString((mwstepsize ? "10" : "9"), 258, 3); - FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - FullLineSprite.drawString("kHz", 298, 3); + FullLineSprite.drawString(String(amscansens), 298, 3); break; } break; @@ -1256,16 +1275,6 @@ void ShowOneLine(byte position, byte item, bool selected) { FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); FullLineSprite.drawString(String(fmscansens), 298, 3); break; - - case AMSETTINGS: - FullLineSprite.setTextDatum(TL_DATUM); - FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - FullLineSprite.drawString(removeNewline(myLanguage[language][82]), 6, 3); - - FullLineSprite.setTextDatum(TR_DATUM); - FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - FullLineSprite.drawString(String(amscansens), 298, 3); - break; } break; } @@ -1665,7 +1674,7 @@ void MenuUp() { break; case ITEM4: - if (usesquelch) usesquelch = false; else usesquelch = true; + usesquelch = !usesquelch; OneBigLineSprite.drawString((usesquelch ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; @@ -1697,6 +1706,37 @@ void MenuUp() { break; case ITEM7: + bandFM++; + if (bandFM > FM_BAND_CNT - 1) bandFM = FM_BAND_ALL; + + switch (bandFM) { + case FM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][105] + String(",") + myLanguage[language][106], 135, 0); break; + case FM_BAND_OIRT: OneBigLineSprite.drawString(myLanguage[language][106], 135, 0); break; + case FM_BAND_FM: OneBigLineSprite.drawString(myLanguage[language][105], 135, 0); break; + case FM_BAND_NONE: OneBigLineSprite.drawString(myLanguage[language][83], 135, 0); break; + } + OneBigLineSprite.pushSprite(24, 118); + break; + + case ITEM8: + bandAM++; + if (bandAM > AM_BAND_CNT - 1) bandAM = AM_BAND_ALL; + + switch (bandAM) { + case AM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; + case AM_BAND_LW_MW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103], 135, 0); break; + case AM_BAND_LW_SW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][104], 135, 0); break; + case AM_BAND_MW_SW: OneBigLineSprite.drawString(myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; + case AM_BAND_LW: OneBigLineSprite.drawString(myLanguage[language][102], 135, 0); break; + case AM_BAND_MW: OneBigLineSprite.drawString(myLanguage[language][103], 135, 0); break; + case AM_BAND_SW: OneBigLineSprite.drawString(myLanguage[language][104], 135, 0); break; + case AM_BAND_NONE: OneBigLineSprite.drawString(myLanguage[language][83], 135, 0); break; + } + + OneBigLineSprite.pushSprite(24, 118); + break; + + case ITEM9: spispeed++; if (spispeed > SPI_SPEED_COUNT - 1) spispeed = 0; @@ -1729,13 +1769,14 @@ void MenuUp() { break; case ITEM2: - if (edgebeep) edgebeep = false; else edgebeep = true; + edgebeep = !edgebeep; OneBigLineSprite.drawString((edgebeep ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; case ITEM3: - if (audiomode) audiomode = false; else audiomode = true; + audiomode = !audiomode; + OneBigLineSprite.drawString((audiomode ? "MPX" : "Stereo"), 135, 0); OneBigLineSprite.pushSprite(24, 118); radio.setAudio(audiomode); @@ -1831,7 +1872,7 @@ void MenuUp() { break; case ITEM3: - if (showmodulation) showmodulation = false; else showmodulation = true; + showmodulation = !showmodulation; OneBigLineSprite.drawString((showmodulation ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -1958,21 +1999,21 @@ void MenuUp() { break; case ITEM3: - if (radio.underscore) radio.underscore = false; else radio.underscore = true; + radio.underscore = !radio.underscore; OneBigLineSprite.drawString((radio.underscore ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; case ITEM4: - if (radio.rds.filter) radio.rds.filter = false; else radio.rds.filter = true; + radio.rds.filter = !radio.rds.filter; OneBigLineSprite.drawString((radio.rds.filter ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; case ITEM5: - if (radio.rds.pierrors) radio.rds.pierrors = false; else radio.rds.pierrors = true; + radio.rds.pierrors = !radio.rds.pierrors; OneBigLineSprite.drawString((radio.rds.pierrors ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -1992,21 +2033,21 @@ void MenuUp() { break; case ITEM7: - if (radio.rds.rtbuffer) radio.rds.rtbuffer = false; else radio.rds.rtbuffer = true; + radio.rds.rtbuffer = !radio.rds.rtbuffer; OneBigLineSprite.drawString((radio.rds.rtbuffer ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; case ITEM8: - if (radio.rds.sortaf) radio.rds.sortaf = false; else radio.rds.sortaf = true; + radio.rds.sortaf = !radio.rds.sortaf; OneBigLineSprite.drawString((radio.rds.sortaf ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; case ITEM9: - if (radio.rds.fastps) radio.rds.fastps = false; else radio.rds.fastps = true; + radio.rds.fastps = !radio.rds.fastps; OneBigLineSprite.drawString((radio.rds.fastps ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -2092,7 +2133,7 @@ void MenuUp() { break; case ITEM6: - if (softmutefm) softmutefm = false; else softmutefm = true; + softmutefm = !softmutefm; OneBigLineSprite.drawString((softmutefm ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -2134,16 +2175,12 @@ void MenuUp() { break; case ITEM9: - bandFM++; - if (bandFM > FM_BAND_CNT - 1) bandFM = FM_BAND_ALL; - - switch (bandFM) { - case FM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][105] + String(",") + myLanguage[language][106], 135, 0); break; - case FM_BAND_OIRT: OneBigLineSprite.drawString(myLanguage[language][106], 135, 0); break; - case FM_BAND_FM: OneBigLineSprite.drawString(myLanguage[language][105], 135, 0); break; - case FM_BAND_NONE: OneBigLineSprite.drawString(myLanguage[language][83], 135, 0); break; + if (fullsearchrds) { + fmsi = !fmsi; + OneBigLineSprite.drawString((fmsi ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); + OneBigLineSprite.pushSprite(24, 118); + if (fmsi) radio.setFMSI(2); else radio.setFMSI(1); } - OneBigLineSprite.pushSprite(24, 118); break; case ITEM10: @@ -2159,7 +2196,7 @@ void MenuUp() { case AMSETTINGS: switch (menuoption) { case ITEM1: - if (softmuteam) softmuteam = false; else softmuteam = true; + softmuteam = !softmuteam; OneBigLineSprite.drawString((softmuteam ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -2197,31 +2234,13 @@ void MenuUp() { break; case ITEM4: - bandAM++; - if (bandAM > AM_BAND_CNT - 1) bandAM = AM_BAND_ALL; - - switch (bandAM) { - case AM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; - case AM_BAND_LW_MW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103], 135, 0); break; - case AM_BAND_LW_SW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][104], 135, 0); break; - case AM_BAND_MW_SW: OneBigLineSprite.drawString(myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; - case AM_BAND_LW: OneBigLineSprite.drawString(myLanguage[language][102], 135, 0); break; - case AM_BAND_MW: OneBigLineSprite.drawString(myLanguage[language][103], 135, 0); break; - case AM_BAND_SW: OneBigLineSprite.drawString(myLanguage[language][104], 135, 0); break; - case AM_BAND_NONE: OneBigLineSprite.drawString(myLanguage[language][83], 135, 0); break; - } - - OneBigLineSprite.pushSprite(24, 118); - break; - - case ITEM5: - if (showSWMIBand) showSWMIBand = false; else showSWMIBand = true; + showSWMIBand = !showSWMIBand; OneBigLineSprite.drawString((showSWMIBand ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; - case ITEM6: + case ITEM5: amcodect++; if (amcodect > 150 || amcodect <= 50) { if (amcodect == 1) amcodect = 50; else amcodect = 0; @@ -2237,7 +2256,7 @@ void MenuUp() { if (band > BAND_GAP) radio.setAMCoChannel(amcodect, amcodectcount); break; - case ITEM7: + case ITEM6: amcodectcount++; if (amcodectcount > 15) amcodectcount = 1; @@ -2246,7 +2265,7 @@ void MenuUp() { if (band > BAND_GAP) radio.setAMCoChannel(amcodect, amcodectcount); break; - case ITEM8: + case ITEM7: amgain += 6; if (amgain > 36) amgain = 0; @@ -2260,8 +2279,8 @@ void MenuUp() { if (band > BAND_GAP) radio.setAMAttenuation(amgain); break; - case ITEM9: - if (mwstepsize) mwstepsize = false; else mwstepsize = true; + case ITEM8: + mwstepsize = !mwstepsize; OneBigLineSprite.setTextDatum(TL_DATUM); OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); @@ -2272,7 +2291,7 @@ void MenuUp() { OneBigLineSprite.pushSprite(24, 118); break; - case ITEM10: + case ITEM9: amscansens++; if (amscansens > 15) amscansens = 1; @@ -2285,14 +2304,14 @@ void MenuUp() { case CONNECTIVITY: switch (menuoption) { case ITEM1: - if (USBmode) USBmode = false; else USBmode = true; + USBmode = !USBmode; OneBigLineSprite.drawString((USBmode ? "RDS Spy" : "XDRGTK"), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; case ITEM2: - if (wifi) wifi = false; else wifi = true; + wifi = !wifi; OneBigLineSprite.drawString((wifi ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -2315,7 +2334,7 @@ void MenuUp() { break; case ITEM6: - if (XDRGTKMuteScreen) XDRGTKMuteScreen = false; else XDRGTKMuteScreen = true; + XDRGTKMuteScreen = !XDRGTKMuteScreen; OneBigLineSprite.drawString((XDRGTKMuteScreen ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -2384,7 +2403,8 @@ void MenuDown() { break; case ITEM2: - if (touchrotating) touchrotating = 0; else touchrotating = 1; + touchrotating = !touchrotating; + OneBigLineSprite.drawString((touchrotating ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; @@ -2416,7 +2436,8 @@ void MenuDown() { break; case ITEM4: - if (usesquelch) usesquelch = false; else usesquelch = true; + usesquelch = !usesquelch; + OneBigLineSprite.drawString((usesquelch ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; @@ -2448,6 +2469,36 @@ void MenuDown() { break; case ITEM7: + bandFM--; + if (bandFM > FM_BAND_CNT) bandFM = FM_BAND_NONE; + + switch (bandFM) { + case FM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][105] + String(",") + myLanguage[language][106], 135, 0); break; + case FM_BAND_OIRT: OneBigLineSprite.drawString(myLanguage[language][106], 135, 0); break; + case FM_BAND_FM: OneBigLineSprite.drawString(myLanguage[language][105], 135, 0); break; + case FM_BAND_NONE: OneBigLineSprite.drawString(myLanguage[language][83], 135, 0); break; + } + OneBigLineSprite.pushSprite(24, 118); + break; + + case ITEM8: + bandAM--; + if (bandAM > AM_BAND_CNT) bandAM = AM_BAND_NONE; + + switch (bandAM) { + case AM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; + case AM_BAND_LW_MW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103], 135, 0); break; + case AM_BAND_LW_SW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][104], 135, 0); break; + case AM_BAND_MW_SW: OneBigLineSprite.drawString(myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; + case AM_BAND_LW: OneBigLineSprite.drawString(myLanguage[language][102], 135, 0); break; + case AM_BAND_MW: OneBigLineSprite.drawString(myLanguage[language][103], 135, 0); break; + case AM_BAND_SW: OneBigLineSprite.drawString(myLanguage[language][104], 135, 0); break; + case AM_BAND_NONE: OneBigLineSprite.drawString(myLanguage[language][83], 135, 0); break; + } + OneBigLineSprite.pushSprite(24, 118); + break; + + case ITEM9: spispeed--; if (spispeed > SPI_SPEED_COUNT - 1) spispeed = SPI_SPEED_COUNT - 1; OneBigLineSprite.setTextDatum(TL_DATUM); @@ -2480,13 +2531,15 @@ void MenuDown() { break; case ITEM2: - if (edgebeep) edgebeep = false; else edgebeep = true; + edgebeep = !edgebeep; + OneBigLineSprite.drawString((edgebeep ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; case ITEM3: - if (audiomode) audiomode = false; else audiomode = true; + audiomode = !audiomode; + OneBigLineSprite.drawString((audiomode ? "MPX" : "Stereo"), 135, 0); OneBigLineSprite.pushSprite(24, 118); radio.setAudio(audiomode); @@ -2579,7 +2632,7 @@ void MenuDown() { break; case ITEM3: - if (showmodulation) showmodulation = false; else showmodulation = true; + showmodulation = !showmodulation; OneBigLineSprite.drawString((showmodulation ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -2708,21 +2761,21 @@ void MenuDown() { break; case ITEM3: - if (radio.underscore) radio.underscore = false; else radio.underscore = true; + radio.underscore = !radio.underscore; OneBigLineSprite.drawString((radio.underscore ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; case ITEM4: - if (radio.rds.filter) radio.rds.filter = false; else radio.rds.filter = true; + radio.rds.filter = !radio.rds.filter; OneBigLineSprite.drawString((radio.rds.filter ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; case ITEM5: - if (radio.rds.pierrors) radio.rds.pierrors = false; else radio.rds.pierrors = true; + radio.rds.pierrors = !radio.rds.pierrors; OneBigLineSprite.drawString((radio.rds.pierrors ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -2742,21 +2795,21 @@ void MenuDown() { break; case ITEM7: - if (radio.rds.rtbuffer) radio.rds.rtbuffer = false; else radio.rds.rtbuffer = true; + radio.rds.rtbuffer = !radio.rds.rtbuffer; OneBigLineSprite.drawString((radio.rds.rtbuffer ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; case ITEM8: - if (radio.rds.sortaf) radio.rds.sortaf = false; else radio.rds.sortaf = true; + radio.rds.sortaf = !radio.rds.sortaf; OneBigLineSprite.drawString((radio.rds.sortaf ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; case ITEM9: - if (radio.rds.fastps) radio.rds.fastps = false; else radio.rds.fastps = true; + radio.rds.fastps = !radio.rds.fastps; OneBigLineSprite.drawString((radio.rds.fastps ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -2842,7 +2895,7 @@ void MenuDown() { break; case ITEM6: - if (softmutefm) softmutefm = false; else softmutefm = true; + softmutefm = !softmutefm; OneBigLineSprite.drawString((softmutefm ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -2884,16 +2937,12 @@ void MenuDown() { break; case ITEM9: - bandFM--; - if (bandFM > FM_BAND_CNT) bandFM = FM_BAND_NONE; - - switch (bandFM) { - case FM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][105] + String(",") + myLanguage[language][106], 135, 0); break; - case FM_BAND_OIRT: OneBigLineSprite.drawString(myLanguage[language][106], 135, 0); break; - case FM_BAND_FM: OneBigLineSprite.drawString(myLanguage[language][105], 135, 0); break; - case FM_BAND_NONE: OneBigLineSprite.drawString(myLanguage[language][83], 135, 0); break; + if (fullsearchrds) { + fmsi = !fmsi; + OneBigLineSprite.drawString((fmsi ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); + OneBigLineSprite.pushSprite(24, 118); + if (fmsi) radio.setFMSI(2); else radio.setFMSI(1); } - OneBigLineSprite.pushSprite(24, 118); break; case ITEM10: @@ -2909,7 +2958,7 @@ void MenuDown() { case AMSETTINGS: switch (menuoption) { case ITEM1: - if (softmuteam) softmuteam = false; else softmuteam = true; + softmuteam = !softmuteam; OneBigLineSprite.drawString((softmuteam ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -2947,30 +2996,13 @@ void MenuDown() { break; case ITEM4: - bandAM--; - if (bandAM > AM_BAND_CNT) bandAM = AM_BAND_NONE; - - switch (bandAM) { - case AM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; - case AM_BAND_LW_MW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103], 135, 0); break; - case AM_BAND_LW_SW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][104], 135, 0); break; - case AM_BAND_MW_SW: OneBigLineSprite.drawString(myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; - case AM_BAND_LW: OneBigLineSprite.drawString(myLanguage[language][102], 135, 0); break; - case AM_BAND_MW: OneBigLineSprite.drawString(myLanguage[language][103], 135, 0); break; - case AM_BAND_SW: OneBigLineSprite.drawString(myLanguage[language][104], 135, 0); break; - case AM_BAND_NONE: OneBigLineSprite.drawString(myLanguage[language][83], 135, 0); break; - } - OneBigLineSprite.pushSprite(24, 118); - break; - - case ITEM5: - if (showSWMIBand) showSWMIBand = false; else showSWMIBand = true; + showSWMIBand = !showSWMIBand; OneBigLineSprite.drawString((showSWMIBand ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; - case ITEM6: + case ITEM5: amcodect--; if (amcodect < 50 || amcodect > 150) { if (amcodect > 150) amcodect = 150; else amcodect = 0; @@ -2986,7 +3018,7 @@ void MenuDown() { if (band > BAND_GAP) radio.setAMCoChannel(amcodect, amcodectcount); break; - case ITEM7: + case ITEM6: amcodectcount--; if (amcodectcount < 1) amcodectcount = 15; @@ -2995,7 +3027,7 @@ void MenuDown() { if (band > BAND_GAP) radio.setAMCoChannel(amcodect, amcodectcount); break; - case ITEM8: + case ITEM7: amgain -= 6; if (amgain > 36) amgain = 36; @@ -3009,8 +3041,8 @@ void MenuDown() { if (band > BAND_GAP) radio.setAMAttenuation(amgain); break; - case ITEM9: - if (mwstepsize) mwstepsize = false; else mwstepsize = true; + case ITEM8: + mwstepsize = !mwstepsize; OneBigLineSprite.setTextDatum(TL_DATUM); OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); @@ -3021,7 +3053,7 @@ void MenuDown() { OneBigLineSprite.pushSprite(24, 118); break; - case ITEM10: + case ITEM9: amscansens--; if (amscansens == 0) amscansens = 15; @@ -3034,14 +3066,14 @@ void MenuDown() { case CONNECTIVITY: switch (menuoption) { case ITEM1: - if (USBmode) USBmode = false; else USBmode = true; + USBmode = !USBmode; OneBigLineSprite.drawString((USBmode ? "RDS Spy" : "XDRGTK"), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; case ITEM2: - if (wifi) wifi = false; else wifi = true; + wifi = !wifi; OneBigLineSprite.drawString((wifi ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -3064,7 +3096,7 @@ void MenuDown() { break; case ITEM6: - if (XDRGTKMuteScreen) XDRGTKMuteScreen = false; else XDRGTKMuteScreen = true; + XDRGTKMuteScreen = !XDRGTKMuteScreen; OneBigLineSprite.drawString((XDRGTKMuteScreen ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -3257,6 +3289,34 @@ void DoMenu() { break; case ITEM7: + Infoboxprint(myLanguage[language][100]); + + switch (bandFM) { + case FM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][105] + String(",") + myLanguage[language][106], 135, 0); break; + case FM_BAND_OIRT: OneBigLineSprite.drawString(myLanguage[language][106], 135, 0); break; + case FM_BAND_FM: OneBigLineSprite.drawString(myLanguage[language][105], 135, 0); break; + case FM_BAND_NONE: OneBigLineSprite.drawString(myLanguage[language][83], 135, 0); break; + } + OneBigLineSprite.pushSprite(24, 118); + break; + + case ITEM8: + Infoboxprint(myLanguage[language][101]); + + switch (bandAM) { + case AM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; + case AM_BAND_LW_MW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103], 135, 0); break; + case AM_BAND_LW_SW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][104], 135, 0); break; + case AM_BAND_MW_SW: OneBigLineSprite.drawString(myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; + case AM_BAND_LW: OneBigLineSprite.drawString(myLanguage[language][102], 135, 0); break; + case AM_BAND_MW: OneBigLineSprite.drawString(myLanguage[language][103], 135, 0); break; + case AM_BAND_SW: OneBigLineSprite.drawString(myLanguage[language][104], 135, 0); break; + case AM_BAND_NONE: OneBigLineSprite.drawString(myLanguage[language][83], 135, 0); break; + } + OneBigLineSprite.pushSprite(24, 118); + break; + + case ITEM9: Infoboxprint(myLanguage[language][81]); OneBigLineSprite.setTextDatum(TL_DATUM); @@ -3625,13 +3685,12 @@ void DoMenu() { break; case ITEM9: - Infoboxprint(myLanguage[language][100]); + if (fullsearchrds) { + Infoboxprint(myLanguage[language][206]); - switch (bandFM) { - case FM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][105] + String(",") + myLanguage[language][106], 135, 0); break; - case FM_BAND_OIRT: OneBigLineSprite.drawString(myLanguage[language][106], 135, 0); break; - case FM_BAND_FM: OneBigLineSprite.drawString(myLanguage[language][105], 135, 0); break; - case FM_BAND_NONE: OneBigLineSprite.drawString(myLanguage[language][83], 135, 0); break; + OneBigLineSprite.drawString((fmsi ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); + } else { + Infoboxprint(myLanguage[language][207]); } OneBigLineSprite.pushSprite(24, 118); break; @@ -3679,29 +3738,13 @@ void DoMenu() { break; case ITEM4: - Infoboxprint(myLanguage[language][101]); - - switch (bandAM) { - case AM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; - case AM_BAND_LW_MW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103], 135, 0); break; - case AM_BAND_LW_SW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][104], 135, 0); break; - case AM_BAND_MW_SW: OneBigLineSprite.drawString(myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; - case AM_BAND_LW: OneBigLineSprite.drawString(myLanguage[language][102], 135, 0); break; - case AM_BAND_MW: OneBigLineSprite.drawString(myLanguage[language][103], 135, 0); break; - case AM_BAND_SW: OneBigLineSprite.drawString(myLanguage[language][104], 135, 0); break; - case AM_BAND_NONE: OneBigLineSprite.drawString(myLanguage[language][83], 135, 0); break; - } - OneBigLineSprite.pushSprite(24, 118); - break; - - case ITEM5: Infoboxprint(myLanguage[language][59]); OneBigLineSprite.drawString((showSWMIBand ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; - case ITEM6: + case ITEM5: Infoboxprint(myLanguage[language][186]); OneBigLineSprite.setTextDatum(TL_DATUM); @@ -3713,14 +3756,14 @@ void DoMenu() { OneBigLineSprite.pushSprite(24, 118); break; - case ITEM7: + case ITEM6: Infoboxprint(myLanguage[language][188]); OneBigLineSprite.drawString(String(amcodectcount, DEC), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; - case ITEM8: + case ITEM7: Infoboxprint(myLanguage[language][36]); OneBigLineSprite.setTextDatum(TL_DATUM); @@ -3732,7 +3775,7 @@ void DoMenu() { OneBigLineSprite.pushSprite(24, 118); break; - case ITEM9: + case ITEM8: Infoboxprint(myLanguage[language][169]); OneBigLineSprite.setTextDatum(TL_DATUM); @@ -3744,7 +3787,7 @@ void DoMenu() { OneBigLineSprite.pushSprite(24, 118); break; - case ITEM10: + case ITEM9: Infoboxprint(myLanguage[language][82]); OneBigLineSprite.drawString(String(amscansens, DEC), 135, 0); diff --git a/src/gui.h b/src/gui.h index ea3d212..9022fef 100644 --- a/src/gui.h +++ b/src/gui.h @@ -40,6 +40,8 @@ extern bool dropout; extern bool dynamicPTYold; extern bool dynamicspi; extern bool edgebeep; +extern bool fmsi; +extern bool fullsearchrds; extern bool hasafold; extern bool haseonold; extern bool hasrtplusold; diff --git a/src/language.h b/src/language.h index 8e60fb0..3e81684 100644 --- a/src/language.h +++ b/src/language.h @@ -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][206] PROGMEM = { +static const char* const myLanguage[18][208] PROGMEM = { { "English", // English "Rotary direction changed", // 1 "Please release button", // 2 @@ -211,7 +211,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "All", // 202 "Fast PS", // 203 "Default", // 204 - "Mute screen on\nXDRGTK connection" // 205 + "Mute screen on\nXDRGTK connection", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Nederlands", // Dutch @@ -419,7 +421,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Alles", // 202 "Snelle PS", // 203 "Standaard", // 204 - "Scherm uit bij\nXDRGTK verbinding" // 205 + "Scherm uit bij\nXDRGTK verbinding", // 205 + "FMSI stereo verbetering", // 206 + "Alleen beschikbaar op\nTEF6687/6689!" // 207 }, { "Polski", // Polish @@ -627,7 +631,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Wszystkie", // 202 "Szybki PS", // 203 "Domyslny", // 204 - "Wylacz ekran gdy\npołączony z XDR-GTK" // 205 + "Wylacz ekran gdy\npołączony z XDR-GTK", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Hrvatski", // Croatian @@ -835,7 +841,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Sve", // 202 "Brzi PS", // 203 "Zadano", // 204 - "Isključi zaslon\ntijekom veze XDRGTK-om" // 205 + "Isključi zaslon\ntijekom veze XDRGTK-om", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Ελληνικά", // Greek @@ -1043,7 +1051,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Όλα", // 202 "Γρήγορο PS", // 203 "Προεπιλογή", // 204 - "Μαύρη οθόνη σε\nσύνδεση XDRGTK" // 205 + "Μαύρη οθόνη σε\nσύνδεση XDRGTK", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Română", // Romanian @@ -1251,7 +1261,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Tot", // 202 "PS rapid", // 203 "Mod implicit", // 204 - "Mute screen on\nXDRGTK connection" // 205 + "Mute screen on\nXDRGTK connection", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Deutsch", // German @@ -1459,7 +1471,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Maximal", // 202 "Schnelles PS", // 203 "Default", // 204 - "Mute screen on\nXDRGTK connection" // 205 + "Mute screen on\nXDRGTK connection", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Český", // Czech @@ -1667,7 +1681,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Vše", // 202 "Rychlé načtení PS", // 203 "Default", // 204 - "Mute screen on\nXDRGTK connection" // 205 + "Mute screen on\nXDRGTK connection", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Slovenský", // Slovak @@ -1875,7 +1891,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Všetko", // 202 "Rýchle načítanie PS", // 203 "Default", // 204 - "Mute screen on\nXDRGTK connection" // 205 + "Mute screen on\nXDRGTK connection", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Français", // French @@ -2083,7 +2101,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Toutes", // 202 "PS rapide", // 203 "Défaut", // 204 - "Écran muet sur\nla connexion XDRGTK" // 205 + "Écran muet sur\nla connexion XDRGTK", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Български", // Bulgarian @@ -2291,7 +2311,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Всички", // 202 "Fast PS", // 203 *** "Default", // 204 - "Mute screen on\nXDRGTK connection" // 205 + "Mute screen on\nXDRGTK connection", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Русский", // Russian @@ -2499,7 +2521,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Все", // 202 "Быстрый PS", // 203 "Default", // 204 - "Mute screen on\nXDRGTK connection" // 205 + "Mute screen on\nXDRGTK connection", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Українська", // Ukranian @@ -2707,7 +2731,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Усе", // 202 "Швидкий PS", // 203 "Default", // 204 - "Mute screen on\nXDRGTK connection" // 205 + "Mute screen on\nXDRGTK connection", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Italiano", // Italian @@ -2915,7 +2941,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Tutto", // 202 *** "PS veloce", // 203 *** "Default", // 204 - "Mute screen on\nXDRGTK connection" // 205 + "Mute screen on\nXDRGTK connection", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Simplified Chinese", // Simplified Chinese @@ -3123,7 +3151,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "全部", // 202 "快速 PS", // 203 "默认", // 204 - "XDRGTK连接时锁屏" // 205 + "XDRGTK连接时锁屏", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Norsk", // Norwegian @@ -3331,7 +3361,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Alt", // 202 "Rask PS", // 203 "Standard", // 204 - "Dempet skjerm på\nXDRGTK tilkobling" // 205 + "Dempet skjerm på\nXDRGTK tilkobling", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Español", // Spanish @@ -3539,7 +3571,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Todo", // 202 "PS rápido", // 203 "Por defecto", // 204 - "Pantalla de mudo\nen la conexión XDRGTK" // 205 + "Pantalla de mudo\nen la conexión XDRGTK", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 }, { "Português", // Portuguese @@ -3747,7 +3781,9 @@ static const char* const myLanguage[18][206] PROGMEM = { "Tudo", // 202 "PS rápido", // 203 "Predefinição", // 204 - "Tela mudo na\nconexão XDRGTK" // 205 + "Tela mudo na\nconexão XDRGTK", // 205 + "FMSI stereo improvement", // 206 + "Function only available\non TEF6687/6689!" // 207 } }; -#endif +#endif \ No newline at end of file