Introduced DX scan mode
This commit is contained in:
+51
-16
@@ -91,6 +91,7 @@ bool RDSstatus;
|
|||||||
bool RDSstatusold;
|
bool RDSstatusold;
|
||||||
bool rdsstereoold;
|
bool rdsstereoold;
|
||||||
bool rtcset;
|
bool rtcset;
|
||||||
|
bool scandxmode;
|
||||||
bool screenmute;
|
bool screenmute;
|
||||||
bool screensavertriggered = false;
|
bool screensavertriggered = false;
|
||||||
bool seek;
|
bool seek;
|
||||||
@@ -172,6 +173,10 @@ byte rdsqualityold;
|
|||||||
byte region;
|
byte region;
|
||||||
byte rotarymode;
|
byte rotarymode;
|
||||||
byte touchrotating;
|
byte touchrotating;
|
||||||
|
byte scanstart;
|
||||||
|
byte scanstop;
|
||||||
|
byte scanhold;
|
||||||
|
byte scanmodeold;
|
||||||
byte screensaverOptions[5] = {0, 3, 10, 30, 60};
|
byte screensaverOptions[5] = {0, 3, 10, 30, 60};
|
||||||
byte screensaverset;
|
byte screensaverset;
|
||||||
byte showmodulation;
|
byte showmodulation;
|
||||||
@@ -354,6 +359,7 @@ unsigned long rtplusticker;
|
|||||||
unsigned long rtplustickerhold;
|
unsigned long rtplustickerhold;
|
||||||
unsigned long rtticker;
|
unsigned long rtticker;
|
||||||
unsigned long rttickerhold;
|
unsigned long rttickerhold;
|
||||||
|
unsigned long scantimer;
|
||||||
unsigned long signalstatustimer;
|
unsigned long signalstatustimer;
|
||||||
unsigned long tottimer;
|
unsigned long tottimer;
|
||||||
unsigned long tuningtimer;
|
unsigned long tuningtimer;
|
||||||
@@ -475,6 +481,9 @@ void setup() {
|
|||||||
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);
|
fmsi = EEPROM.readByte(EE_BYTE_FMSI);
|
||||||
|
scanstart = EEPROM.readByte(EE_BYTE_SCANSTART);
|
||||||
|
scanstop = EEPROM.readByte(EE_BYTE_SCANSTOP);
|
||||||
|
scanhold = EEPROM.readByte(EE_BYTE_SCANHOLD);
|
||||||
|
|
||||||
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;
|
||||||
@@ -784,6 +793,21 @@ void loop() {
|
|||||||
}
|
}
|
||||||
if (digitalRead(BANDBUTTON) == LOW ) BANDBUTTONPress();
|
if (digitalRead(BANDBUTTON) == LOW ) BANDBUTTONPress();
|
||||||
|
|
||||||
|
if (scandxmode && millis() >= scantimer + (scanhold * 1000)) {
|
||||||
|
memorypos++;
|
||||||
|
if (memorypos > scanstop) memorypos = scanstart;
|
||||||
|
while (IsStationEmpty()) {
|
||||||
|
memorypos++;
|
||||||
|
if (memorypos > scanstop) {
|
||||||
|
memorypos = scanstart;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DoMemoryPosTune();
|
||||||
|
ShowMemoryPos();
|
||||||
|
scantimer = millis();
|
||||||
|
}
|
||||||
|
|
||||||
if (millis() >= tuningtimer + 200) {
|
if (millis() >= tuningtimer + 200) {
|
||||||
if (store) {
|
if (store) {
|
||||||
detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A));
|
detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A));
|
||||||
@@ -1350,6 +1374,7 @@ void ToggleBand(byte nowBand) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void BANDBUTTONPress() {
|
void BANDBUTTONPress() {
|
||||||
|
if (scandxmode) cancelDXScan();
|
||||||
if (memorystore) {
|
if (memorystore) {
|
||||||
EEPROM.writeUInt((memorypos * 4) + EE_PRESETS_FREQUENCY_START, EE_PRESETS_FREQUENCY);
|
EEPROM.writeUInt((memorypos * 4) + EE_PRESETS_FREQUENCY_START, EE_PRESETS_FREQUENCY);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
@@ -1855,6 +1880,7 @@ void SelectBand() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void BWButtonPress() {
|
void BWButtonPress() {
|
||||||
|
if (scandxmode) cancelDXScan();
|
||||||
if (!usesquelch) radio.setUnMute();
|
if (!usesquelch) radio.setUnMute();
|
||||||
if (!menu) {
|
if (!menu) {
|
||||||
seek = false;
|
seek = false;
|
||||||
@@ -1927,6 +1953,7 @@ void doStereoToggle() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ModeButtonPress() {
|
void ModeButtonPress() {
|
||||||
|
if (scandxmode) cancelDXScan();
|
||||||
if (!usesquelch) radio.setUnMute();
|
if (!usesquelch) radio.setUnMute();
|
||||||
if (advancedRDS) {
|
if (advancedRDS) {
|
||||||
BuildDisplay();
|
BuildDisplay();
|
||||||
@@ -1955,22 +1982,14 @@ void ModeButtonPress() {
|
|||||||
ScreensaverTimerRestart();
|
ScreensaverTimerRestart();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (XDRGTKUSB || XDRGTKTCP) {
|
if (!menu) {
|
||||||
ShowFreq(1);
|
menuoption = ITEM1;
|
||||||
tftPrint(-1, myLanguage[language][86], 70, 68, ActiveColor, ActiveColorSmooth, 28);
|
menupage = INDEX;
|
||||||
delay(1000);
|
menuitem = 0;
|
||||||
tftPrint(-1, myLanguage[language][86], 70, 68, BackgroundColor, BackgroundColor, 28);
|
UpdateFonts(1);
|
||||||
ShowFreq(0);
|
BuildMenu();
|
||||||
} else {
|
menu = true;
|
||||||
if (!menu) {
|
ScreensaverTimerSet(OFF);
|
||||||
menuoption = ITEM1;
|
|
||||||
menupage = INDEX;
|
|
||||||
menuitem = 0;
|
|
||||||
UpdateFonts(1);
|
|
||||||
BuildMenu();
|
|
||||||
menu = true;
|
|
||||||
ScreensaverTimerSet(OFF);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -2055,6 +2074,9 @@ void ModeButtonPress() {
|
|||||||
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.writeByte(EE_BYTE_FMSI, fmsi);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SCANSTART, scanstart);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SCANSTOP, scanstop);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SCANHOLD, scanhold);
|
||||||
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();
|
||||||
@@ -2212,6 +2234,7 @@ void RoundStep() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ButtonPress() {
|
void ButtonPress() {
|
||||||
|
if (scandxmode) cancelDXScan();
|
||||||
if (!usesquelch) radio.setUnMute();
|
if (!usesquelch) radio.setUnMute();
|
||||||
if (advancedRDS) BuildDisplay();
|
if (advancedRDS) BuildDisplay();
|
||||||
if (!menu) {
|
if (!menu) {
|
||||||
@@ -2372,6 +2395,7 @@ void ButtonPress() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void KeyUp() {
|
void KeyUp() {
|
||||||
|
if (scandxmode) cancelDXScan();
|
||||||
rotary = 0;
|
rotary = 0;
|
||||||
if (!afscreen) {
|
if (!afscreen) {
|
||||||
if (!menu) {
|
if (!menu) {
|
||||||
@@ -2435,6 +2459,7 @@ void KeyUp() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void KeyDown() {
|
void KeyDown() {
|
||||||
|
if (scandxmode) cancelDXScan();
|
||||||
rotary = 0;
|
rotary = 0;
|
||||||
if (!afscreen) {
|
if (!afscreen) {
|
||||||
if (!menu) {
|
if (!menu) {
|
||||||
@@ -4142,6 +4167,9 @@ void DefaultSettings(byte userhardwaremodel) {
|
|||||||
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.writeByte(EE_BYTE_FMSI, 1);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SCANSTART, 0);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SCANSTOP, 9);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SCANHOLD, 5);
|
||||||
|
|
||||||
for (int i = 0; i < EE_PRESETS_CNT; i++) {
|
for (int i = 0; i < EE_PRESETS_CNT; i++) {
|
||||||
EEPROM.writeByte(i + EE_PRESETS_BAND_START, BAND_FM);
|
EEPROM.writeByte(i + EE_PRESETS_BAND_START, BAND_FM);
|
||||||
@@ -4270,3 +4298,10 @@ void UpdateFonts(bool mode) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cancelDXScan() {
|
||||||
|
tunemode = scanmodeold;
|
||||||
|
scandxmode = false;
|
||||||
|
ShowTuneMode();
|
||||||
|
ShowMemoryPos();
|
||||||
|
}
|
||||||
|
|||||||
+11
-8
@@ -196,9 +196,9 @@
|
|||||||
|
|
||||||
// EEPROM index defines
|
// EEPROM index defines
|
||||||
#define EE_PRESETS_CNT 99
|
#define EE_PRESETS_CNT 99
|
||||||
#define EE_CHECKBYTE_VALUE 5 // 0 ~ 255,add new entry, change for new value
|
#define EE_CHECKBYTE_VALUE 6 // 0 ~ 255,add new entry, change for new value
|
||||||
|
|
||||||
#define EE_TOTAL_CNT 2213
|
#define EE_TOTAL_CNT 2216
|
||||||
#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
|
||||||
@@ -282,12 +282,15 @@
|
|||||||
#define EE_BYTE_FMAGC 127
|
#define EE_BYTE_FMAGC 127
|
||||||
#define EE_BYTE_AMAGC 128
|
#define EE_BYTE_AMAGC 128
|
||||||
#define EE_BYTE_FMSI 129
|
#define EE_BYTE_FMSI 129
|
||||||
#define EE_PRESETS_BAND_START 130
|
#define EE_BYTE_SCANSTART 130
|
||||||
#define EE_PRESET_BW_START 230
|
#define EE_BYTE_SCANSTOP 131
|
||||||
#define EE_PRESET_MS_START 330
|
#define EE_BYTE_SCANHOLD 132
|
||||||
#define EE_PRESETS_FREQUENCY_START 430
|
#define EE_PRESETS_BAND_START 133
|
||||||
#define EE_PRESETS_RDSPI_START 826 // 5 bytes
|
#define EE_PRESET_BW_START 233
|
||||||
#define EE_PRESETS_RDSPS_START 1321 // 9 bytes
|
#define EE_PRESET_MS_START 333
|
||||||
|
#define EE_PRESETS_FREQUENCY_START 433
|
||||||
|
#define EE_PRESETS_RDSPI_START 829 // 5 bytes
|
||||||
|
#define EE_PRESETS_RDSPS_START 1324 // 9 bytes
|
||||||
#define EE_PRESETS_FREQUENCY 0
|
#define EE_PRESETS_FREQUENCY 0
|
||||||
|
|
||||||
// End of EEPROM index defines
|
// End of EEPROM index defines
|
||||||
|
|||||||
+168
-4
@@ -7,7 +7,8 @@
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
byte menuitem;
|
byte menuitem;
|
||||||
byte items[8] = {8, static_cast<byte>(dynamicspi ? 9 : 8), 7, 10, 9, 10, 9, 6};
|
byte items[9] = {9, static_cast<byte>(dynamicspi ? 9 : 8), 7, 10, 9, 10, 9, 6, 4};
|
||||||
|
extern mem presets[];
|
||||||
|
|
||||||
void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de/online/rgb565-color-picker/
|
void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de/online/rgb565-color-picker/
|
||||||
switch (CurrentTheme) {
|
switch (CurrentTheme) {
|
||||||
@@ -617,6 +618,12 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
|||||||
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
FullLineSprite.drawString((USBmode ? "RDS Spy" : "XDRGTK"), 298, 3);
|
FullLineSprite.drawString((USBmode ? "RDS Spy" : "XDRGTK"), 298, 3);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DXMODE:
|
||||||
|
FullLineSprite.setTextDatum(TL_DATUM);
|
||||||
|
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||||
|
FullLineSprite.drawString(removeNewline(myLanguage[language][212]), 6, 3);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -704,6 +711,16 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
|||||||
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
FullLineSprite.drawString((wifi ? myLanguage[language][42] : myLanguage[language][30]), 298, 3);
|
FullLineSprite.drawString((wifi ? myLanguage[language][42] : myLanguage[language][30]), 298, 3);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DXMODE:
|
||||||
|
FullLineSprite.setTextDatum(TL_DATUM);
|
||||||
|
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||||
|
FullLineSprite.drawString(removeNewline(myLanguage[language][209]), 6, 3);
|
||||||
|
|
||||||
|
FullLineSprite.setTextDatum(TR_DATUM);
|
||||||
|
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
|
FullLineSprite.drawString(String(scanstart + 1, DEC), 298, 3);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -790,6 +807,16 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
|||||||
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
FullLineSprite.drawString(">", 298, 3);
|
FullLineSprite.drawString(">", 298, 3);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DXMODE:
|
||||||
|
FullLineSprite.setTextDatum(TL_DATUM);
|
||||||
|
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||||
|
FullLineSprite.drawString(removeNewline(myLanguage[language][210]), 6, 3);
|
||||||
|
|
||||||
|
FullLineSprite.setTextDatum(TR_DATUM);
|
||||||
|
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
|
FullLineSprite.drawString(String(scanstop + 1, DEC), 298, 3);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -876,6 +903,18 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
|||||||
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
FullLineSprite.drawString((wifi ? String(WiFi.localIP()[0]) + "." + String(WiFi.localIP()[1]) + "." + String(WiFi.localIP()[2]) + "." + String(subnetclient, DEC) : "-"), 298, 3);
|
FullLineSprite.drawString((wifi ? String(WiFi.localIP()[0]) + "." + String(WiFi.localIP()[1]) + "." + String(WiFi.localIP()[2]) + "." + String(subnetclient, DEC) : "-"), 298, 3);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DXMODE:
|
||||||
|
FullLineSprite.setTextDatum(TL_DATUM);
|
||||||
|
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||||
|
FullLineSprite.drawString(removeNewline(myLanguage[language][211]), 6, 3);
|
||||||
|
|
||||||
|
FullLineSprite.setTextDatum(TR_DATUM);
|
||||||
|
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||||
|
FullLineSprite.drawString(removeNewline(myLanguage[language][92]), 298, 3);
|
||||||
|
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
|
FullLineSprite.drawString(String(scanhold, DEC), 258, 3);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1154,7 +1193,7 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
|||||||
case INDEX:
|
case INDEX:
|
||||||
FullLineSprite.setTextDatum(TC_DATUM);
|
FullLineSprite.setTextDatum(TC_DATUM);
|
||||||
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||||
FullLineSprite.drawString(removeNewline(myLanguage[language][70]), 152, 3);
|
FullLineSprite.drawString(removeNewline(myLanguage[language][213]), 152, 3);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MAINSETTINGS:
|
case MAINSETTINGS:
|
||||||
@@ -1190,7 +1229,7 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
|||||||
case RDSSETTINGS:
|
case RDSSETTINGS:
|
||||||
FullLineSprite.setTextDatum(TL_DATUM);
|
FullLineSprite.setTextDatum(TL_DATUM);
|
||||||
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||||
FullLineSprite.drawString(removeNewline(myLanguage[language][196]), 6, 3);
|
FullLineSprite.drawString(removeNewline(myLanguage[language][215]), 6, 3);
|
||||||
FullLineSprite.setTextDatum(TR_DATUM);
|
FullLineSprite.setTextDatum(TR_DATUM);
|
||||||
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
FullLineSprite.drawString((radio.rds.sortaf ? myLanguage[language][42] : myLanguage[language][30]), 298, 3);
|
FullLineSprite.drawString((radio.rds.sortaf ? myLanguage[language][42] : myLanguage[language][30]), 298, 3);
|
||||||
@@ -1229,6 +1268,12 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
|||||||
|
|
||||||
case 8:
|
case 8:
|
||||||
switch (menupage) {
|
switch (menupage) {
|
||||||
|
case INDEX:
|
||||||
|
FullLineSprite.setTextDatum(TC_DATUM);
|
||||||
|
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||||
|
FullLineSprite.drawString(removeNewline(myLanguage[language][70]), 152, 3);
|
||||||
|
break;
|
||||||
|
|
||||||
case MAINSETTINGS:
|
case MAINSETTINGS:
|
||||||
if (dynamicspi) {
|
if (dynamicspi) {
|
||||||
FullLineSprite.setTextDatum(TL_DATUM);
|
FullLineSprite.setTextDatum(TL_DATUM);
|
||||||
@@ -2449,6 +2494,36 @@ void MenuUp() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DXMODE:
|
||||||
|
switch (menuoption) {
|
||||||
|
case ITEM2:
|
||||||
|
scanstart++;
|
||||||
|
if (scanstart >= scanstop) scanstart = 0;
|
||||||
|
OneBigLineSprite.drawString(String(scanstart + 1, DEC), 135, 0);
|
||||||
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ITEM3:
|
||||||
|
scanstop++;
|
||||||
|
if (scanstop > EE_PRESETS_CNT - 1) scanstop = scanstart + 1;
|
||||||
|
OneBigLineSprite.drawString(String(scanstop + 1, DEC), 135, 0);
|
||||||
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ITEM4:
|
||||||
|
scanhold++;
|
||||||
|
if (scanhold > 30) scanhold = 1;
|
||||||
|
OneBigLineSprite.setTextDatum(TL_DATUM);
|
||||||
|
OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||||
|
OneBigLineSprite.drawString(myLanguage[language][92], 155, 0);
|
||||||
|
OneBigLineSprite.setTextDatum(TR_DATUM);
|
||||||
|
OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
|
OneBigLineSprite.drawString(String(scanhold, DEC), 135, 0);
|
||||||
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3220,6 +3295,36 @@ void MenuDown() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DXMODE:
|
||||||
|
switch (menuoption) {
|
||||||
|
case ITEM2:
|
||||||
|
scanstart--;
|
||||||
|
if (scanstart >= scanstop) scanstart = scanstop - 1;
|
||||||
|
OneBigLineSprite.drawString(String(scanstart + 1, DEC), 135, 0);
|
||||||
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ITEM3:
|
||||||
|
scanstop--;
|
||||||
|
if (scanstop <= scanstart) scanstop = EE_PRESETS_CNT - 1;
|
||||||
|
OneBigLineSprite.drawString(String(scanstop + 1, DEC), 135, 0);
|
||||||
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ITEM4:
|
||||||
|
scanhold--;
|
||||||
|
if (scanhold < 1) scanhold = 30;
|
||||||
|
OneBigLineSprite.setTextDatum(TL_DATUM);
|
||||||
|
OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||||
|
OneBigLineSprite.drawString(myLanguage[language][92], 155, 0);
|
||||||
|
OneBigLineSprite.setTextDatum(TR_DATUM);
|
||||||
|
OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
|
OneBigLineSprite.drawString(String(scanhold, DEC), 135, 0);
|
||||||
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3306,6 +3411,14 @@ void DoMenu() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ITEM8:
|
case ITEM8:
|
||||||
|
menupage = DXMODE;
|
||||||
|
menuoption = ITEM1;
|
||||||
|
menuitem = 0;
|
||||||
|
submenu = true;
|
||||||
|
BuildMenu();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ITEM9:
|
||||||
menuopen = true;
|
menuopen = true;
|
||||||
tft.drawRoundRect(10, 6, 300, 230, 5, ActiveColor);
|
tft.drawRoundRect(10, 6, 300, 230, 5, ActiveColor);
|
||||||
tft.fillRoundRect(12, 8, 296, 226, 5, BackgroundColor);
|
tft.fillRoundRect(12, 8, 296, 226, 5, BackgroundColor);
|
||||||
@@ -3689,7 +3802,7 @@ void DoMenu() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ITEM8:
|
case ITEM8:
|
||||||
Infoboxprint(myLanguage[language][196]);
|
Infoboxprint(myLanguage[language][215]);
|
||||||
|
|
||||||
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);
|
||||||
@@ -3984,6 +4097,53 @@ void DoMenu() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DXMODE:
|
||||||
|
switch (menuoption) {
|
||||||
|
case ITEM1:
|
||||||
|
if (presets[scanstart].band == BAND_FM && presets[scanstart].frequency == EE_PRESETS_FREQUENCY) {
|
||||||
|
Infoboxprint(myLanguage[language][214]);
|
||||||
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
|
} else {
|
||||||
|
menuopen = false;
|
||||||
|
menu = false;
|
||||||
|
memorypos = scanstart;
|
||||||
|
scanmodeold = tunemode;
|
||||||
|
tunemode = TUNE_MEM;
|
||||||
|
BuildDisplay();
|
||||||
|
DoMemoryPosTune();
|
||||||
|
scantimer = millis();
|
||||||
|
scandxmode = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ITEM2:
|
||||||
|
Infoboxprint(myLanguage[language][209]);
|
||||||
|
|
||||||
|
OneBigLineSprite.drawString(String(scanstart + 1), 135, 0);
|
||||||
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ITEM3:
|
||||||
|
Infoboxprint(myLanguage[language][210]);
|
||||||
|
|
||||||
|
OneBigLineSprite.drawString(String(scanstop + 1), 135, 0);
|
||||||
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ITEM4:
|
||||||
|
Infoboxprint(myLanguage[language][211]);
|
||||||
|
|
||||||
|
OneBigLineSprite.setTextDatum(TL_DATUM);
|
||||||
|
OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||||
|
OneBigLineSprite.drawString(myLanguage[language][92], 155, 0);
|
||||||
|
OneBigLineSprite.setTextDatum(TR_DATUM);
|
||||||
|
OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
|
OneBigLineSprite.drawString(String(scanhold, DEC), 135, 0);
|
||||||
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (menupage == CONNECTIVITY && menuoption == ITEM2) {
|
if (menupage == CONNECTIVITY && menuoption == ITEM2) {
|
||||||
@@ -3993,7 +4153,11 @@ void DoMenu() {
|
|||||||
if (menupage == DISPLAYSETTINGS && menuoption == ITEM5) {
|
if (menupage == DISPLAYSETTINGS && menuoption == ITEM5) {
|
||||||
doTheme();
|
doTheme();
|
||||||
}
|
}
|
||||||
|
|
||||||
menuopen = false;
|
menuopen = false;
|
||||||
|
if (scanstart >= scanstop) scanstart = scanstop - 1;
|
||||||
|
if (scanstop <= scanstart) scanstop = scanstart + 1;
|
||||||
|
|
||||||
UpdateFonts(1);
|
UpdateFonts(1);
|
||||||
BuildMenu();
|
BuildMenu();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,10 +23,10 @@
|
|||||||
#define ITEM9 190
|
#define ITEM9 190
|
||||||
#define ITEM10 210
|
#define ITEM10 210
|
||||||
|
|
||||||
enum menupage {INDEX, MAINSETTINGS, AUDIOSETTINGS, DISPLAYSETTINGS, RDSSETTINGS, FMSETTINGS, AMSETTINGS, CONNECTIVITY};
|
enum menupage {INDEX, MAINSETTINGS, AUDIOSETTINGS, DISPLAYSETTINGS, RDSSETTINGS, FMSETTINGS, AMSETTINGS, CONNECTIVITY, DXMODE};
|
||||||
|
|
||||||
extern byte menuitem;
|
extern byte menuitem;
|
||||||
extern byte items[8];
|
extern byte items[9];
|
||||||
|
|
||||||
extern bool advancedRDS;
|
extern bool advancedRDS;
|
||||||
extern bool afmethodBold;
|
extern bool afmethodBold;
|
||||||
@@ -47,6 +47,7 @@ extern bool haseonold;
|
|||||||
extern bool hasrtplusold;
|
extern bool hasrtplusold;
|
||||||
extern bool hastmcold;
|
extern bool hastmcold;
|
||||||
extern bool LowLevelInit;
|
extern bool LowLevelInit;
|
||||||
|
extern bool menu;
|
||||||
extern bool menuopen;
|
extern bool menuopen;
|
||||||
extern bool mwstepsize;
|
extern bool mwstepsize;
|
||||||
extern bool rdsreset;
|
extern bool rdsreset;
|
||||||
@@ -54,6 +55,7 @@ extern bool RDSstatus;
|
|||||||
extern bool RDSstatusold;
|
extern bool RDSstatusold;
|
||||||
extern bool rdsstereoold;
|
extern bool rdsstereoold;
|
||||||
extern bool usesquelch;
|
extern bool usesquelch;
|
||||||
|
extern bool scandxmode;
|
||||||
extern bool softmuteam;
|
extern bool softmuteam;
|
||||||
extern bool softmutefm;
|
extern bool softmutefm;
|
||||||
extern bool Stereostatusold;
|
extern bool Stereostatusold;
|
||||||
@@ -94,12 +96,17 @@ extern byte HighCutLevel;
|
|||||||
extern byte HighCutOffset;
|
extern byte HighCutOffset;
|
||||||
extern byte language;
|
extern byte language;
|
||||||
extern byte licold;
|
extern byte licold;
|
||||||
|
extern byte memorypos;
|
||||||
extern byte menupage;
|
extern byte menupage;
|
||||||
extern byte MSold;
|
extern byte MSold;
|
||||||
extern byte poweroptions;
|
extern byte poweroptions;
|
||||||
extern byte eonptyold[20];
|
extern byte eonptyold[20];
|
||||||
extern byte rdsblockold;
|
extern byte rdsblockold;
|
||||||
extern byte region;
|
extern byte region;
|
||||||
|
extern byte scanstart;
|
||||||
|
extern byte scanstop;
|
||||||
|
extern byte scanhold;
|
||||||
|
extern byte scanmodeold;
|
||||||
extern byte screensaverOptions[5];
|
extern byte screensaverOptions[5];
|
||||||
extern byte screensaverset;
|
extern byte screensaverset;
|
||||||
extern byte showmodulation;
|
extern byte showmodulation;
|
||||||
@@ -113,6 +120,7 @@ extern byte submenu;
|
|||||||
extern byte subnetclient;
|
extern byte subnetclient;
|
||||||
extern byte tot;
|
extern byte tot;
|
||||||
extern byte touchrotating;
|
extern byte touchrotating;
|
||||||
|
extern byte tunemode;
|
||||||
extern byte unit;
|
extern byte unit;
|
||||||
extern byte spispeed;
|
extern byte spispeed;
|
||||||
extern char eonpicodeold[20][6];
|
extern char eonpicodeold[20][6];
|
||||||
@@ -181,6 +189,7 @@ extern unsigned int LowEdgeSet;
|
|||||||
extern unsigned int mappedfreqold[20];
|
extern unsigned int mappedfreqold[20];
|
||||||
extern unsigned int mappedfreqold2[20];
|
extern unsigned int mappedfreqold2[20];
|
||||||
extern unsigned int mappedfreqold3[20];
|
extern unsigned int mappedfreqold3[20];
|
||||||
|
extern unsigned long scantimer;
|
||||||
|
|
||||||
extern TFT_eSPI tft;
|
extern TFT_eSPI tft;
|
||||||
extern TEF6686 radio;
|
extern TEF6686 radio;
|
||||||
@@ -212,6 +221,7 @@ extern void updateiMS();
|
|||||||
extern void updateEQ();
|
extern void updateEQ();
|
||||||
extern void doTheme();
|
extern void doTheme();
|
||||||
extern void tryWiFi();
|
extern void tryWiFi();
|
||||||
|
extern void DoMemoryPosTune();
|
||||||
extern void UpdateFonts(bool mode);
|
extern void UpdateFonts(bool mode);
|
||||||
extern void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int color, int smoothcolor, uint8_t fontsize);
|
extern void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int color, int smoothcolor, uint8_t fontsize);
|
||||||
|
|
||||||
|
|||||||
+164
-38
@@ -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][209] PROGMEM = {
|
static const char* const myLanguage[18][216] PROGMEM = {
|
||||||
{ "English", // English
|
{ "English", // English
|
||||||
"Rotary direction changed", // 1
|
"Rotary direction changed", // 1
|
||||||
"Please release button", // 2
|
"Please release button", // 2
|
||||||
@@ -202,7 +202,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193
|
"FM", // 193
|
||||||
"AM", // 194
|
"AM", // 194
|
||||||
"CONNECT", // 195
|
"CONNECT", // 195
|
||||||
"Auto sort AF", // 196
|
"DX MODE", // 196
|
||||||
"Stationlist ID", // 197
|
"Stationlist ID", // 197
|
||||||
"AM AGC", // 198
|
"AM AGC", // 198
|
||||||
"FM deemphasis", // 199
|
"FM deemphasis", // 199
|
||||||
@@ -214,7 +214,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Mute screen on\nXDRGTK connection", // 205
|
"Mute screen on\nXDRGTK connection", // 205
|
||||||
"FMSI stereo\nimprovement", // 206
|
"FMSI stereo\nimprovement", // 206
|
||||||
"Function only available\non TEF6687/6689!", // 207
|
"Function only available\non TEF6687/6689!", // 207
|
||||||
"Function not available\non selected skin!" // 208
|
"Function not available\non selected skin!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Auto sort AF" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Nederlands", // Dutch
|
{ "Nederlands", // Dutch
|
||||||
@@ -413,7 +420,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193 ***
|
"FM", // 193 ***
|
||||||
"AM", // 194 ***
|
"AM", // 194 ***
|
||||||
"VERBIND", // 195
|
"VERBIND", // 195
|
||||||
"Auto AF sorteren", // 196
|
"DX MODE", // 196
|
||||||
"Stationlist ID", // 197 ***
|
"Stationlist ID", // 197 ***
|
||||||
"AM AGC", // 198 ***
|
"AM AGC", // 198 ***
|
||||||
"FM deemphasis", // 199 ***
|
"FM deemphasis", // 199 ***
|
||||||
@@ -425,7 +432,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Scherm uit bij\nXDRGTK verbinding", // 205
|
"Scherm uit bij\nXDRGTK verbinding", // 205
|
||||||
"FMSI stereo\nverbetering", // 206
|
"FMSI stereo\nverbetering", // 206
|
||||||
"Alleen beschikbaar op\nTEF6687/6689!", // 207
|
"Alleen beschikbaar op\nTEF6687/6689!", // 207
|
||||||
"Niet beschikbaar op\ngekozen uiterlijk!" // 208
|
"Niet beschikbaar op\ngekozen uiterlijk!", // 208
|
||||||
|
"Begin zoeken\ngeheugenkanaal", // 209
|
||||||
|
"Eind zoeken\ngeheugenkanaal", // 210
|
||||||
|
"Wachttijd", // 211
|
||||||
|
"Start DX zoeken", // 212
|
||||||
|
"FM DX Opties", // 213
|
||||||
|
"Fout! Startkanaal is\ngemarkeerd als skip", // 214
|
||||||
|
"Auto AF sorteren" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Polski", // Polish
|
{ "Polski", // Polish
|
||||||
@@ -624,7 +638,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193 ***
|
"FM", // 193 ***
|
||||||
"AM", // 194 ***
|
"AM", // 194 ***
|
||||||
"ŁĄCZNOŚĆ", // 195
|
"ŁĄCZNOŚĆ", // 195
|
||||||
"Automat. sortowanie AF", // 196
|
"DX MODE", // 196
|
||||||
"Identyfikator Stationlist", // 197
|
"Identyfikator Stationlist", // 197
|
||||||
"Tłumik ant. AM", // 198
|
"Tłumik ant. AM", // 198
|
||||||
"Deemfaza FM", // 199
|
"Deemfaza FM", // 199
|
||||||
@@ -636,7 +650,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Wylacz ekran gdy\npołączony z XDR-GTK", // 205
|
"Wylacz ekran gdy\npołączony z XDR-GTK", // 205
|
||||||
"Ulepszenie \nstereo FMSI", // 206
|
"Ulepszenie \nstereo FMSI", // 206
|
||||||
"Funkcja dostępna tylko\nna TEF6687/6689!", // 207
|
"Funkcja dostępna tylko\nna TEF6687/6689!", // 207
|
||||||
"Funkcja niedostępna\nna wybranym motywie!" // 208
|
"Funkcja niedostępna\nna wybranym motywie!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Automat. sortowanie AF" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Hrvatski", // Croatian
|
{ "Hrvatski", // Croatian
|
||||||
@@ -835,7 +856,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193
|
"FM", // 193
|
||||||
"AM", // 194
|
"AM", // 194
|
||||||
"SPOJI", // 195
|
"SPOJI", // 195
|
||||||
"Autom. sortiranje AF-a", // 196
|
"DX MODE", // 196
|
||||||
"Stationlist ID", // 197
|
"Stationlist ID", // 197
|
||||||
"AM ATT", // 198
|
"AM ATT", // 198
|
||||||
"FM deemphasis", // 199
|
"FM deemphasis", // 199
|
||||||
@@ -847,7 +868,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Isključi zaslon\ntijekom veze XDRGTK-om", // 205
|
"Isključi zaslon\ntijekom veze XDRGTK-om", // 205
|
||||||
"FMSI stereo\nimprovement", // 206
|
"FMSI stereo\nimprovement", // 206
|
||||||
"Function only available\non TEF6687/6689!", // 207
|
"Function only available\non TEF6687/6689!", // 207
|
||||||
"Function not available\non selected skin!" // 208
|
"Function not available\non selected skin!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Autom. sortiranje AF-a" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Ελληνικά", // Greek
|
{ "Ελληνικά", // Greek
|
||||||
@@ -1046,7 +1074,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193
|
"FM", // 193
|
||||||
"AM", // 194
|
"AM", // 194
|
||||||
"ΣΥΝΔΕΣΗ", // 195
|
"ΣΥΝΔΕΣΗ", // 195
|
||||||
"Αυτόματη ταξινόμηση\nAF", // 196
|
"DX MODE", // 196
|
||||||
"ID λίστας σταθμών", // 197
|
"ID λίστας σταθμών", // 197
|
||||||
"AM εξασθένιση", // 198
|
"AM εξασθένιση", // 198
|
||||||
"FM αποέμφαση", // 199
|
"FM αποέμφαση", // 199
|
||||||
@@ -1058,7 +1086,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Μαύρη οθόνη σε\nσύνδεση XDRGTK", // 205
|
"Μαύρη οθόνη σε\nσύνδεση XDRGTK", // 205
|
||||||
"FMSI βελτίωση\nστερεοφωνικού ήχου", // 206
|
"FMSI βελτίωση\nστερεοφωνικού ήχου", // 206
|
||||||
"Λειτουργία διαθέσιμη\nμόνο στα TEF6687/6689!", // 207
|
"Λειτουργία διαθέσιμη\nμόνο στα TEF6687/6689!", // 207
|
||||||
"Λειτουργία μη διαθέσιμη\nστην επιλεγμένη εμφάνιση!" // 208
|
"Λειτουργία μη διαθέσιμη\nστην επιλεγμένη εμφάνιση!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Αυτόματη ταξινόμηση\nAF" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Română", // Romanian
|
{ "Română", // Romanian
|
||||||
@@ -1257,7 +1292,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193
|
"FM", // 193
|
||||||
"AM", // 194
|
"AM", // 194
|
||||||
"CONECTARE", // 195
|
"CONECTARE", // 195
|
||||||
"Sortare automata AF", // 196
|
"DX MODE", // 196
|
||||||
"ID Lista posturi", // 197
|
"ID Lista posturi", // 197
|
||||||
"AGC AM", // 198
|
"AGC AM", // 198
|
||||||
"FM deemphasis", // 199
|
"FM deemphasis", // 199
|
||||||
@@ -1269,7 +1304,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Mute screen on\nXDRGTK connection", // 205
|
"Mute screen on\nXDRGTK connection", // 205
|
||||||
"FMSI stereo\nimprovement", // 206
|
"FMSI stereo\nimprovement", // 206
|
||||||
"Function only available\non TEF6687/6689!", // 207
|
"Function only available\non TEF6687/6689!", // 207
|
||||||
"Function not available\non selected skin!" // 208
|
"Function not available\non selected skin!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Sortare automata AF" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Deutsch", // German
|
{ "Deutsch", // German
|
||||||
@@ -1468,7 +1510,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"UKW", // 193
|
"UKW", // 193
|
||||||
"AM", // 194
|
"AM", // 194
|
||||||
"NETZ", // 195
|
"NETZ", // 195
|
||||||
"AF Autosortierung", // 196
|
"DX MODE", // 196
|
||||||
"Stationlist ID", // 197
|
"Stationlist ID", // 197
|
||||||
"AM ATT", // 198
|
"AM ATT", // 198
|
||||||
"Entzerrung auf UKW", // 199
|
"Entzerrung auf UKW", // 199
|
||||||
@@ -1480,7 +1522,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Display aus bei\nXDRGTK-Verbindung", // 205
|
"Display aus bei\nXDRGTK-Verbindung", // 205
|
||||||
"FMSI Stereo-\nVerbesserung", // 206
|
"FMSI Stereo-\nVerbesserung", // 206
|
||||||
"Funktion nur für\nTEF6687/6689 verfügbar!", // 207
|
"Funktion nur für\nTEF6687/6689 verfügbar!", // 207
|
||||||
"Funktion für ausgewählten\nSkin nicht verfügbar!" // 208
|
"Funktion für ausgewählten\nSkin nicht verfügbar!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"AF Autosortierung" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Český", // Czech
|
{ "Český", // Czech
|
||||||
@@ -1679,7 +1728,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193 ***
|
"FM", // 193 ***
|
||||||
"AM", // 194 ***
|
"AM", // 194 ***
|
||||||
"PŘIPOJENÍ", // 195
|
"PŘIPOJENÍ", // 195
|
||||||
"Auto řazení AF", // 196
|
"DX MODE", // 196
|
||||||
"Stationlist ID", // 197 ***
|
"Stationlist ID", // 197 ***
|
||||||
"AM ATT", // 198
|
"AM ATT", // 198
|
||||||
"FM deemphasis", // 199 ***
|
"FM deemphasis", // 199 ***
|
||||||
@@ -1691,7 +1740,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Mute screen on\nXDRGTK connection", // 205
|
"Mute screen on\nXDRGTK connection", // 205
|
||||||
"FMSI stereo\nimprovement", // 206
|
"FMSI stereo\nimprovement", // 206
|
||||||
"Function only available\non TEF6687/6689!", // 207
|
"Function only available\non TEF6687/6689!", // 207
|
||||||
"Function not available\non selected skin!" // 208
|
"Function not available\non selected skin!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Auto řazení AF" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Slovenský", // Slovak
|
{ "Slovenský", // Slovak
|
||||||
@@ -1890,7 +1946,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193 ***
|
"FM", // 193 ***
|
||||||
"AM", // 194 ***
|
"AM", // 194 ***
|
||||||
"PRIPOJENIE", // 195
|
"PRIPOJENIE", // 195
|
||||||
"Auto radenie AF", // 196
|
"DX MODE", // 196
|
||||||
"Stationlist ID", // 197 ***
|
"Stationlist ID", // 197 ***
|
||||||
"AM ATT", // 198
|
"AM ATT", // 198
|
||||||
"FM deemphasis", // 199 ***
|
"FM deemphasis", // 199 ***
|
||||||
@@ -1902,7 +1958,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Mute screen on\nXDRGTK connection", // 205
|
"Mute screen on\nXDRGTK connection", // 205
|
||||||
"FMSI stereo\nimprovement", // 206
|
"FMSI stereo\nimprovement", // 206
|
||||||
"Function only available\non TEF6687/6689!", // 207
|
"Function only available\non TEF6687/6689!", // 207
|
||||||
"Function not available\non selected skin!" // 208
|
"Function not available\non selected skin!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Auto radenie AF" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Français", // French
|
{ "Français", // French
|
||||||
@@ -2101,7 +2164,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193
|
"FM", // 193
|
||||||
"AM", // 194
|
"AM", // 194
|
||||||
"CONNECTER", // 195
|
"CONNECTER", // 195
|
||||||
"Tri AF automatique", // 196
|
"DX MODE", // 196
|
||||||
"Stationlist ID", // 197
|
"Stationlist ID", // 197
|
||||||
"AM ATT", // 198
|
"AM ATT", // 198
|
||||||
"FM déemphasie", // 199
|
"FM déemphasie", // 199
|
||||||
@@ -2113,7 +2176,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Écran muet sur\nla connexion XDRGTK", // 205
|
"Écran muet sur\nla connexion XDRGTK", // 205
|
||||||
"FMSI amélioration\ndu son stéréo", // 206
|
"FMSI amélioration\ndu son stéréo", // 206
|
||||||
"Fonction disponible seulement\nsur TEF6687/6689!", // 207
|
"Fonction disponible seulement\nsur TEF6687/6689!", // 207
|
||||||
"Fonction non disponible\nsur le skin sélectionné!" // 208
|
"Fonction non disponible\nsur le skin sélectionné!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Tri AF automatique" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Български", // Bulgarian
|
{ "Български", // Bulgarian
|
||||||
@@ -2312,7 +2382,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"УКВ (FM)", // 193
|
"УКВ (FM)", // 193
|
||||||
"СВ (AM)", // 194
|
"СВ (AM)", // 194
|
||||||
"ВРЪЗКА", // 195
|
"ВРЪЗКА", // 195
|
||||||
"Auto sort AF", // 196 ***
|
"DX MODE", // 196
|
||||||
"Stationlist Идентификатор", // 197
|
"Stationlist Идентификатор", // 197
|
||||||
"СВ атенюатор", // 198
|
"СВ атенюатор", // 198
|
||||||
"FM deemphasis", // 199 ***
|
"FM deemphasis", // 199 ***
|
||||||
@@ -2324,7 +2394,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Mute screen on\nXDRGTK connection", // 205
|
"Mute screen on\nXDRGTK connection", // 205
|
||||||
"FMSI stereo\nimprovement", // 206
|
"FMSI stereo\nimprovement", // 206
|
||||||
"Function only available\non TEF6687/6689!", // 207
|
"Function only available\non TEF6687/6689!", // 207
|
||||||
"Function not available\non selected skin!" // 208
|
"Function not available\non selected skin!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Auto sort AF" // 215 ***
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Русский", // Russian
|
{ "Русский", // Russian
|
||||||
@@ -2523,7 +2600,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193
|
"FM", // 193
|
||||||
"AM", // 194
|
"AM", // 194
|
||||||
"КОННЕКТ", // 195
|
"КОННЕКТ", // 195
|
||||||
"Сортировка AF-частот", // 196
|
"DX MODE", // 196
|
||||||
"Stationlist ID", // 197
|
"Stationlist ID", // 197
|
||||||
"AM аттеньюатор", // 198
|
"AM аттеньюатор", // 198
|
||||||
"FM deemphasis", // 199
|
"FM deemphasis", // 199
|
||||||
@@ -2535,7 +2612,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Погасить дисплей при\nподключении XDRGTK", // 205
|
"Погасить дисплей при\nподключении XDRGTK", // 205
|
||||||
"FMSI стерео\nулучшение", // 206
|
"FMSI стерео\nулучшение", // 206
|
||||||
"Функция доступна только\nна TEF6687/6689!", // 207
|
"Функция доступна только\nна TEF6687/6689!", // 207
|
||||||
"Функция недоступна\nна этом оформлении" // 208
|
"Функция недоступна\nна этом оформлении", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Сортировка AF-частот" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Українська", // Ukranian
|
{ "Українська", // Ukranian
|
||||||
@@ -2734,7 +2818,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193 ***
|
"FM", // 193 ***
|
||||||
"AM", // 194 ***
|
"AM", // 194 ***
|
||||||
"ПІДКЛЮЧЕННЯ", // 195
|
"ПІДКЛЮЧЕННЯ", // 195
|
||||||
"Авто сорт. AF", // 196
|
"DX MODE", // 196
|
||||||
"Stationlist ID", // 197 ***
|
"Stationlist ID", // 197 ***
|
||||||
"AM ATT", // 198
|
"AM ATT", // 198
|
||||||
"FM deemphasis", // 199 ***
|
"FM deemphasis", // 199 ***
|
||||||
@@ -2746,7 +2830,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Mute screen on\nXDRGTK connection", // 205
|
"Mute screen on\nXDRGTK connection", // 205
|
||||||
"FMSI stereo\nimprovement", // 206
|
"FMSI stereo\nimprovement", // 206
|
||||||
"Function only available\non TEF6687/6689!", // 207
|
"Function only available\non TEF6687/6689!", // 207
|
||||||
"Function not available\non selected skin!" // 208
|
"Function not available\non selected skin!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Авто сорт. AF" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Italiano", // Italian
|
{ "Italiano", // Italian
|
||||||
@@ -2945,7 +3036,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193 ***
|
"FM", // 193 ***
|
||||||
"AM", // 194 ***
|
"AM", // 194 ***
|
||||||
"CONNETTI", // 195 ***
|
"CONNETTI", // 195 ***
|
||||||
"Autoordinamento AF", // 196 ***
|
"DX MODE", // 196
|
||||||
"ID Stationlist", // 197 ***
|
"ID Stationlist", // 197 ***
|
||||||
"ATT AM", // 198
|
"ATT AM", // 198
|
||||||
"Deenfasi FM", // 199 ***
|
"Deenfasi FM", // 199 ***
|
||||||
@@ -2957,7 +3048,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Mute screen on\nXDRGTK connection", // 205
|
"Mute screen on\nXDRGTK connection", // 205
|
||||||
"FMSI stereo\nimprovement", // 206
|
"FMSI stereo\nimprovement", // 206
|
||||||
"Function only available\non TEF6687/6689!", // 207
|
"Function only available\non TEF6687/6689!", // 207
|
||||||
"Function not available\non selected skin!" // 208
|
"Function not available\non selected skin!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Autoordinamento AF" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Simplified Chinese", // Simplified Chinese
|
{ "Simplified Chinese", // Simplified Chinese
|
||||||
@@ -3156,7 +3254,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM 设置", // 193
|
"FM 设置", // 193
|
||||||
"AM 设置", // 194
|
"AM 设置", // 194
|
||||||
"连机模式", // 195
|
"连机模式", // 195
|
||||||
"自动排列AF", // 196
|
"DX MODE", // 196
|
||||||
"Stationlist ID", // 197 ***
|
"Stationlist ID", // 197 ***
|
||||||
"AM天线衰减", // 198
|
"AM天线衰减", // 198
|
||||||
"FM去加重", // 199
|
"FM去加重", // 199
|
||||||
@@ -3168,7 +3266,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"XDRGTK连接时锁屏", // 205
|
"XDRGTK连接时锁屏", // 205
|
||||||
"FMSI\n立体声增强", // 206
|
"FMSI\n立体声增强", // 206
|
||||||
"此功能仅限\nTEF6687/6689!", // 207
|
"此功能仅限\nTEF6687/6689!", // 207
|
||||||
"此皮肤不支持该功能!" // 208
|
"此皮肤不支持该功能!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"自动排列AF" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Norsk", // Norwegian
|
{ "Norsk", // Norwegian
|
||||||
@@ -3367,7 +3472,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193 ***
|
"FM", // 193 ***
|
||||||
"AM", // 194 ***
|
"AM", // 194 ***
|
||||||
"TILKOBLE", // 195
|
"TILKOBLE", // 195
|
||||||
"Auto sorterings AF", // 196
|
"DX MODE", // 196
|
||||||
"Stationlist ID", // 197 ***
|
"Stationlist ID", // 197 ***
|
||||||
"AM ATT", // 198
|
"AM ATT", // 198
|
||||||
"FM ettertrykkelse", // 199
|
"FM ettertrykkelse", // 199
|
||||||
@@ -3379,7 +3484,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Dempet skjerm på\nXDRGTK tilkobling", // 205
|
"Dempet skjerm på\nXDRGTK tilkobling", // 205
|
||||||
"FMSI stereo forbedringt", // 206
|
"FMSI stereo forbedringt", // 206
|
||||||
"Kun tilgjengelig\npå TEF6687/6689!", // 207
|
"Kun tilgjengelig\npå TEF6687/6689!", // 207
|
||||||
"Funksjon ikke tilgjengelig\npå valgt skin!" // 208
|
"Funksjon ikke tilgjengelig\npå valgt skin!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Auto sorterings AF" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Español", // Spanish
|
{ "Español", // Spanish
|
||||||
@@ -3578,7 +3690,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193
|
"FM", // 193
|
||||||
"AM", // 194
|
"AM", // 194
|
||||||
"CONECTAR", // 195
|
"CONECTAR", // 195
|
||||||
"Orden automático de AF", // 196
|
"DX MODE", // 196
|
||||||
"ID de lista de estaciones", // 197
|
"ID de lista de estaciones", // 197
|
||||||
"Atenuación de AM", // 198
|
"Atenuación de AM", // 198
|
||||||
"Despreocupación\nde FM", // 199
|
"Despreocupación\nde FM", // 199
|
||||||
@@ -3590,7 +3702,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Pantalla de mudo\nen la conexión XDRGTK", // 205
|
"Pantalla de mudo\nen la conexión XDRGTK", // 205
|
||||||
"FMSI mejora del\nsonido estéreo", // 206
|
"FMSI mejora del\nsonido estéreo", // 206
|
||||||
"Función disponible solo\nen TEF6687/6689!", // 207
|
"Función disponible solo\nen TEF6687/6689!", // 207
|
||||||
"Función no disponible\nsobre el skin seleccionado!" // 208
|
"Función no disponible\nsobre el skin seleccionado!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Orden automático de AF" // 215
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Português", // Portuguese
|
{ "Português", // Portuguese
|
||||||
@@ -3789,7 +3908,7 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"FM", // 193
|
"FM", // 193
|
||||||
"AM", // 194
|
"AM", // 194
|
||||||
"CONECTAR", // 195
|
"CONECTAR", // 195
|
||||||
"Classificar AF\nautomaticamente", // 196
|
"DX MODE", // 196
|
||||||
"ID da lista de estações", // 197
|
"ID da lista de estações", // 197
|
||||||
"Atenuação AM", // 198
|
"Atenuação AM", // 198
|
||||||
"Desênfase FM", // 199
|
"Desênfase FM", // 199
|
||||||
@@ -3801,7 +3920,14 @@ static const char* const myLanguage[18][209] PROGMEM = {
|
|||||||
"Tela mudo na\nconexão XDRGTK", // 205
|
"Tela mudo na\nconexão XDRGTK", // 205
|
||||||
"FMSI melhoria\ndo som estéreo", // 206
|
"FMSI melhoria\ndo som estéreo", // 206
|
||||||
"Function only available\non TEF6687/6689!", // 207
|
"Function only available\non TEF6687/6689!", // 207
|
||||||
"Função não disponível\nno skin selecionado!" // 208
|
"Função não disponível\nno skin selecionado!", // 208
|
||||||
|
"Begin scanning\nmemory channels", // 209
|
||||||
|
"Stop scanning\nmemory channels", // 210
|
||||||
|
"Wait time", // 211
|
||||||
|
"Start DX scanning", // 212
|
||||||
|
"FM DX Options", // 213
|
||||||
|
"Abort! The start channel\nis marked as skipped.", // 214
|
||||||
|
"Classificar AF\nautomaticamente" // 215
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
@@ -856,6 +856,7 @@ void showCT() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void showRadioText() {
|
void showRadioText() {
|
||||||
|
// radio.rds.stationText = "Jetzt in Ö1: Öffentlich-rechtlich auf Bewährung";
|
||||||
if (!screenmute) {
|
if (!screenmute) {
|
||||||
if (radio.rds.hasRT && radio.rds.stationText.length() > 0) {
|
if (radio.rds.hasRT && radio.rds.stationText.length() > 0) {
|
||||||
if (String(radio.rds.stationText + radio.rds.stationText32).length() != Radiotextlengthold) {
|
if (String(radio.rds.stationText + radio.rds.stationText32).length() != Radiotextlengthold) {
|
||||||
|
|||||||
Reference in New Issue
Block a user