Merge branch 'main' into New_Model_DP_666

This commit is contained in:
Leon
2024-05-30 23:09:38 +08:00
7 changed files with 449 additions and 355 deletions
+129 -47
View File
@@ -114,7 +114,7 @@ bool screenmute;
bool screensavertriggered = false; bool screensavertriggered = false;
bool seek; bool seek;
bool setupmode; bool setupmode;
byte showrdserrors; bool showclock;
bool usesquelch; bool usesquelch;
bool softmuteam; bool softmuteam;
bool softmutefm; bool softmutefm;
@@ -200,6 +200,7 @@ 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;
byte showrdserrors;
byte showSWMIBand; byte showSWMIBand;
byte submenu; byte submenu;
byte stationlistid; byte stationlistid;
@@ -426,6 +427,8 @@ void setup() {
gpio_set_drive_capability((gpio_num_t) 21, GPIO_DRIVE_CAP_0); gpio_set_drive_capability((gpio_num_t) 21, GPIO_DRIVE_CAP_0);
gpio_set_drive_capability((gpio_num_t) 22, GPIO_DRIVE_CAP_0); gpio_set_drive_capability((gpio_num_t) 22, GPIO_DRIVE_CAP_0);
gpio_set_drive_capability((gpio_num_t) 23, GPIO_DRIVE_CAP_0); gpio_set_drive_capability((gpio_num_t) 23, GPIO_DRIVE_CAP_0);
analogReadResolution(12);
setupmode = true; setupmode = true;
EEPROM.begin(EE_TOTAL_CNT); EEPROM.begin(EE_TOTAL_CNT);
if (EEPROM.readByte(EE_BYTE_CHECKBYTE) != EE_CHECKBYTE_VALUE) DefaultSettings(hardwaremodel); if (EEPROM.readByte(EE_BYTE_CHECKBYTE) != EE_CHECKBYTE_VALUE) DefaultSettings(hardwaremodel);
@@ -525,6 +528,7 @@ void setup() {
scanmute = EEPROM.readByte(EE_BYTE_SCANMUTE); scanmute = EEPROM.readByte(EE_BYTE_SCANMUTE);
autosquelch = EEPROM.readByte(EE_BYTE_AUTOSQUELCH); autosquelch = EEPROM.readByte(EE_BYTE_AUTOSQUELCH);
longbandpress = EEPROM.readByte(EE_BYTE_LONGBANDPRESS); longbandpress = EEPROM.readByte(EE_BYTE_LONGBANDPRESS);
showclock = EEPROM.readByte(EE_BYTE_SHOWCLOCK);
if (spispeed == SPI_SPEED_DEFAULT) { if (spispeed == SPI_SPEED_DEFAULT) {
tft.setSPISpeed(SPI_FREQUENCY / 1000000); tft.setSPISpeed(SPI_FREQUENCY / 1000000);
@@ -825,6 +829,7 @@ void setup() {
Wire.endTransmission(); Wire.endTransmission();
} }
BuildDisplay();
SelectBand(); SelectBand();
if (tunemode == TUNE_MEM) DoMemoryPosTune(); if (tunemode == TUNE_MEM) DoMemoryPosTune();
@@ -1102,28 +1107,44 @@ void loop() {
if (digitalRead(BANDBUTTON) == LOW) { if (digitalRead(BANDBUTTON) == LOW) {
tottimer = millis(); tottimer = millis();
if (screensavertriggered && !touchrotating) WakeToSleep(REVERSE); if (screensavertriggered) {
BANDBUTTONPress(); WakeToSleep(REVERSE);
while (digitalRead(BANDBUTTON) == LOW);
} else {
BANDBUTTONPress();
}
} }
if (digitalRead(ROTARY_BUTTON) == LOW) { if (digitalRead(ROTARY_BUTTON) == LOW) {
tottimer = millis(); tottimer = millis();
if (screensavertriggered && !touchrotating) WakeToSleep(REVERSE); if (screensavertriggered) {
if (!afscreen) ButtonPress(); WakeToSleep(REVERSE);
while (digitalRead(ROTARY_BUTTON) == LOW);
} else {
if (!afscreen) ButtonPress();
}
} }
if (digitalRead(MODEBUTTON) == LOW) { if (digitalRead(MODEBUTTON) == LOW) {
tottimer = millis(); tottimer = millis();
if (screensavertriggered && !touchrotating) WakeToSleep(REVERSE); if (screensavertriggered) {
if (!screenmute) ModeButtonPress(); WakeToSleep(REVERSE);
while (digitalRead(MODEBUTTON) == LOW);
} else {
if (!screenmute) ModeButtonPress();
}
} }
if (digitalRead(BWBUTTON) == HIGH && BWtune) BWtune = false; if (digitalRead(BWBUTTON) == HIGH && BWtune) BWtune = false;
if (digitalRead(BWBUTTON) == LOW && !BWtune) { if (digitalRead(BWBUTTON) == LOW && !BWtune) {
tottimer = millis(); tottimer = millis();
if (screensavertriggered && !touchrotating) WakeToSleep(REVERSE); if (screensavertriggered) {
WakeToSleep(REVERSE);
while (digitalRead(BWBUTTON) == LOW);
} else {
if (!screenmute && !afscreen) BWButtonPress(); if (!screenmute && !afscreen) BWButtonPress();
}
} }
#ifdef DEEPELEC_DP_666 #ifdef DEEPELEC_DP_666
@@ -1647,14 +1668,11 @@ void BANDBUTTONPress() {
while (digitalRead(BANDBUTTON) == LOW && counter - counterold <= 1000) counter = millis(); while (digitalRead(BANDBUTTON) == LOW && counter - counterold <= 1000) counter = millis();
if (counter - counterold < 1000) { if (counter - counterold < 1000) {
if (screensavertriggered) {
WakeToSleep(REVERSE);
return;
}
if (afscreen) { if (afscreen) {
BuildAdvancedRDS(); BuildAdvancedRDS();
} else if (advancedRDS) { } else if (advancedRDS) {
BuildDisplay(); BuildDisplay();
SelectBand();
ScreensaverTimerReopen(); ScreensaverTimerReopen();
} else { } else {
if (tunemode != TUNE_MEM) { if (tunemode != TUNE_MEM) {
@@ -1674,11 +1692,6 @@ void BANDBUTTONPress() {
ScreensaverTimerRestart(); ScreensaverTimerRestart();
} }
} else { } else {
if (screensavertriggered) {
WakeToSleep(REVERSE);
return;
}
if (band < BAND_GAP) { if (band < BAND_GAP) {
if (advancedRDS && !seek) BuildAFScreen(); if (advancedRDS && !seek) BuildAFScreen();
else BuildAdvancedRDS(); else BuildAdvancedRDS();
@@ -1707,6 +1720,14 @@ void BANDBUTTONPress() {
} }
void StoreFrequency() { void StoreFrequency() {
switch (band) {
case BAND_LW: freqold = frequency_LW; frequency_AM = frequency_LW; break;
case BAND_MW: freqold = frequency_MW; frequency_AM = frequency_MW; break;
case BAND_SW: freqold = frequency_SW; frequency_AM = frequency_SW; break;
#ifdef HAS_AIR_BAND
case BAND_AIR: freqold = frequency_AIR; frequency_AM = frequency_AIR; break;
#endif
}
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency); EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_OIRT, frequency_OIRT); EEPROM.writeUInt(EE_UINT16_FREQUENCY_OIRT, frequency_OIRT);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_AM, frequency_AM); EEPROM.writeUInt(EE_UINT16_FREQUENCY_AM, frequency_AM);
@@ -2088,6 +2109,8 @@ void ToggleSWMIBand(bool frequencyup) {
} }
void SelectBand() { void SelectBand() {
if (afscreen || advancedRDS) BuildDisplay();
if (band > BAND_GAP) { if (band > BAND_GAP) {
seek = false; seek = false;
if (!screenmute) tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor); if (!screenmute) tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
@@ -2117,7 +2140,6 @@ void SelectBand() {
radio.setAMCoChannel(amcodect, amcodectcount); radio.setAMCoChannel(amcodect, amcodectcount);
doBW(); doBW();
if (!screenmute) { if (!screenmute) {
BuildDisplay();
if (region == REGION_EU) tftPrint(-1, "PI:", 212, 193, GreyoutColor, BackgroundColor, 16); if (region == REGION_EU) tftPrint(-1, "PI:", 212, 193, GreyoutColor, BackgroundColor, 16);
if (region == REGION_US) { if (region == REGION_US) {
tftPrint(-1, "PI:", 212, 184, GreyoutColor, BackgroundColor, 16); tftPrint(-1, "PI:", 212, 184, GreyoutColor, BackgroundColor, 16);
@@ -2132,6 +2154,7 @@ void SelectBand() {
tftPrint(0, "iMS", 265, 59, GreyoutColor, BackgroundColor, 16); tftPrint(0, "iMS", 265, 59, GreyoutColor, BackgroundColor, 16);
tft.drawRoundRect(286, 56, 32, 20, 5, GreyoutColor); tft.drawRoundRect(286, 56, 32, 20, 5, GreyoutColor);
tftPrint(0, "EQ", 301, 59, GreyoutColor, BackgroundColor, 16); tftPrint(0, "EQ", 301, 59, GreyoutColor, BackgroundColor, 16);
tftReplace(-1, "MHz", "kHz", 258, 76, ActiveColor, ActiveColorSmooth, BackgroundColor, 28);
// todo // todo
// if (band == AM_BAND_AIR) tftPrint(-1, "MHz", 258, 76, ActiveColor, ActiveColorSmooth, 28); // if (band == AM_BAND_AIR) tftPrint(-1, "MHz", 258, 76, ActiveColor, ActiveColorSmooth, 28);
// else tftPrint(-1, "KHz", 258, 76, ActiveColor, ActiveColorSmooth, 28); // else tftPrint(-1, "KHz", 258, 76, ActiveColor, ActiveColorSmooth, 28);
@@ -2151,9 +2174,54 @@ void SelectBand() {
freqold = frequency_AM; freqold = frequency_AM;
if (!externaltune && tunemode != TUNE_MEM) CheckBandForbiddenFM(); if (!externaltune && tunemode != TUNE_MEM) CheckBandForbiddenFM();
doBW(); doBW();
if (!screenmute) BuildDisplay(); if (region == REGION_EU) tftPrint(-1, "PI:", 212, 193, ActiveColor, ActiveColorSmooth, 16);
if (region == REGION_US) {
tftPrint(-1, "PI:", 212, 184, ActiveColor, ActiveColorSmooth, 16);
tftPrint(-1, "ID:", 212, 201, ActiveColor, ActiveColorSmooth, 16);
}
tftPrint(-1, "PS:", 3, 193, ActiveColor, ActiveColorSmooth, 16);
tftPrint(-1, "RT:", 3, 221, ActiveColor, ActiveColorSmooth, 16);
tftPrint(-1, "PTY:", 3, 163, ActiveColor, ActiveColorSmooth, 16);
tftReplace(-1, "kHz", "MHz", 258, 76, ActiveColor, ActiveColorSmooth, BackgroundColor, 28);
} }
radio.clearRDS(fullsearchrds); radio.clearRDS(fullsearchrds);
ShowFreq(0);
if (!screenmute) {
tft.fillRect(113, 38, 124, 4, BackgroundColor);
ShowErrors();
showPTY();
showRadioText();
showPI();
updateiMS();
updateEQ();
ShowTuneMode();
ShowStepSize();
tftPrint(-1, myLanguage[language][102], 70, 32, BackgroundColor, BackgroundColor, 16);
tftPrint(-1, myLanguage[language][103], 70, 32, BackgroundColor, BackgroundColor, 16);
tftPrint(-1, myLanguage[language][104], 70, 32, BackgroundColor, BackgroundColor, 16);
tftPrint(-1, myLanguage[language][105], 70, 32, BackgroundColor, BackgroundColor, 16);
tftPrint(-1, myLanguage[language][106], 70, 32, BackgroundColor, BackgroundColor, 16);
#ifdef HAS_AIR_BAND
tftPrint(-1, myLanguage[language][223], 70, 32, BackgroundColor, BackgroundColor, 16);
#endif
switch (band) {
case BAND_LW: tftPrint(-1, myLanguage[language][102], 70, 32, (bandforbidden ? GreyoutColor : PrimaryColor), (bandforbidden ? BackgroundColor : PrimaryColorSmooth), 16); break;
case BAND_MW: tftPrint(-1, myLanguage[language][103], 70, 32, (bandforbidden ? GreyoutColor : PrimaryColor), (bandforbidden ? BackgroundColor : PrimaryColorSmooth), 16); break;
case BAND_SW: tftPrint(-1, myLanguage[language][104], 70, 32, (bandforbidden ? GreyoutColor : PrimaryColor), (bandforbidden ? BackgroundColor : PrimaryColorSmooth), 16); break;
case BAND_FM: tftPrint(-1, myLanguage[language][105], 70, 32, (bandforbidden ? GreyoutColor : PrimaryColor), (bandforbidden ? BackgroundColor : PrimaryColorSmooth), 16); break;
case BAND_OIRT: tftPrint(-1, myLanguage[language][106], 70, 32, (bandforbidden ? GreyoutColor : PrimaryColor), (bandforbidden ? BackgroundColor : PrimaryColorSmooth), 16); break;
#ifdef HAS_AIR_BAND
case BAND_AIR: tftPrint(-1, myLanguage[language][223], 70, 32, (bandforbidden ? GreyoutColor : PrimaryColor), (bandforbidden ? BackgroundColor : PrimaryColorSmooth), 16); break;
#endif
}
}
} }
void BWButtonPress() { void BWButtonPress() {
@@ -2181,10 +2249,6 @@ void BWButtonPress() {
doBW(); doBW();
BWtune = true; BWtune = true;
} }
if (screensaverset) {
WakeToSleep(REVERSE);
return;
}
delay(100); delay(100);
} }
} }
@@ -2226,6 +2290,7 @@ void ModeButtonPress() {
if (!usesquelch) radio.setUnMute(); if (!usesquelch) radio.setUnMute();
if (advancedRDS) { if (advancedRDS) {
BuildDisplay(); BuildDisplay();
SelectBand();
ScreensaverTimerReopen(); ScreensaverTimerReopen();
} else if (afscreen) { } else if (afscreen) {
if (afpagenr == 1) afpagenr = 2; else if (afpagenr == 2 && afpage) afpagenr = 3; else afpagenr = 1; if (afpagenr == 1) afpagenr = 2; else if (afpagenr == 2 && afpage) afpagenr = 3; else afpagenr = 1;
@@ -2243,10 +2308,6 @@ void ModeButtonPress() {
if (counter - counterold <= 1000) { if (counter - counterold <= 1000) {
doTuneMode(); doTuneMode();
if (screensaverset) {
WakeToSleep(REVERSE);
return;
}
} else { } else {
if (!menu) { if (!menu) {
menuoption = ITEM1; menuoption = ITEM1;
@@ -2384,26 +2445,26 @@ void RoundStep() {//todo air
Round30K(frequency_OIRT); Round30K(frequency_OIRT);
radio.SetFreq(frequency_OIRT); radio.SetFreq(frequency_OIRT);
} else { } else {
if (band == BAND_MW) { if (band == BAND_LW) {
unsigned int freq = frequency_AM / (mwstepsize == false ? FREQ_MW_STEP_9K : FREQ_MW_STEP_10K); unsigned int freq = frequency_AM / (mwstepsize == false ? FREQ_MW_STEP_9K : FREQ_MW_STEP_10K);
frequency_AM = freq * (mwstepsize == false ? FREQ_MW_STEP_9K : FREQ_MW_STEP_10K); frequency_AM = freq * (mwstepsize == false ? FREQ_MW_STEP_9K : FREQ_MW_STEP_10K);
frequency_LW = frequency_AM;
radio.SetFreqAM(frequency_AM);
} else if (band == BAND_MW) {
unsigned int freq = frequency_AM / (mwstepsize == false ? FREQ_MW_STEP_9K : FREQ_MW_STEP_10K);
frequency_AM = freq * (mwstepsize == false ? FREQ_MW_STEP_9K : FREQ_MW_STEP_10K);
frequency_MW = frequency_AM;
radio.SetFreqAM(frequency_AM); radio.SetFreqAM(frequency_AM);
} else if (band == BAND_SW) { } else if (band == BAND_SW) {
Round5K(frequency_AM); Round5K(frequency_AM);
frequency_SW = frequency_AM;
radio.SetFreqAM(frequency_AM); radio.SetFreqAM(frequency_AM);
} }
} }
while (digitalRead(ROTARY_BUTTON) == LOW) delay(50); StoreFrequency();
if (band == BAND_FM) { while (digitalRead(ROTARY_BUTTON) == LOW) delay(50);
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency);
} else if (band == BAND_OIRT) {
EEPROM.writeUInt(EE_UINT16_FREQUENCY_OIRT, frequency_OIRT);
} else {
EEPROM.writeUInt(EE_UINT16_FREQUENCY_AM, frequency_AM);
}
EEPROM.commit();
} }
void ButtonPress() { void ButtonPress() {
@@ -2411,7 +2472,10 @@ void ButtonPress() {
cancelDXScan(); cancelDXScan();
} else { } else {
if (!usesquelch) radio.setUnMute(); if (!usesquelch) radio.setUnMute();
if (advancedRDS) BuildDisplay(); if (advancedRDS) {
BuildDisplay();
SelectBand();
}
if (!menu) { if (!menu) {
if (tunemode == TUNE_MEM) { if (tunemode == TUNE_MEM) {
if (!memorystore) { if (!memorystore) {
@@ -3698,14 +3762,22 @@ void ShowRSSI() {
} }
void ShowBattery() { void ShowBattery() {
static uint32_t batupdatetimer = 0;
if (millis() >= batupdatetimer + TIMER_BAT_TIMER) { if (millis() >= batupdatetimer + TIMER_BAT_TIMER) {
batupdatetimer = millis(); batupdatetimer = millis();
} else { } else {
return; return;
} }
uint16_t v = 0; uint32_t adcSum = 0;
if (!wifi) v = analogRead(BATTERY_PIN); for (int i = 0; i < 16; i++) {
adcSum += analogRead(BATTERY_PIN);
delay(1);
}
int v = adcSum / 16;
battery = map(constrain(v, BAT_LEVEL_EMPTY, BAT_LEVEL_FULL), BAT_LEVEL_EMPTY, BAT_LEVEL_FULL, 0, BAT_LEVEL_STAGE); battery = map(constrain(v, BAT_LEVEL_EMPTY, BAT_LEVEL_FULL), BAT_LEVEL_EMPTY, BAT_LEVEL_FULL, 0, BAT_LEVEL_STAGE);
byte batteryprobe = map(constrain(v, BAT_LEVEL_EMPTY, BAT_LEVEL_FULL), BAT_LEVEL_EMPTY, BAT_LEVEL_FULL, 0, 20); byte batteryprobe = map(constrain(v, BAT_LEVEL_EMPTY, BAT_LEVEL_FULL), BAT_LEVEL_EMPTY, BAT_LEVEL_FULL, 0, 20);
@@ -3719,7 +3791,7 @@ void ShowBattery() {
tft.fillRoundRect(313, 13, 4, 6, 2, ActiveColor); tft.fillRoundRect(313, 13, 4, 6, 2, ActiveColor);
} }
if (batteryoptions != BATTERY_VALUE && batteryoptions != BATTERY_PERCENT && battery != 0) { if (batteryoptions != BATTERY_VALUE && batteryoptions != BATTERY_PERCENT && battery != 0) {
tft.fillRoundRect(279, 8, (battery * 8) , 16, 2, BarInsignificantColor); tft.fillRoundRect(279, 8, (battery * 8), 16, 2, BarInsignificantColor);
} else { } else {
tft.fillRoundRect(279, 8, 33, 16, 2, BackgroundColor); tft.fillRoundRect(279, 8, 33, 16, 2, BackgroundColor);
} }
@@ -3732,9 +3804,8 @@ void ShowBattery() {
batteryVold = 0; batteryVold = 0;
vPerold = 0; vPerold = 0;
if (!wifi && batterydetect) { if (!wifi && batterydetect) {
float batteryV = constrain((((float)v / 4095.0) * 3.3 * (1100 / 1000.0) * 2.0), 0.0, 5.0); float batteryV = constrain(v / 4095.0 * 3.3 * 2.0, 0.0, 5.0);
float vPer = constrain((batteryV - BATTERY_LOW_VALUE) / (BATTERY_FULL_VALUE - BATTERY_LOW_VALUE), 0.0, 0.99) * 100; float vPer = constrain((batteryV - BATTERY_LOW_VALUE) / (BATTERY_FULL_VALUE - BATTERY_LOW_VALUE), 0.0, 0.99) * 100;
if (abs(batteryV - batteryVold) > 0.05 && batteryoptions == BATTERY_VALUE) { if (abs(batteryV - batteryVold) > 0.05 && batteryoptions == BATTERY_VALUE) {
@@ -3770,7 +3841,7 @@ void TuneUp() {
} else if (frequency_AM < MWLowEdgeSet) { } else if (frequency_AM < MWLowEdgeSet) {
temp = FREQ_MW_STEP_9K; temp = FREQ_MW_STEP_9K;
frequency_AM = (frequency_AM / FREQ_MW_STEP_9K) * FREQ_MW_STEP_9K; frequency_AM = (frequency_AM / FREQ_MW_STEP_9K) * FREQ_MW_STEP_9K;
} else if (frequency_AM < SWHighEdgeSet && frequency_AM > SWLowEdgeSet) { } else if (frequency_AM <= SWHighEdgeSet && frequency_AM >= SWLowEdgeSet) {
temp = FREQ_SW_STEP_5K; temp = FREQ_SW_STEP_5K;
frequency_AM = (frequency_AM / FREQ_SW_STEP_5K) * FREQ_SW_STEP_5K; frequency_AM = (frequency_AM / FREQ_SW_STEP_5K) * FREQ_SW_STEP_5K;
} }
@@ -3843,6 +3914,7 @@ void TuneUp() {
frequency_MW = frequency_AM; frequency_MW = frequency_AM;
} else if (band == BAND_SW) { } else if (band == BAND_SW) {
frequency_AM += temp; frequency_AM += temp;
Serial.println(String(frequency_AM) + "\t" + String(SWHighEdgeSet) + "\t" + String(temp));
if (frequency_AM > SWHighEdgeSet) { if (frequency_AM > SWHighEdgeSet) {
frequency_AM = SWLowEdgeSet; frequency_AM = SWLowEdgeSet;
if (edgebeep) EdgeBeeper(); if (edgebeep) EdgeBeeper();
@@ -4067,11 +4139,17 @@ void MuteScreen(bool setting) {
tft.writecommand(0x11); tft.writecommand(0x11);
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
if (band < BAND_GAP) { if (band < BAND_GAP) {
if (afscreen) BuildAFScreen(); if (afscreen) {
else if (advancedRDS) BuildAdvancedRDS(); BuildAFScreen();
else BuildDisplay(); } else if (advancedRDS) {
BuildAdvancedRDS();
} else {
BuildDisplay();
SelectBand();
}
} else { } else {
BuildDisplay(); BuildDisplay();
SelectBand();
} }
setupmode = false; setupmode = false;
} else if (setting && !screenmute) { } else if (setting && !screenmute) {
@@ -4183,6 +4261,7 @@ void DefaultSettings(byte userhardwaremodel) {
EEPROM.writeByte(EE_BYTE_SCANMUTE, 0); EEPROM.writeByte(EE_BYTE_SCANMUTE, 0);
EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, 0); EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, 0);
EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, 0); EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, 0);
EEPROM.writeByte(EE_BYTE_SHOWCLOCK, 1);
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);
@@ -4410,6 +4489,7 @@ void endMenu() {
EEPROM.writeByte(EE_BYTE_SCANMUTE, scanmute); EEPROM.writeByte(EE_BYTE_SCANMUTE, scanmute);
EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, autosquelch); EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, autosquelch);
EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, longbandpress); EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, longbandpress);
EEPROM.writeByte(EE_BYTE_SHOWCLOCK, showclock);
EEPROM.commit(); EEPROM.commit();
if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false; if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false;
Serial.end(); Serial.end();
@@ -4417,6 +4497,8 @@ void endMenu() {
if (USBmode) Serial.begin(19200); else Serial.begin(115200); if (USBmode) Serial.begin(19200); else Serial.begin(115200);
BuildDisplay(); BuildDisplay();
SelectBand();
ScreensaverTimerRestart();
} }
void startFMDXScan() { void startFMDXScan() {
+5 -4
View File
@@ -209,9 +209,9 @@
#define EE_CHECKBYTE_VALUE 10 // 0 ~ 255,add new entry, change for new value #define EE_CHECKBYTE_VALUE 10 // 0 ~ 255,add new entry, change for new value
#define EE_PRESETS_FREQUENCY 0 // Default value when memory channel should be skipped! #define EE_PRESETS_FREQUENCY 0 // Default value when memory channel should be skipped!
#ifdef HAS_AIR_BAND #ifdef HAS_AIR_BAND
#define EE_TOTAL_CNT 2221 // Total occupied eeprom bytes #define EE_TOTAL_CNT 2222 // Total occupied eeprom bytes
#else #else
#define EE_TOTAL_CNT 2216 // Total occupied eeprom bytes #define EE_TOTAL_CNT 2217 // Total occupied eeprom bytes
#endif #endif
#define EE_PRESETS_BAND_START 0 // 99 * 1 byte #define EE_PRESETS_BAND_START 0 // 99 * 1 byte
@@ -312,9 +312,10 @@
#define EE_BYTE_SCANMUTE 2213 #define EE_BYTE_SCANMUTE 2213
#define EE_BYTE_AUTOSQUELCH 2214 #define EE_BYTE_AUTOSQUELCH 2214
#define EE_BYTE_LONGBANDPRESS 2215 #define EE_BYTE_LONGBANDPRESS 2215
#define EE_BYTE_SHOWCLOCK 2216
#ifdef HAS_AIR_BAND #ifdef HAS_AIR_BAND
#define EE_BYTE_AIRSTEPSIZE 2116 #define EE_BYTE_AIRSTEPSIZE 2117
#define EE_UINT16_FREQUENCY_AIR 2217 #define EE_UINT16_FREQUENCY_AIR 2218
#endif #endif
// End of EEPROM index defines // End of EEPROM index defines
+33 -41
View File
@@ -8,7 +8,7 @@
#include <cstring> #include <cstring>
byte menuitem; byte menuitem;
byte items[9] = {9, static_cast<byte>(dynamicspi ? 10 : 9), 7, 10, 9, 10, 9, 6, 7}; byte items[9] = {9, static_cast<byte>(dynamicspi ? 10 : 9), 7, 10, 10, 10, 9, 6, 7};
extern mem presets[]; extern mem presets[];
void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de/online/rgb565-color-picker/ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de/online/rgb565-color-picker/
@@ -1394,6 +1394,16 @@ void ShowOneLine(byte position, byte item, bool selected) {
FullLineSprite.drawString(FreqFont[freqfont], 298, 3); FullLineSprite.drawString(FreqFont[freqfont], 298, 3);
break; break;
case RDSSETTINGS:
FullLineSprite.setTextDatum(TL_DATUM);
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
FullLineSprite.drawString(removeNewline(myLanguage[language][262]), 6, 3);
FullLineSprite.setTextDatum(TR_DATUM);
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
FullLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 298, 3);
break;
case FMSETTINGS: case FMSETTINGS:
FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextDatum(TL_DATUM);
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
@@ -1572,7 +1582,6 @@ void BuildAdvancedRDS() {
void BuildDisplay() { void BuildDisplay() {
afscreen = false; afscreen = false;
advancedRDS = false; advancedRDS = false;
int bandColor;
tft.fillScreen(BackgroundColor); tft.fillScreen(BackgroundColor);
tft.drawRect(0, 0, 320, 240, FrameColor); tft.drawRect(0, 0, 320, 240, FrameColor);
@@ -1606,14 +1615,6 @@ void BuildDisplay() {
if (usesquelch || autosquelch) tftPrint(-1, "SQ:", 212, 145, ActiveColor, ActiveColorSmooth, 16); if (usesquelch || autosquelch) tftPrint(-1, "SQ:", 212, 145, ActiveColor, ActiveColorSmooth, 16);
tftPrint(1, "C/N", 270, 163, ActiveColor, ActiveColorSmooth, 16); tftPrint(1, "C/N", 270, 163, ActiveColor, ActiveColorSmooth, 16);
tftPrint(-1, "dB", 300, 163, ActiveColor, ActiveColorSmooth, 16); tftPrint(-1, "dB", 300, 163, ActiveColor, ActiveColorSmooth, 16);
if (region == REGION_EU) tftPrint(-1, "PI:", 212, 193, ActiveColor, ActiveColorSmooth, 16);
if (region == REGION_US) {
tftPrint(-1, "PI:", 212, 184, ActiveColor, ActiveColorSmooth, 16);
tftPrint(-1, "ID:", 212, 201, ActiveColor, ActiveColorSmooth, 16);
}
tftPrint(-1, "PS:", 3, 193, ActiveColor, ActiveColorSmooth, 16);
tftPrint(-1, "RT:", 3, 221, ActiveColor, ActiveColorSmooth, 16);
tftPrint(-1, "PTY:", 3, 163, ActiveColor, ActiveColorSmooth, 16);
tftPrint(0, "S", 7, 101, ActiveColor, ActiveColorSmooth, 16); tftPrint(0, "S", 7, 101, ActiveColor, ActiveColorSmooth, 16);
tftPrint(-1, "1", 24, 115, ActiveColor, ActiveColorSmooth, 16); tftPrint(-1, "1", 24, 115, ActiveColor, ActiveColorSmooth, 16);
@@ -1643,11 +1644,6 @@ void BuildDisplay() {
tftPrint(-1, "kHz", 203, 4, ActiveColor, ActiveColorSmooth, 28); tftPrint(-1, "kHz", 203, 4, ActiveColor, ActiveColorSmooth, 28);
tftPrint(-1, unitString[unit], 282, 145, ActiveColor, ActiveColorSmooth, 16); tftPrint(-1, unitString[unit], 282, 145, ActiveColor, ActiveColorSmooth, 16);
tft.drawRoundRect(248, 56, 32, 20, 5, GreyoutColor);
if (band > BAND_GAP) tftPrint(0, "iMS", 265, 59, GreyoutColor, BackgroundColor, 16);
tft.drawRoundRect(286, 56, 32, 20, 5, GreyoutColor);
if (band > BAND_GAP) tftPrint(0, "EQ", 301, 59, GreyoutColor, BackgroundColor, 16);
tft.drawBitmap(122, 5, RDSLogo, 35, 22, GreyoutColor); tft.drawBitmap(122, 5, RDSLogo, 35, 22, GreyoutColor);
tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor); tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
@@ -1661,37 +1657,12 @@ void BuildDisplay() {
tft.drawCircle(76, 15, 9, GreyoutColor); tft.drawCircle(76, 15, 9, GreyoutColor);
} }
if (bandforbidden) bandColor = GreyoutColor; else bandColor = PrimaryColor;
switch (band) {
case BAND_LW: tftPrint(-1, myLanguage[language][102], 70, 32, bandColor, PrimaryColorSmooth, 16); break;
case BAND_MW: tftPrint(-1, myLanguage[language][103], 70, 32, bandColor, PrimaryColorSmooth, 16); break;
case BAND_SW: tftPrint(-1, myLanguage[language][104], 70, 32, bandColor, PrimaryColorSmooth, 16); break;
#ifdef HAS_AIR_BAND
case BAND_AIR: tftPrint(-1, myLanguage[language][223], 70, 32, bandColor, PrimaryColorSmooth, 16); break;
#endif
case BAND_FM: tftPrint(-1, myLanguage[language][105], 70, 32, bandColor, PrimaryColorSmooth, 16); break;
case BAND_OIRT: tftPrint(-1, myLanguage[language][106], 70, 32, bandColor, PrimaryColorSmooth, 16); break;
}
if (band < BAND_GAP) tftPrint(-1, "MHz", 258, 76, ActiveColor, ActiveColorSmooth, 28);
else {
#ifdef HAS_AIR_BAND
if (band == AM_BAND_AIR)
tftPrint(-1, "MHz", 258, 76, ActiveColor, ActiveColorSmooth, 28);
else tftPrint(-1, "KHz", 258, 76, ActiveColor, ActiveColorSmooth, 28);
#else
tftPrint(-1, "KHz", 258, 76, ActiveColor, ActiveColorSmooth, 28);
#endif
}
if (autosquelch) showAutoSquelch(1); if (autosquelch) showAutoSquelch(1);
RDSstatusold = false; RDSstatusold = false;
Stereostatusold = false; Stereostatusold = false;
LowLevelInit = true; LowLevelInit = true;
ShowFreq(0);
ShowTuneMode();
updateBW(); updateBW();
ShowStepSize();
ShowMemoryPos(); ShowMemoryPos();
updateiMS(); updateiMS();
updateEQ(); updateEQ();
@@ -2228,6 +2199,13 @@ void MenuUp() {
OneBigLineSprite.pushSprite(24, 118); OneBigLineSprite.pushSprite(24, 118);
break; break;
case ITEM10:
showclock = !showclock;
OneBigLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
OneBigLineSprite.pushSprite(24, 118);
break;
} }
break; break;
@@ -3083,6 +3061,13 @@ void MenuDown() {
OneBigLineSprite.pushSprite(24, 118); OneBigLineSprite.pushSprite(24, 118);
break; break;
case ITEM10:
showclock = !showclock;
OneBigLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
OneBigLineSprite.pushSprite(24, 118);
break;
} }
break; break;
@@ -3946,6 +3931,13 @@ void DoMenu() {
OneBigLineSprite.pushSprite(24, 118); OneBigLineSprite.pushSprite(24, 118);
break; break;
case ITEM10:
Infoboxprint(myLanguage[language][262]);
OneBigLineSprite.drawString((showclock ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
OneBigLineSprite.pushSprite(24, 118);
break;
} }
break; break;
@@ -4349,4 +4341,4 @@ String removeNewline(String inputString) {
} }
} }
return outputString; return outputString;
} }
+1
View File
@@ -59,6 +59,7 @@ extern bool usesquelch;
extern bool scandxmode; extern bool scandxmode;
extern bool scanmem; extern bool scanmem;
extern bool scanmute; extern bool scanmute;
extern bool showclock;
extern bool softmuteam; extern bool softmuteam;
extern bool softmutefm; extern bool softmutefm;
extern bool Stereostatusold; extern bool Stereostatusold;
+278 -261
View File
@@ -1,11 +1,11 @@
#ifndef LANGUAGE_H #ifndef LANGUAGE_H
#define LANGUAGE_H #define LANGUAGE_H
#define VERSION "v2.10 RC9" #define VERSION "v2.10 RC10"
// [number of languages][number of texts] // [number of languages][number of texts]
static const char* const myLanguage[18][262] PROGMEM = { static const char* const myLanguage[18][263] PROGMEM = {
{ "English", // English { "English", // English
"Rotary direction changed", // 1 "Rotary direction changed", // 1
"Please release button", // 2 "Please release button", // 2
@@ -267,7 +267,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Alarm Test", // 258 "Alarm Test", // 258
"Alarm!!!", // 259 "Alarm!!!", // 259
"Initial", // 260 "Initial", // 260
"Always" //261 "Always", // 261
"Show clock" // 262
}, },
{ "Nederlands", // Dutch { "Nederlands", // Dutch
@@ -531,7 +532,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Alarmtest", // 258 "Alarmtest", // 258
"Alarm ! ALARM !", // 259 "Alarm ! ALARM !", // 259
"Initieel", // 260 "Initieel", // 260
"Altijd" //261 "Altijd", //261
"Toon klok" // 262
}, },
{ "Polski", // Polish { "Polski", // Polish
@@ -795,7 +797,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Alarm Test", // 258 "Alarm Test", // 258
"Alarm", // 259 "Alarm", // 259
"Początkowy", // 260 "Początkowy", // 260
"Zawsze" // 261 "Zawsze", // 261
"Pokaż zegar" // 262
}, },
{ "Hrvatski", // Croatian { "Hrvatski", // Croatian
@@ -1059,7 +1062,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Testni alarm!", // 258 "Testni alarm!", // 258
"Alarm !", // 259 "Alarm !", // 259
"Početno", // 260 "Početno", // 260
"Uvijek" //261 "Uvijek", //261
"Prikaži sat" // 262
}, },
{ "Ελληνικά", // Greek { "Ελληνικά", // Greek
@@ -1323,7 +1327,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Δοκιμή συναγερμού", // 258 "Δοκιμή συναγερμού", // 258
"Συναγερμός!!!", // 259 "Συναγερμός!!!", // 259
"Αρχικό", // 260 "Αρχικό", // 260
"Πάντα" //261 "Πάντα", //261
"Εμφάνιση ρολογιού" // 262
}, },
{ "Română", // Romanian { "Română", // Romanian
@@ -1587,7 +1592,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Test Alarmă", // 258 "Test Alarmă", // 258
"Alarmă !", // 259 "Alarmă !", // 259
"Inițial", // 260 "Inițial", // 260
"Mereu" //261 "Mereu", //261
"Arată ceasul" // 262
}, },
{ "Deutsch", // German { "Deutsch", // German
@@ -1851,7 +1857,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Alarm Test", // 258 "Alarm Test", // 258
"Alarm! Alarm!", // 259 "Alarm! Alarm!", // 259
"Anfänglich", // 260 "Anfänglich", // 260
"Immer" // 261 "Immer", // 261
"Uhr anzeigen" // 262
}, },
{ "Český", // Czech { "Český", // Czech
@@ -2115,271 +2122,272 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Alarm Test", // 258 "Alarm Test", // 258
"Alarm Alarm !", // 259 "Alarm Alarm !", // 259
"Počáteční", // 260 "Počáteční", // 260
"Vždy" //261 "Vždy", //261
"Zobrazit hodiny" // 262
}, },
{ "SloveSlovenský", // Slovak { "Magyar", // Hungarian
"Smer enkóderu bol zmenený", // 1 "Forgási irány megváltozott", // 1
"Prosím, pusťte tlačidlo", // 2 "Engedd el a gombot", // 2
"Obrazovka otočená", // 3 "Képernyő megfordítva", // 3
"Kalibrácia analog. merača", // 4 "Analóg mérő kalibrálása", // 4
"Po dokončení pusťte tlačidlo", // 5 "Engedd el a gombot, ha kész", // 5
"enkóder nastavený na optický", // 6 "Kódoló optikaira állítva", // 6
"enkóder nastavený na štandardný", // 7 "Kódoló szabványosra állítva", // 7
"FM/AM prijímač", // 8 "FM/AM vevőkészülék", // 8
"Tuner: !ŽIADNY!", // 9 "Tuner: !Nincs!", // 9
"Hlasitosť:", // 10 "Hangerő", // 10
"Konvertor:", // 11 "Átalakító", // 11
"Spodok pásma:", // 12 "Legkisebb sávszél", // 12
"Vrch pásma:", // 13 "Legnagyobb sávszél", // 13
"FM Offset frekvencie:", // 14 "FM RF szinteltolás", // 14
"Prah pre stereo:", // 15 "Sztereó küszöbérték", // 15
"Prah utlmenia:", // 16 "Magasak sarokja", // 16
"Prah zvuku:", // 17 "Magasak küszöbértéke", // 17
"Prah nizkeho signálu:", // 18 "Alacsonyak küszöbértéke", // 18
"Kontrast:", // 19 "Kontraszt", // 19
"Hlasitost", // 20 "Hangerő", // 20
"Offset frekvencie", // 21 "Átalakító eltolása", // 21
"Spodok pásma", // 22 "Legkisebb sávszél", // 22
"Vrch pásma", // 23 "Legnagyobb sávszél", // 23
"Offset signálu", // 24 "Szinteltolás", // 24
"Prah pro stereo", // 25 "Sztereó szétválasztás küszöbértéke", // 25
"Prah utlmenia", // 26 "Magasak sarokfrekvenciája", // 26
"Prah signálu pre utlmenie", // 27 "Magasak küszöbértéke", // 27
"Prah nízkého signálu", // 28 "Alacsony szint küszöbérték", // 28
"Jas", // 29 "Kijelző fényereje", // 29
"Vyp", // 30 "Ki", // 30
"Obrazovka je stlmená!", // 31 "Kijelző némítva!", // 31
"Pre spustenie odčiarknite RF+", // 32 "A némítás feloldásához\n jelöld ki az\nRF+ pipát", // 32
"VYP", // 33 "KI", // 33
"SKENUJEM...", // 34 "KERESÉS...", // 34
"Tuner nedetekovaný", // 35 "Tuner nem észlelhető", // 35
"AM Antenna gain", // 36 "AM Antenna érzékenység", // 36
"FM AGC", // 37 "FM AGC", // 37
"Zobraziť chyby v RDS", // 38 "RDS hibák megjelenítése", // 38
"Jazyk", // 39 "Nyelv", // 39
"Vyberte jazyk", // 40 "Válassz nyelvet", // 40
"STLAČTE MODE PRE ULOŽENIE", // 41 "MODE A MENTÉSHEZ\nÉS BEZÁRÁSHOZ", // 41
"Zap", // 42 "Be", // 42
"Softmute FM", // 43 "FM halkítás", // 43
"Softmute AM", // 44 "AM halkítás", // 44
"Pípnutie na konci pásma", // 45 "Sípszó a sáv szélén", // 45
"Region", // 46 "Régió", // 46
"Európa", // 47 "Európa", // 47
"America", // 48 "Amerika", // 48
"Zobraziť podtržítka v RDS", // 49 "Aláhúzások megjelenítése\nRDS-ben", // 49
"USB mód", // 50 "USB mód", // 50
"Wi-Fi active", // 51 "Wi-Fi", // 51
"Konfigurace Wi-Fi", // 52 "Wi-Fi beállítása", // 52
"Pripojte sa k: ", // 53 "Csatlakozz ehhez: ", // 53
"pre nakonfigurovánie Wi-Fi", // 54 "a Wi-Fi beállításához", // 54
"Wi-Fi pripojenie prebieha...", // 55 "Wi-Fi kapcsolódási\nkísérlet", // 55
"NEPRIPOJENÉ!", // 56 "SIKERTELEN!", // 56
"PRIPOJENÉ!", // 57 "CSATLAKOZVA!", // 57
"Stationlist IP", // 58 "Stationlist kliens IP", // 58
"Zobraziť SW pásmo", // 59 "SW hullámhossz\nmegjelenítése", // 59
"RDS filter", // 60 "RDS szűrő", // 60
"Zobraziť chyby v PI", // 61 "PI hibák megjelenítése", // 61
"Zobraziť squelch", // 62 NEEDS NEW TRANSLATION, ENGLISH: USE SQUELCH "Zajzár(SQ) használata", // 62
"Graf modulácie", // 63 "Modulációmérő", // 63
"Utlmenie šumu (AM)", // 64 "AM Zajszűrő", // 64
"Utlmenie šumu (FM)", // 65 "FM Zajszűrő", // 65
"Východzie hodnoty načítané", // 66 "Alapértelmezettek betöltve", // 66
"Zvukový výstup", // 67 "Audió kimenet", // 67
"Povolit ladenie počas šetriča", // 68 "Hangolás\nengedélyezése\nképernyővédő közben", // 68
"Invertovanie farieb", // 69 "Inverz kijelző", // 69
"O softvéri", // 70 "A szoftverről", // 70
"Hlavný kód:", // 71 " kód:", // 71
"Prispeli:", // 72 "Közreműködők:", // 72
"Neznámy", // 73 "Ismeretlen", // 73
"Nastavenia šetriča obrazovky", // 74 "Képernyővédő opciók", // 74
"Čas", // 75 "Időtúllépés időzítő", // 75
"Vypnutie obrazovky", // 76 "Kijelző ki", // 76
"Vzhľad", // 77 "Téma", // 77
"Skin", // 78 "Kinézet", // 78
"Detegované aplikácie", // 79 "Felismert alkalmazások", // 79
"Min.", // 80 "Perc", // 80
"Dynamic SPI speed", // 81 "Dinamikus SPI sebesség", // 81
"Scan sensitivity", // 82 "Keresés érzékenység", // 82
"NONE", // 83 represents: AM/FM bands unavailable(please delete this note after translation "NINCS", // 83
"Software version", // 84 "Szoftver verzió", // 84
"Frequency font", // 85 "Frekvencia betűtípusa", // 85
"Auto", // 86 "Auto", // 86
"AF nedostupné", // 87 "Nincs elérhető AF", // 87
"EON nedostupný", // 88 "Nincs elérhető EON", // 88
"RT+ nedostupný", // 89 "Nincs elérhető RT+", // 89
"Krokovanie FM", // 90 "FM alap. lépésköz", // 90
"Šetrič obrazovky", // 91 "Kijelzővédő", // 91
"Sekúnd", // 92 "Mp", // 92
"STLAČTE BAND PRE UZAVRETIE", // 93 "BAND A BEZÁRÁSHOZ", // 93
"1% jas", // 94 "1% fényerő", // 94
"25% jas", // 95 "25% fényerő", // 95
"50% jas", // 96 "50% fényerő", // 96
"AM Offset signálu:", // 97 "AM RF szinteltolás", // 97
"Jednotka signálu:", // 98 "Jelmérő egység", // 98
"AF:", // 99 "AF használata", // 99
"Zvoľte FM pásmo:", // 100 "FM sáv kiválasztása", // 100
"Zvoľte AM pásmo:", // 101 "AM sáv kiválasztása", // 101
"LW", // 102 "LW", // 102
"MW", // 103 "MW", // 103
"SW", // 104 "SW", // 104
"FM", // 105 "FM", // 105
"OIRT", // 106 "OIRT", // 106
"Rotating while screen off", // 107 "Forgatás kikapcsolt képernyővel", // 107
"Voľba modelu", // 108 "Modellválasztó", // 108
"Základ (ILI9341)", // 109 "Alap (ILI9341)", // 109
"Prenosný (ILI9341)", // 110 "Hordozható (ILI9341)", // 110
"Prenosný - dotykový (ILI9341)", // 111 "Hord. érintős (ILI9341)", // 111
"Title", // 112 "Cím", // 112
"Album", // 113 "Album", // 113
"Track", // 114 "Szám", // 114
"Artist", // 115 "Előadó", // 115
"Composition", // 116 "Kompozíció", // 116
"Movement", // 117 "Tétel", // 117
"Conductor", // 118 "Karmester", // 118
"Composer", // 119 "Zeneszerző", // 119
"Band", // 120 "Zenekar", // 120
"Comment", // 121 "Megjegyzés", // 121
"Genre", // 122 "Műfaj", // 122
"News", // 123 "Hírek", // 123
"Local news", // 124 "Helyi hírek", // 124
"Stockmarket", // 125 "Tőzsdepiac", // 125
"Sport", // 126 "Sport", // 126
"Lottery", // 127 "Lottó", // 127
"Horoscope", // 128 "Horoszkóp", // 128
"Daily Diversion", // 129 "Napi kikapcsolódás", // 129
"Health", // 130 "Egészség", // 130
"Event", // 131 "Esemény", // 131
"Scene", // 132 "Jelenet", // 132
"Cinema", // 133 "Mozi", // 133
"TV", // 134 "TV", // 134
"Date/time", // 135 "Dátum/idő", // 135
"Weather", // 136 "Időjárás", // 136
"Traffic", // 137 "Közlekedés", // 137
"Alarm", // 138 "Riasztás", // 138
"Advertisement", // 139 "Hirdetés", // 139
"Website", // 140 "Weboldal", // 140
"Other", // 141 "Egyéb", // 141
"Short PS", // 142 "Rövid PS", // 142
"Long PS", // 143 "Hosszú PS", // 143
"Now", // 144 "Most", // 144
"Next", // 145 "Következő", // 145
"Part", // 146 "Rész", // 146
"Host", // 147 "Házigazda", // 147
"Editor", // 148 "Szerkesztő", // 148
"Frequency", // 149 "Frekvencia", // 149
"Homepage", // 150 "Kezdőlap", // 150
"Subchannel", // 151 "Alcsatorna", // 151
"Hotline", // 152 "Forródrót", // 152
"Studio phone", // 153 "Stúdió telefon", // 153
"Phone", // 154 "Telefon", // 154
"SMS studio", // 155 "Stúdió SMS", // 155
"SMS", // 156 "SMS", // 156
"Email hotline", // 157 "Email forródrót", // 157
"Email studio", // 158 "Stúdió Email", // 158
"Email", // 159 "Email", // 159
"Chat", // 160 "Csevegés", // 160
"Chat centre", // 161 "Csevegőközpont", // 161
"Vote question", // 162 "Szavazási kérdés", // 162
"Vote centre", // 163 "Szavazóközpont", // 163
"Place", // 164 "Helyszín", // 164
"Appointment", // 165 "Találkozó", // 165
"Identifier", // 166 "Azonosító", // 166
"Purchase", // 167 "Vásárlás", // 167
"Get data", // 168 "Adatok lekérése", // 168
"MW default stepsize", // 169 "MW alap. lépésköz", // 169
"Tangerine", // 170 "Tangerin", // 170
"Ocean", // 171 "Óceán", // 171
"Indigo", // 172 "Indigó", // 172
"Nastavenia batérie", // 173 "Akkumulátor jelzése", // 173
"Zobraziť napätie", // 174 "Feszültség mutatása", // 174
"Zobraziť percentá", // 175 "Százalék mutatása", // 175
"RT načítanie", // 176 "RT pufferelés", // 176
"Hlavné nastavenia", // 177 "Fő beállítások", // 177
"Nastavenia zvuku", // 178 "Audió beállítások", // 178
"Nastavenia displeja", // 179 "Kijelző beállítások", // 179
"Nastavenia RDS", // 180 "RDS beállítások", // 180
"Nastavenia FM pásma", // 181 "FM beállítások", // 181
"Nastavenia AM pásma", // 182 "AM beállítások", // 182
"Konektivita", // 183 "Csatlakoztathatóság", // 183
"STĽACTE MODE PRE NÁVRAT", // 184 "MODE A VISSZALÉPÉSHEZ", // 184
"AM CoChannelDet", // 185 "CoChannel Detektor", // 185
"Citlivosť CoChannelDet", // 186 "CoChannel Detektor\nérzékenység", // 186
"Prah AM CoChannelDet", // 187 "CoChannel Detektor\nküszöbérték", // 187
"CoChannelDet počítadlo", // 188 "CoChannel Detektor\nszámláló", // 188
"HLAVNÝ", // 189 "", // 189
"ZVUK", // 190 "AUDIÓ", // 190
"DISPLEJ", // 191 "KIJELZŐ", // 191
"RDS", // 192 "RDS", // 192
"FM", // 193 "FM", // 193
"AM", // 194 "AM", // 194
"PRIPOJENIE", // 195 "CSATLAKOZÁS", // 195
"DX MODE", // 196 "DX MÓD", // 196
"Stationlist ID", // 197 "Stationlist ID", // 197
"AM ATT", // 198 "AM AGC", // 198
"FM deemphasis", // 199 "FM kihangolás", // 199
"Malý", // 200 "Kicsi", // 200
"Veľký", // 201 "Nagy", // 201
"Všetko", // 202 "Mind", // 202
"Rýchle načítanie PS", // 203 "Gyors PS", // 203
"Default", // 204 "Alap", // 204
"Mute screen on\nXDRGTK connection", // 205 "Képernyő némítása\nXDRGTK kapcsolaton", // 205
"FMSI stereo\nimprovement", // 206 "FMSI sztereó\njavítás", // 206
"Function only available\non TEF6687/6689!", // 207 "Funkció csak a\nTEF6687/6689\nkészülékeken érhető el!", // 207
"Function not available\non selected skin!", // 208 "Funkció nem elérhető\na kiválasztott kinézetben!", // 208
"Begin scanning\nmemory channels", // 209 "Memóriacsatornák keresésének elkezdése", // 209
"Stop scanning\nmemory channels", // 210 "Memóriacsatornák keresésének befejezése", // 210
"Wait time", // 211 "Várakozási idő", // 211
"Start DX scanning", // 212 "DX keresés indítása", // 212
"FM DX Options", // 213 "FM DX Opciók", // 213
"Abort! The start channel\nis marked as skipped.", // 214 "Megszakítva!\nA kezdőcsatorna\nkihagyottnak van jelölve.", // 214
"Auto radenie AF", // 215 "Auto AF rendezés", // 215
"Memory channels", // 216 "Memóriacsatornák", // 216
"Exclude", // 217 "Kizárása", // 217
"Only", // 218 "Csak", // 218
"Auto cancel scan", // 219 "Auto keresés\nmegszakítása", // 219
"Correct PI", // 220 "Helyes PI", // 220
"Signal", // 221 "Jelszint", // 221
"Mute audio\nwhile scanning", // 222 "Hang némítása\nkeresés közben", // 222
"AIR", // 223 "AIR", // 223
"5 sec. bandbutton press", // 224 "5 mp. sávgombnyomás", // 224
"Power off", // 225 "Kikapcsolás", // 225
"Mute screen", // 226 "Képernyőnémítás", // 226
"Disabled", // 227 "Letiltva", // 227
"None", // 228 "Nincs", // 228
"News", // 229 "Hírek", // 229
"Current Affairs", // 230 "Aktuális események", // 230
"Information", // 231 "Információ", // 231
"Sport", // 232 "Sport", // 232
"Education", // 233 "Oktatás", // 233
"Drama", // 234 "Dráma", // 234
"Culture", // 235 "Kultúra", // 235
"Science", // 236 "Tudomány", // 236
"Varied", // 237 "Változatos", // 237
"Pop Music", // 238 "Pop Zene", // 238
"Rock Music", // 239 "Rock Zene", // 239
"Easy Listening", // 240 "Könnyűzene", // 240
"Light Classical", // 241 "Könnyű Klasszikus", // 241
"Serious Classical", // 242 "Komoly Klasszikus", // 242
"Other Music", // 243 "Egyéb Zene", // 243
"Weather", // 244 "Időjárás", // 244
"Finance", // 245 "Pénzügy", // 245
"Children's Progs", // 246 "Gyermekprogramok", // 246
"Social Affairs", // 247 "Társadalmi ügyek", // 247
"Religion", // 248 "Vallás", // 248
"Phone-In", // 249 "Betelefonálós", // 249
"Travel", // 250 "Utazás", // 250
"Leisure", // 251 "Szabadidő", // 251
"Jazz Music", // 252 "Jazz Zene", // 252
"Country Music", // 253 "Country Zene", // 253
"National Music", // 254 "Nemzeti Zene", // 254
"Oldies Music", // 255 "Régi Zene", // 255
"Folk Music", // 256 "Népi Zene", // 256
"Documentary", // 257 "Dokumentumfilm", // 257
"Alarm Test", // 258 "Riasztás Teszt", // 258
"Alarm!!!", // 259 "Riasztás!!!", // 259
"Initial", // 260 "Kezdeti", // 260
"Always" //261 "Mindig" //261
}, },
{ "Français", // French { "Français", // French
@@ -2643,7 +2651,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"TEST", // 258 "TEST", // 258
"Alerte !", // 259 "Alerte !", // 259
"Initial", // 260 "Initial", // 260
"Toujours" // 261 "Toujours", // 261
"Afficher l'horloge" // 262
}, },
{ "Български", // Bulgarian { "Български", // Bulgarian
@@ -2907,7 +2916,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Внимание тест", // 258 "Внимание тест", // 258
"Тревога!", // 259 "Тревога!", // 259
"Начален", // 260 "Начален", // 260
"Винаги" // 261 "Винаги", // 261
"Покажи часовника" // 262
}, },
{ "Русский", // Russian { "Русский", // Russian
@@ -3171,7 +3181,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Внимание тест", // 258 "Внимание тест", // 258
"Тревога!", // 259 "Тревога!", // 259
"Начальный", // 260 "Начальный", // 260
"Всегда" // 261 "Всегда", // 261
"Показать часы" // 262
}, },
{ "Українська", // Ukranian { "Українська", // Ukranian
@@ -3435,7 +3446,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Alarm Test", // 258 "Alarm Test", // 258
"Alarm!!!", // 259 "Alarm!!!", // 259
"Початковий", // 260 "Початковий", // 260
"Завжди" // 261 "Завжди", // 261
"Показати годинник" // 262
}, },
{ "Italiano", // Italian { "Italiano", // Italian
@@ -3699,7 +3711,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Test Allarme", // 258 "Test Allarme", // 258
"!!Allarme!!", // 259 "!!Allarme!!", // 259
"Iniziale", // 260 "Iniziale", // 260
"Sempre" // 261 "Sempre", // 261
"Mostra l'orologio" // 262
}, },
{ "Simplified Chinese", // Simplified Chinese { "Simplified Chinese", // Simplified Chinese
@@ -3963,7 +3976,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Alarm Test", // 258 "Alarm Test", // 258
"Alarm!!!", // 259 "Alarm!!!", // 259
"初始", // 260 "初始", // 260
"始终" // 261 "始终", // 261
"显示时钟" // 262
}, },
{ "Norsk", // Norwegian { "Norsk", // Norwegian
@@ -4227,7 +4241,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Alarm test", // 258 "Alarm test", // 258
"Alarm!", // 259 "Alarm!", // 259
"Innledende", // 260 "Innledende", // 260
"Alltid" // 261 "Alltid", // 261
"Vis klokka" // 262
}, },
{ "Español", // Spanish { "Español", // Spanish
@@ -4491,7 +4506,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Prueba de Alarma", // 258 "Prueba de Alarma", // 258
"¡ Alarma !", // 259 "¡ Alarma !", // 259
"Inicial", // 260 "Inicial", // 260
"Siempre" // 261 "Siempre", // 261
"Mostrar reloj" // 262
}, },
{ "Português", // Portuguese { "Português", // Portuguese
@@ -4755,7 +4771,8 @@ static const char* const myLanguage[18][262] PROGMEM = {
"Teste de Alarme", // 258 "Teste de Alarme", // 258
"Alarme Alarme !", // 259 "Alarme Alarme !", // 259
"Inicial", // 260 "Inicial", // 260
"Sempre" // 261 "Sempre", // 261
"Mostrar relógio" // 262
} }
}; };
#endif #endif
+1 -1
View File
@@ -748,7 +748,7 @@ void showPS() {
} }
void showCT() { void showCT() {
if (!screenmute) { if (!screenmute && showclock) {
if (radio.rds.hasCT && !dropout) { if (radio.rds.hasCT && !dropout) {
rds_clock = ((radio.rds.hour < 10 ? "0" : "") + String(radio.rds.hour) + ":" + (radio.rds.minute < 10 ? "0" : "") + String(radio.rds.minute)); rds_clock = ((radio.rds.hour < 10 ? "0" : "") + String(radio.rds.hour) + ":" + (radio.rds.minute < 10 ? "0" : "") + String(radio.rds.minute));
} else if (!radio.rds.hasCT || dropout) { } else if (!radio.rds.hasCT || dropout) {
+2 -1
View File
@@ -34,7 +34,7 @@ extern bool rdsstereoold;
extern bool rtcset; extern bool rtcset;
extern bool screenmute; extern bool screenmute;
extern bool setupmode; extern bool setupmode;
extern byte showrdserrors; extern bool showclock;
extern bool TAold; extern bool TAold;
extern bool TPold; extern bool TPold;
extern bool wifi; extern bool wifi;
@@ -54,6 +54,7 @@ extern byte eonptyold[20];
extern byte rdsblockold; extern byte rdsblockold;
extern byte rdsqualityold; extern byte rdsqualityold;
extern byte region; extern byte region;
extern byte showrdserrors;
extern byte stationlistid; extern byte stationlistid;
extern char eonpicodeold[20][6]; extern char eonpicodeold[20][6];
extern char programTypePrevious[18]; extern char programTypePrevious[18];