Added FMSI switch to menu

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