Add Screensaver
This commit is contained in:
+159
-8
@@ -89,6 +89,7 @@ bool XDRGTKdata;
|
|||||||
bool XDRGTKTCP;
|
bool XDRGTKTCP;
|
||||||
bool XDRGTKUSB;
|
bool XDRGTKUSB;
|
||||||
bool XDRMute;
|
bool XDRMute;
|
||||||
|
bool screensavertriggered = false;
|
||||||
byte af_counterold;
|
byte af_counterold;
|
||||||
byte amnb;
|
byte amnb;
|
||||||
byte audiomode;
|
byte audiomode;
|
||||||
@@ -130,11 +131,13 @@ byte specialstepOIRT;
|
|||||||
byte stepsize;
|
byte stepsize;
|
||||||
byte fmminstepsize;
|
byte fmminstepsize;
|
||||||
byte deepsleep;
|
byte deepsleep;
|
||||||
|
byte screensaverset;
|
||||||
byte StereoLevel;
|
byte StereoLevel;
|
||||||
byte subnetclient;
|
byte subnetclient;
|
||||||
byte TEF;
|
byte TEF;
|
||||||
byte theme;
|
byte theme;
|
||||||
byte tunemode;
|
byte tunemode;
|
||||||
|
byte screensaverOptions[5] = { 0, 5, 10, 30, 60 };
|
||||||
char buff[16];
|
char buff[16];
|
||||||
char programTypePrevious[18];
|
char programTypePrevious[18];
|
||||||
char radioIdPrevious[6];
|
char radioIdPrevious[6];
|
||||||
@@ -269,10 +272,12 @@ WiFiConnect wc;
|
|||||||
WiFiServer Server(7373);
|
WiFiServer Server(7373);
|
||||||
WiFiClient RemoteClient;
|
WiFiClient RemoteClient;
|
||||||
WiFiUDP Udp;
|
WiFiUDP Udp;
|
||||||
|
hw_timer_t *timScreensaver = NULL;
|
||||||
|
byte screensaver_IRQ = OFF;
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
setupmode = true;
|
setupmode = true;
|
||||||
EEPROM.begin(262);
|
EEPROM.begin(263);
|
||||||
if (EEPROM.readByte(43) != 29) DefaultSettings();
|
if (EEPROM.readByte(43) != 29) DefaultSettings();
|
||||||
|
|
||||||
frequency = EEPROM.readUInt(0);
|
frequency = EEPROM.readUInt(0);
|
||||||
@@ -326,6 +331,7 @@ void setup() {
|
|||||||
deepsleep = EEPROM.readByte(259);
|
deepsleep = EEPROM.readByte(259);
|
||||||
CurrentTheme = EEPROM.readByte(260);
|
CurrentTheme = EEPROM.readByte(260);
|
||||||
fmminstepsize = EEPROM.readByte(261);
|
fmminstepsize = EEPROM.readByte(261);
|
||||||
|
screensaverset = EEPROM.readByte(262);
|
||||||
|
|
||||||
LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash
|
LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash
|
||||||
LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash
|
LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash
|
||||||
@@ -572,6 +578,11 @@ void setup() {
|
|||||||
sprite.createSprite(317, 16);
|
sprite.createSprite(317, 16);
|
||||||
sprite2.createSprite(172, 16);
|
sprite2.createSprite(172, 16);
|
||||||
radio.tone(50, -5, 2000);
|
radio.tone(50, -5, 2000);
|
||||||
|
|
||||||
|
if (screensaverset) {
|
||||||
|
ScreensaverTimerInit();
|
||||||
|
ScreensaverTimerSet(screensaverOptions[screensaverset]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
@@ -684,8 +695,14 @@ void loop() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rotary == -1) KeyUp();
|
if (rotary == -1) {
|
||||||
if (rotary == 1) KeyDown();
|
KeyUp();
|
||||||
|
if (screensaverset && !menu) ScreensaverTimerRestart();
|
||||||
|
}
|
||||||
|
if (rotary == 1) {
|
||||||
|
KeyDown();
|
||||||
|
if (screensaverset && !menu) ScreensaverTimerRestart();
|
||||||
|
}
|
||||||
|
|
||||||
if (digitalRead(ROTARY_BUTTON) == LOW) ButtonPress();
|
if (digitalRead(ROTARY_BUTTON) == LOW) ButtonPress();
|
||||||
if (digitalRead(MODEBUTTON) == LOW && screenmute == false) ModeButtonPress();
|
if (digitalRead(MODEBUTTON) == LOW && screenmute == false) ModeButtonPress();
|
||||||
@@ -707,6 +724,27 @@ void loop() {
|
|||||||
attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A), read_encoder, CHANGE);
|
attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A), read_encoder, CHANGE);
|
||||||
attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B), read_encoder, CHANGE);
|
attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B), read_encoder, CHANGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (screensaverset) {
|
||||||
|
if (screensaver_IRQ)
|
||||||
|
{
|
||||||
|
screensaver_IRQ = OFF;
|
||||||
|
if (!screensavertriggered && !advancedRDS && !menu) {
|
||||||
|
screensavertriggered = true;
|
||||||
|
WakeToSleep(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (rotary != 0) {
|
||||||
|
rotary = 0;
|
||||||
|
if (screensavertriggered) {
|
||||||
|
screensavertriggered = false;
|
||||||
|
screensaver_IRQ = OFF;
|
||||||
|
WakeToSleep(false);
|
||||||
|
ScreensaverTimerReopen();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -730,8 +768,8 @@ void GetData() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SleepWake(bool isSleep) {
|
void WakeToSleep(bool yes) {
|
||||||
if (isSleep) {
|
if (yes) {
|
||||||
power = false;
|
power = false;
|
||||||
analogWrite(SMETERPIN, 0);
|
analogWrite(SMETERPIN, 0);
|
||||||
analogWrite(CONTRASTPIN, 0);
|
analogWrite(CONTRASTPIN, 0);
|
||||||
@@ -750,15 +788,56 @@ void SleepWake(bool isSleep) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScreensaverTimerInit() {
|
||||||
|
timScreensaver = timerBegin(0, 80, true);
|
||||||
|
timerAttachInterrupt(timScreensaver, ScreensaverInterrupt, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScreensaverTimerSet(byte value) {
|
||||||
|
if (timScreensaver == NULL) {
|
||||||
|
ScreensaverTimerInit();
|
||||||
|
ScreensaverTimerSet(screensaverOptions[screensaverset]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value == OFF) {
|
||||||
|
if (screensaverset) timerStop(timScreensaver);
|
||||||
|
} else {
|
||||||
|
timerStop(timScreensaver);
|
||||||
|
timerAlarmWrite(timScreensaver, value * TIMER_SCREENSAVER_BASE, true);
|
||||||
|
timerStart(timScreensaver);
|
||||||
|
timerAlarmEnable(timScreensaver);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScreensaverTimerRestart() {
|
||||||
|
if (timScreensaver == NULL) {
|
||||||
|
ScreensaverTimerInit();
|
||||||
|
ScreensaverTimerSet(screensaverOptions[screensaverset]);
|
||||||
|
}
|
||||||
|
timerRestart(timScreensaver);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScreensaverTimerReopen() {
|
||||||
|
ScreensaverTimerSet(OFF);
|
||||||
|
ScreensaverTimerSet(screensaverOptions[screensaverset]);
|
||||||
|
ScreensaverTimerRestart();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScreensaverInterrupt()
|
||||||
|
{
|
||||||
|
screensaver_IRQ = ON;
|
||||||
|
}
|
||||||
|
|
||||||
void BANDBUTTONPress() {
|
void BANDBUTTONPress() {
|
||||||
if (menu == false) {
|
unsigned long counterold = millis();
|
||||||
unsigned long counterold = millis();
|
unsigned long counter = millis();
|
||||||
unsigned long counter = millis();
|
if (menu == false && power) {
|
||||||
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 (advancedRDS) {
|
if (advancedRDS) {
|
||||||
BuildDisplay();
|
BuildDisplay();
|
||||||
|
ScreensaverTimerReopen();
|
||||||
} else {
|
} else {
|
||||||
if (tunemode != TUNE_MEM) {
|
if (tunemode != TUNE_MEM) {
|
||||||
if (band == BAND_FM) {
|
if (band == BAND_FM) {
|
||||||
@@ -771,6 +850,7 @@ void BANDBUTTONPress() {
|
|||||||
StoreFrequency();
|
StoreFrequency();
|
||||||
SelectBand();
|
SelectBand();
|
||||||
}
|
}
|
||||||
|
ScreensaverTimerRestart();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (band == BAND_FM) {
|
if (band == BAND_FM) {
|
||||||
@@ -780,6 +860,25 @@ void BANDBUTTONPress() {
|
|||||||
while (digitalRead(BANDBUTTON) == LOW) delay(50);
|
while (digitalRead(BANDBUTTON) == LOW) delay(50);
|
||||||
delay(100);
|
delay(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Wake after screensaver triggered here
|
||||||
|
if (power == false) {
|
||||||
|
while (digitalRead(BANDBUTTON) == LOW && counter - counterold <= 1000) counter = millis();
|
||||||
|
|
||||||
|
if (counter - counterold < 1000) {
|
||||||
|
if (screensavertriggered) {
|
||||||
|
screensavertriggered = !screensavertriggered;
|
||||||
|
WakeToSleep(false);
|
||||||
|
ScreensaverTimerReopen();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (screensavertriggered) {
|
||||||
|
screensavertriggered = !screensavertriggered;
|
||||||
|
WakeToSleep(false);
|
||||||
|
ScreensaverTimerReopen();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void StoreFrequency() {
|
void StoreFrequency() {
|
||||||
@@ -1211,6 +1310,9 @@ void BWButtonPress() {
|
|||||||
} else {
|
} else {
|
||||||
doStereoToggle();
|
doStereoToggle();
|
||||||
}
|
}
|
||||||
|
if (screensaverset) {
|
||||||
|
ScreensaverTimerRestart();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while (digitalRead(BWBUTTON) == LOW) delay(50);
|
while (digitalRead(BWBUTTON) == LOW) delay(50);
|
||||||
@@ -1252,6 +1354,9 @@ void ModeButtonPress() {
|
|||||||
|
|
||||||
if (counter - counterold <= 1000) {
|
if (counter - counterold <= 1000) {
|
||||||
doTuneMode();
|
doTuneMode();
|
||||||
|
if (screensaverset) {
|
||||||
|
ScreensaverTimerRestart();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (XDRGTKUSB == true || XDRGTKTCP == true) {
|
if (XDRGTKUSB == true || XDRGTKTCP == true) {
|
||||||
ShowFreq(1);
|
ShowFreq(1);
|
||||||
@@ -1267,6 +1372,7 @@ void ModeButtonPress() {
|
|||||||
if (menu == false) {
|
if (menu == false) {
|
||||||
BuildMenu();
|
BuildMenu();
|
||||||
menu = true;
|
menu = true;
|
||||||
|
ScreensaverTimerSet(OFF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1334,10 +1440,13 @@ void ModeButtonPress() {
|
|||||||
EEPROM.writeByte(259, deepsleep);
|
EEPROM.writeByte(259, deepsleep);
|
||||||
EEPROM.writeByte(260, CurrentTheme);
|
EEPROM.writeByte(260, CurrentTheme);
|
||||||
EEPROM.writeByte(261, fmminstepsize);
|
EEPROM.writeByte(261, fmminstepsize);
|
||||||
|
EEPROM.writeByte(262, screensaverset);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
Serial.end();
|
Serial.end();
|
||||||
if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient);
|
if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient);
|
||||||
if (USBmode) Serial.begin(19200); else Serial.begin(115200);
|
if (USBmode) Serial.begin(19200); else Serial.begin(115200);
|
||||||
|
ScreensaverTimerSet(screensaverOptions[screensaverset]);
|
||||||
|
if (screensaverset) ScreensaverTimerRestart();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (digitalRead(MODEBUTTON) == LOW) delay(50);
|
while (digitalRead(MODEBUTTON) == LOW) delay(50);
|
||||||
@@ -1522,6 +1631,9 @@ void ButtonPress() {
|
|||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (screensaverset) {
|
||||||
|
ScreensaverTimerRestart();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (menuopen == false) {
|
if (menuopen == false) {
|
||||||
menuopen = true;
|
menuopen = true;
|
||||||
@@ -1823,6 +1935,13 @@ void ButtonPress() {
|
|||||||
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
|
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
|
||||||
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
|
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
case 110:
|
||||||
|
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
|
||||||
|
tft.drawCentreString(myLanguage[language][91], 155, 70, GFXFF);
|
||||||
|
if (screensaverset) tft.drawString(myLanguage[language][92], 170, 110, GFXFF);
|
||||||
|
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
|
||||||
|
if (!screensaverset) tft.drawRightString(myLanguage[language][33], 155, 110, GFXFF); else tft.drawRightString(String(screensaverOptions[screensaverset], DEC), 155, 110, GFXFF);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2212,6 +2331,7 @@ void KeyUp() {
|
|||||||
tft.setTextColor(PrimaryColor);
|
tft.setTextColor(PrimaryColor);
|
||||||
tft.drawCentreString(CurrentThemeString, 155, 110, GFXFF);
|
tft.drawCentreString(CurrentThemeString, 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 70:
|
case 70:
|
||||||
if (CurrentTheme == 7) tft.setTextColor(TFT_WHITE); else tft.setTextColor(TFT_BLACK);
|
if (CurrentTheme == 7) tft.setTextColor(TFT_WHITE); else tft.setTextColor(TFT_BLACK);
|
||||||
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
||||||
@@ -2219,6 +2339,7 @@ void KeyUp() {
|
|||||||
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
|
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
|
||||||
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 90:
|
case 90:
|
||||||
if (CurrentTheme == 7) tft.setTextColor(TFT_WHITE); else tft.setTextColor(TFT_BLACK);
|
if (CurrentTheme == 7) tft.setTextColor(TFT_WHITE); else tft.setTextColor(TFT_BLACK);
|
||||||
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
|
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
|
||||||
@@ -2226,6 +2347,18 @@ void KeyUp() {
|
|||||||
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
|
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
|
||||||
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
|
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 110:
|
||||||
|
if (CurrentTheme == 7) tft.setTextColor(TFT_WHITE); else tft.setTextColor(TFT_BLACK);
|
||||||
|
if (screensaverset) tft.drawString(myLanguage[language][92], 170, 110, GFXFF);
|
||||||
|
if (!screensaverset) tft.drawRightString(myLanguage[language][33], 155, 110, GFXFF); else tft.drawRightString(String(screensaverOptions[screensaverset], DEC), 155, 110, GFXFF);
|
||||||
|
screensaverset ++;
|
||||||
|
if (screensaverset > 4) screensaverset = 0;
|
||||||
|
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
|
||||||
|
if (screensaverset) tft.drawString(myLanguage[language][92], 170, 110, GFXFF);
|
||||||
|
if (!screensaverset) tft.drawRightString(myLanguage[language][33], 155, 110, GFXFF); else tft.drawRightString(String(screensaverOptions[screensaverset], DEC), 155, 110, GFXFF);
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2616,6 +2749,7 @@ void KeyDown() {
|
|||||||
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
|
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
|
||||||
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 90:
|
case 90:
|
||||||
if (CurrentTheme == 7) tft.setTextColor(TFT_WHITE); else tft.setTextColor(TFT_BLACK);
|
if (CurrentTheme == 7) tft.setTextColor(TFT_WHITE); else tft.setTextColor(TFT_BLACK);
|
||||||
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
|
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
|
||||||
@@ -2623,6 +2757,18 @@ void KeyDown() {
|
|||||||
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
|
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
|
||||||
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
|
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 110:
|
||||||
|
if (CurrentTheme == 7) tft.setTextColor(TFT_WHITE); else tft.setTextColor(TFT_BLACK);
|
||||||
|
if (screensaverset) tft.drawString(myLanguage[language][92], 170, 110, GFXFF);
|
||||||
|
if (!screensaverset) tft.drawRightString(myLanguage[language][33], 155, 110, GFXFF); else tft.drawRightString(String(screensaverOptions[screensaverset], DEC), 155, 110, GFXFF);
|
||||||
|
screensaverset --;
|
||||||
|
if (screensaverset > 4) screensaverset = 4;
|
||||||
|
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
|
||||||
|
if (screensaverset) tft.drawString(myLanguage[language][92], 170, 110, GFXFF);
|
||||||
|
if (!screensaverset) tft.drawRightString(myLanguage[language][33], 155, 110, GFXFF); else tft.drawRightString(String(screensaverOptions[screensaverset], DEC), 155, 110, GFXFF);
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -3302,14 +3448,17 @@ void BuildMenu() {
|
|||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
tft.drawRightString("KHz", 305, 90, GFXFF);
|
tft.drawRightString("KHz", 305, 90, GFXFF);
|
||||||
|
if (screensaverset) tft.drawRightString(myLanguage[language][92], 305, 110, GFXFF);
|
||||||
tft.drawString(myLanguage[language][77], 14, 30, GFXFF);
|
tft.drawString(myLanguage[language][77], 14, 30, GFXFF);
|
||||||
tft.drawString(myLanguage[language][70], 14, 50, GFXFF);
|
tft.drawString(myLanguage[language][70], 14, 50, GFXFF);
|
||||||
tft.drawString(myLanguage[language][74], 14, 70, GFXFF);
|
tft.drawString(myLanguage[language][74], 14, 70, GFXFF);
|
||||||
tft.drawString(myLanguage[language][90], 14, 90, GFXFF);
|
tft.drawString(myLanguage[language][90], 14, 90, GFXFF);
|
||||||
|
tft.drawString(myLanguage[language][91], 14, 110, GFXFF);
|
||||||
tft.setTextColor(PrimaryColor);
|
tft.setTextColor(PrimaryColor);
|
||||||
tft.drawRightString(CurrentThemeString, 305, 30, GFXFF);
|
tft.drawRightString(CurrentThemeString, 305, 30, GFXFF);
|
||||||
if (deepsleep) tft.drawRightString(myLanguage[language][75], 305, 70, GFXFF); else tft.drawRightString(myLanguage[language][76], 305, 70, GFXFF);
|
if (deepsleep) tft.drawRightString(myLanguage[language][75], 305, 70, GFXFF); else tft.drawRightString(myLanguage[language][76], 305, 70, GFXFF);
|
||||||
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 265, 90, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 265, 90, GFXFF);
|
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 265, 90, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 265, 90, GFXFF);
|
||||||
|
if (!screensaverset) tft.drawRightString(myLanguage[language][33], 265, 110, GFXFF); else tft.drawRightString(String(screensaverOptions[screensaverset], DEC), 265, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
analogWrite(SMETERPIN, 0);
|
analogWrite(SMETERPIN, 0);
|
||||||
@@ -3337,6 +3486,7 @@ void MuteScreen(int setting) {
|
|||||||
|
|
||||||
void BuildAdvancedRDS() {
|
void BuildAdvancedRDS() {
|
||||||
advancedRDS = true;
|
advancedRDS = true;
|
||||||
|
ScreensaverTimerSet(OFF);
|
||||||
if (theme == 0) {
|
if (theme == 0) {
|
||||||
tft.invertDisplay(colorinvert);
|
tft.invertDisplay(colorinvert);
|
||||||
tft.fillScreen(BackgroundColor);
|
tft.fillScreen(BackgroundColor);
|
||||||
@@ -5431,5 +5581,6 @@ void DefaultSettings() {
|
|||||||
EEPROM.writeByte(259, 0);
|
EEPROM.writeByte(259, 0);
|
||||||
EEPROM.writeByte(260, 0);
|
EEPROM.writeByte(260, 0);
|
||||||
EEPROM.writeByte(261, 0);
|
EEPROM.writeByte(261, 0);
|
||||||
|
EEPROM.writeByte(262, 0);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
|
#define ON 1
|
||||||
|
#define OFF 0
|
||||||
|
|
||||||
#define TIMER_OFFSET_TIMER (TIMER_500_TICK)
|
#define TIMER_OFFSET_TIMER (TIMER_500_TICK)
|
||||||
#define TIMER_BW_TIMER (TIMER_500_TICK)
|
#define TIMER_BW_TIMER (TIMER_500_TICK)
|
||||||
#define TIMER_SNR_TIMER (TIMER_500_TICK)
|
#define TIMER_SNR_TIMER (TIMER_500_TICK)
|
||||||
#define TIMER_BAT_TIMER (TIMER_500_TICK)
|
#define TIMER_BAT_TIMER (TIMER_500_TICK)
|
||||||
|
#define TIMER_SCREENSAVER_BASE 1000000
|
||||||
#define TIMER_500_TICK 500
|
#define TIMER_500_TICK 500
|
||||||
|
|
||||||
#define BAT_LEVEL_EMPTY 1600
|
#define BAT_LEVEL_EMPTY 1600
|
||||||
|
|||||||
+45
-21
@@ -1,6 +1,6 @@
|
|||||||
// [number of languages][number of texts][max. length of text]
|
// [number of languages][number of texts][max. length of text]
|
||||||
|
|
||||||
static const char* const myLanguage[12][91] = {
|
static const char* const myLanguage[12][93] = {
|
||||||
{ "English", // English
|
{ "English", // English
|
||||||
"Rotary direction changed", // 1
|
"Rotary direction changed", // 1
|
||||||
"Please release button", // 2
|
"Please release button", // 2
|
||||||
@@ -91,7 +91,9 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"No AF available", // 87
|
"No AF available", // 87
|
||||||
"No EON available", // 88
|
"No EON available", // 88
|
||||||
"No RT+ available", // 89
|
"No RT+ available", // 89
|
||||||
"FM default stepsize" // 90
|
"FM default stepsize", // 90
|
||||||
|
"Screensaver", // 91
|
||||||
|
"Sec" // 92
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Nederlands", // Dutch
|
{ "Nederlands", // Dutch
|
||||||
@@ -184,7 +186,9 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"AF niet beschikbaar", // 87
|
"AF niet beschikbaar", // 87
|
||||||
"EON niet beschikbaar", // 88
|
"EON niet beschikbaar", // 88
|
||||||
"RT+ niet beschikbaar", // 89
|
"RT+ niet beschikbaar", // 89
|
||||||
"FM stapgrootte" // 90
|
"FM stapgrootte", // 90
|
||||||
|
"Screensaver", // 91
|
||||||
|
"Sec" // 92
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Polski", // Polish
|
{ "Polski", // Polish
|
||||||
@@ -277,7 +281,9 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"No AF available", // 87
|
"No AF available", // 87
|
||||||
"No EON available", // 88
|
"No EON available", // 88
|
||||||
"No RT+ available", // 89
|
"No RT+ available", // 89
|
||||||
"FM min stepsize" // 90
|
"FM min stepsize", // 90
|
||||||
|
"Screensaver", // 91
|
||||||
|
"Sec" // 92
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Hrvatski", // Croatian
|
{ "Hrvatski", // Croatian
|
||||||
@@ -370,7 +376,9 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"No AF available", // 87
|
"No AF available", // 87
|
||||||
"No EON available", // 88
|
"No EON available", // 88
|
||||||
"No RT+ available", // 89
|
"No RT+ available", // 89
|
||||||
"FM min stepsize" // 90
|
"FM min stepsize", // 90
|
||||||
|
"Screensaver", // 91
|
||||||
|
"Sec" // 92
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Ελληνικά", // Greek
|
{ "Ελληνικά", // Greek
|
||||||
@@ -463,7 +471,9 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"Μη διαθέσιμο AF", // 87
|
"Μη διαθέσιμο AF", // 87
|
||||||
"Μη διαθέσιμο EON", // 88
|
"Μη διαθέσιμο EON", // 88
|
||||||
"Μη διαθέσιμο RT+", // 89
|
"Μη διαθέσιμο RT+", // 89
|
||||||
"Μέγεθος βήματος FM" // 90
|
"Μέγεθος βήματος FM", // 90
|
||||||
|
"Screensaver", // 91
|
||||||
|
"Sec" // 92
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Romana", // Romanian
|
{ "Romana", // Romanian
|
||||||
@@ -556,7 +566,9 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"No AF available", // 87
|
"No AF available", // 87
|
||||||
"No EON available", // 88
|
"No EON available", // 88
|
||||||
"No RT+ available", // 89
|
"No RT+ available", // 89
|
||||||
"FM min stepsize" // 90
|
"FM min stepsize", // 90
|
||||||
|
"Screensaver", // 91
|
||||||
|
"Sec" // 92
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Deutsch", // German
|
{ "Deutsch", // German
|
||||||
@@ -649,7 +661,9 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"No AF available", // 87
|
"No AF available", // 87
|
||||||
"No EON available", // 88
|
"No EON available", // 88
|
||||||
"No RT+ available", // 89
|
"No RT+ available", // 89
|
||||||
"FM min stepsize" // 90
|
"FM min stepsize", // 90
|
||||||
|
"Screensaver", // 91
|
||||||
|
"Sec" // 92
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Czech", // Czech
|
{ "Czech", // Czech
|
||||||
@@ -742,7 +756,9 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"No AF available", // 87
|
"No AF available", // 87
|
||||||
"No EON available", // 88
|
"No EON available", // 88
|
||||||
"No RT+ available", // 89
|
"No RT+ available", // 89
|
||||||
"FM min stepsize" // 90
|
"FM min stepsize", // 90
|
||||||
|
"Screensaver", // 91
|
||||||
|
"Sec" // 92
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Slovak", // Slovak
|
{ "Slovak", // Slovak
|
||||||
@@ -835,7 +851,9 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"No AF available", // 87
|
"No AF available", // 87
|
||||||
"No EON available", // 88
|
"No EON available", // 88
|
||||||
"No RT+ available", // 89
|
"No RT+ available", // 89
|
||||||
"FM min stepsize" // 90
|
"FM min stepsize", // 90
|
||||||
|
"Screensaver", // 91
|
||||||
|
"Sec" // 92
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "France", // French
|
{ "France", // French
|
||||||
@@ -855,7 +873,7 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"Décalage du niveau RF:", // 14
|
"Décalage du niveau RF:", // 14
|
||||||
"Seuil minimum pour la Stéréo :", // 15
|
"Seuil minimum pour la Stéréo :", // 15
|
||||||
"Angle du filtre High Cut :", // 16
|
"Angle du filtre High Cut :", // 16
|
||||||
"Seuil minimum pour le filtre High Cut:", // 17
|
"Seuil minimum pour le filtre High Cut :", // 17
|
||||||
"Seuil minimum de niveau bas :", // 18
|
"Seuil minimum de niveau bas :", // 18
|
||||||
"Contraste:", // 19
|
"Contraste:", // 19
|
||||||
"Réglage du volume", // 20
|
"Réglage du volume", // 20
|
||||||
@@ -863,10 +881,10 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"Réglage de la limite de bande basse", // 22
|
"Réglage de la limite de bande basse", // 22
|
||||||
"Réglage de la limite de bande haute", // 23
|
"Réglage de la limite de bande haute", // 23
|
||||||
"Réglage du décalage du niveau", // 24
|
"Réglage du décalage du niveau", // 24
|
||||||
"Seuil minimum pour la sép. Stéréo", // 25
|
"Réglage du seuil minimum pour la séparation de la Stéréo", // 25
|
||||||
"Fréq. pour l'angle High Cut", // 26
|
"Réglage de la fréquence pour l'angle du filtre High Cut", // 26
|
||||||
"Seuil minimum pour le filtre High Cut", // 27
|
"Réglage du seuil minimum pour le filtre High Cut", // 27
|
||||||
"Seuil minimum de niveau bas", // 28
|
"Réglage du seuil minimum de niveau bas", // 28
|
||||||
"Réglage de la luminosité de l'affichage", // 29
|
"Réglage de la luminosité de l'affichage", // 29
|
||||||
"Éteint", // 30
|
"Éteint", // 30
|
||||||
"L'écran est désactivé !", // 31
|
"L'écran est désactivé !", // 31
|
||||||
@@ -879,15 +897,15 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"Montrer les erreurs de décodage RDS", // 38
|
"Montrer les erreurs de décodage RDS", // 38
|
||||||
"Langage", // 39
|
"Langage", // 39
|
||||||
"Choix de la langue", // 40
|
"Choix de la langue", // 40
|
||||||
"APP. SUR MODE POUR SAUVEGARDER", // 41
|
"APPUYEZ SUR MODE POUR SORTIR ET SAUVEGARDER", // 41
|
||||||
"Allumé", // 42
|
"Allumé", // 42
|
||||||
"Sourdine douce FM", // 43
|
"Sourdine douce FM", // 43
|
||||||
"Sourdine douce AM", // 44
|
"Sourdine douce AM", // 44
|
||||||
"Bip à la limite de bande", // 45
|
"Émettre un bip lorsque la limite de bande est atteinte", // 45
|
||||||
"Région", // 46
|
"Région", // 46
|
||||||
"Europe", // 47
|
"Europe", // 47
|
||||||
"États-Unis", // 48
|
"États-Unis", // 48
|
||||||
"Tirets à la place des espaces sur le PS", // 49
|
"Remplacer les espaces du PS (RDS) par des tirets du bas", // 49
|
||||||
"Mode USB", // 50
|
"Mode USB", // 50
|
||||||
"Wi-Fi actif", // 51
|
"Wi-Fi actif", // 51
|
||||||
"Configuration du Wi-Fi", // 52
|
"Configuration du Wi-Fi", // 52
|
||||||
@@ -928,7 +946,9 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"AF indisponible", // 87
|
"AF indisponible", // 87
|
||||||
"EON indisponible", // 88
|
"EON indisponible", // 88
|
||||||
"RT+ indisponible", // 89
|
"RT+ indisponible", // 89
|
||||||
"Valeur du pas FM par défaut" // 90
|
"Valeur du pas FM par défaut", // 90
|
||||||
|
"Screensaver", // 91
|
||||||
|
"Sec" // 92
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Български", // Bulgarian
|
{ "Български", // Bulgarian
|
||||||
@@ -1021,7 +1041,9 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"AF опцията не е налична", // 87
|
"AF опцията не е налична", // 87
|
||||||
"EON опцията не е налична", // 88
|
"EON опцията не е налична", // 88
|
||||||
"RT+ опцията не е налична", // 89
|
"RT+ опцията не е налична", // 89
|
||||||
"Размер на стъпката по подразбиране на FM" // 90
|
"Размер на стъпката по подразбиране на FM", // 90
|
||||||
|
"Screensaver", // 91
|
||||||
|
"Sec" // 92
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Русский", // Russian
|
{ "Русский", // Russian
|
||||||
@@ -1114,7 +1136,9 @@ static const char* const myLanguage[12][91] = {
|
|||||||
"Нет доступного AF", // 87
|
"Нет доступного AF", // 87
|
||||||
"Нет доступного EON", // 88
|
"Нет доступного EON", // 88
|
||||||
"Нет доступного RT+", // 89
|
"Нет доступного RT+", // 89
|
||||||
"Шаг FM по умолчанию" // 90
|
"Шаг FM по умолчанию", // 90
|
||||||
|
"Screensaver", // 91
|
||||||
|
"Sec" // 92
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user