GUI optimalisation and bugfixes

Mute symbol added
This commit is contained in:
Sjef Verhoeven PE5PVB
2023-07-20 22:55:12 +02:00
parent 9365ebea7e
commit 3478ae08fa
9 changed files with 22517 additions and 23305 deletions
+140 -66
View File
@@ -2,6 +2,7 @@
#include <EEPROM.h>
#include <Wire.h>
#include <math.h>
#include <FS.h>
#include <TFT_eSPI.h> // https://github.com/Bodmer/TFT_eSPI
#include <TimeLib.h> // https://github.com/PaulStoffregen/Time
#include <Hash.h> // https://github.com/bbx10/Hash_tng
@@ -187,10 +188,10 @@ int Stereostatus;
int volume;
int XDRBWset;
int XDRBWsetold;
int xPos = 6;
int xPos2 = 6;
int xPos3 = 6;
int xPos4 = 6;
int xPos;
int xPos2;
int xPos3;
int xPos4;
int16_t OStatus;
int16_t SAvg;
int16_t SAvg2;
@@ -199,10 +200,12 @@ int8_t LevelOffset;
int8_t LowLevelSet;
int8_t VolSet;
IPAddress remoteip;
String afstringold;
String cryptedpassword;
String CurrentThemeString;
String ECColdtxt;
String eonpsold[11];
String eonstringold;
String LIColdString;
String pinstringold;
String PIold;
@@ -215,6 +218,7 @@ String rds_clockold;
String RDSSPYRDS;
String RDSSPYRDSold;
String RTold;
String rtplusstringold;
String salt;
String saltkey = " ";
String SWMIBandstring = String();
@@ -579,8 +583,10 @@ void setup() {
SelectBand();
setupmode = false;
sprite.createSprite(317, 16);
sprite.createSprite(280, 16);
sprite2.createSprite(172, 16);
sprite.setTextDatum(TL_DATUM);
sprite2.setTextDatum(TL_DATUM);
radio.tone(50, -5, 2000);
if (screensaverset) {
@@ -595,7 +601,7 @@ void loop() {
if (power == true) {
Communication();
if (af && radio.rds.correctPI != 0) {
if (band == BAND_FM && af && radio.rds.correctPI != 0) {
if ((aftest && millis() >= aftimer + 3000) || ((USN > 250 || WAM > 250) && millis() >= aftimer + 1000)) {
aftimer = millis();
aftest = false;
@@ -607,7 +613,7 @@ void loop() {
}
}
if (millis() >= aftimer + 10000) {
if (band == BAND_FM && millis() >= aftimer + 10000) {
aftimer = millis();
if (USN > 150 || WAM > 150) {
frequency = radio.TestAF();
@@ -642,6 +648,7 @@ void loop() {
if (region == 0) tftPrint(-1, "PI:", 216, 197, ActiveColor, ActiveColorSmooth, FONT16);
if (region == 1) tftPrint(-1, "ID:", 216, 197, ActiveColor, ActiveColorSmooth, FONT16);
tftPrint(-1, "PS:", 6, 197, ActiveColor, ActiveColorSmooth, FONT16);
tftPrint(-1, "RT:", 6, 222, ActiveColor, ActiveColorSmooth, FONT16);
tftPrint(-1, "PTY:", 6, 170, ActiveColor, ActiveColorSmooth, FONT16);
if (!showmodulation) tft.drawLine(20, 150, 204, 150, GreyoutColor); else tft.drawLine(20, 150, 204, 150, TFT_DARKGREY);
}
@@ -670,9 +677,10 @@ void loop() {
if (region == 0) tftPrint(-1, "PI:", 216, 197, GreyoutColor, BackgroundColor, FONT16);
if (region == 1) tftPrint(-1, "ID:", 216, 197, GreyoutColor, BackgroundColor, FONT16);
tftPrint(-1, "PS:", 6, 197, GreyoutColor, BackgroundColor, FONT16);
tftPrint(-1, "RT:", 6, 222, GreyoutColor, BackgroundColor, FONT16);
tftPrint(-1, "PTY:", 6, 170, GreyoutColor, BackgroundColor, FONT16);
tft.drawLine(20, 150, 204, 150, GreyoutColor);
tft.drawBitmap(110, 5, RDSLogo, 67, 22, GreyoutColor);
tft.drawBitmap(139, 5, RDSLogo, 35, 22, GreyoutColor);
}
LowLevelInit = false;
}
@@ -1334,11 +1342,12 @@ void SelectBand() {
doBW();
radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
if (screenmute == false) radio.clearRDS(fullsearchrds); BuildDisplay();
if (region == 0) tftPrint(-1, "PI:", 216, 197, PrimaryColor, PrimaryColorSmooth, FONT16);
if (region == 1) tftPrint(-1, "ID:", 216, 195, PrimaryColor, PrimaryColorSmooth, FONT16);
tftPrint(-1, "PS:", 6, 197, PrimaryColor, PrimaryColorSmooth, FONT16);
tftPrint(-1, "PTY:", 6, 170, PrimaryColor, PrimaryColorSmooth, FONT16);
tft.drawBitmap(110, 5, RDSLogo, 67, 22, GreyoutColor);
if (region == 0) tftPrint(-1, "PI:", 216, 197, GreyoutColor, BackgroundColor, FONT16);
if (region == 1) tftPrint(-1, "ID:", 216, 195, GreyoutColor, BackgroundColor, FONT16);
tftPrint(-1, "PS:", 6, 197, GreyoutColor, BackgroundColor, FONT16);
tftPrint(-1, "RT:", 6, 222, GreyoutColor, BackgroundColor, FONT16);
tftPrint(-1, "PTY:", 6, 170, GreyoutColor, BackgroundColor, FONT16);
tft.drawBitmap(139, 5, RDSLogo, 35, 22, GreyoutColor);
tft.drawRoundRect(248, 56, 32, 20, 5, GreyoutColor);
tftPrint(0, "iMS", 265, 59, GreyoutColor, BackgroundColor, FONT16);
tft.drawRoundRect(286, 56, 32, 20, 5, GreyoutColor);
@@ -2783,7 +2792,7 @@ void readRds() {
if (advancedRDS) tftPrint(-1, PIold, 244, 76, SecondaryColor, SecondaryColorSmooth, FONT28); else tftPrint(-1, PIold, 244, 191, SecondaryColor, SecondaryColorSmooth, FONT28);
if (advancedRDS) tftPrint(-1, PSold, 38, 76, SecondaryColor, SecondaryColorSmooth, FONT28); else tftPrint(-1, PSold, 38, 191, SecondaryColor, SecondaryColorSmooth, FONT28);
if (advancedRDS) tftPrint(-1, PTYold, 38, 109, SecondaryColor, SecondaryColorSmooth, FONT16); else tftPrint(-1, PTYold, 38, 170, SecondaryColor, SecondaryColorSmooth, FONT16);
if (advancedRDS) tftPrint(-1, String(ptynold), 255, 109, SecondaryColor, SecondaryColorSmooth, FONT16);
if (advancedRDS) tftPrint(-1, String(ptynold), 216, 109, SecondaryColor, SecondaryColorSmooth, FONT16);
if (!advancedRDS) tftPrint(-1, RTold, 1, 229, BackgroundColor, BackgroundColor, FONT16);
dropout = true;
aftest = true;
@@ -2793,7 +2802,7 @@ void readRds() {
if (advancedRDS) tftPrint(-1, PIold, 244, 76, PrimaryColor, PrimaryColorSmooth, FONT28); else tftPrint(-1, PIold, 244, 191, PrimaryColor, PrimaryColorSmooth, FONT28);
if (advancedRDS) tftPrint(-1, PSold, 38, 76, PrimaryColor, PrimaryColorSmooth, FONT28); else tftPrint(-1, PSold, 38, 191, PrimaryColor, PrimaryColorSmooth, FONT28);
if (advancedRDS) tftPrint(-1, PTYold, 38, 109, PrimaryColor, PrimaryColorSmooth, FONT16); else tftPrint(-1, PTYold, 38, 170, PrimaryColor, PrimaryColorSmooth, FONT16);
if (advancedRDS) tftPrint(-1, String(ptynold), 255, 109, PrimaryColor, PrimaryColorSmooth, FONT16);
if (advancedRDS) tftPrint(-1, String(ptynold), 216, 109, PrimaryColor, PrimaryColorSmooth, FONT16);
dropout = false;
}
}
@@ -2942,18 +2951,28 @@ void ShowAdvancedRDS() {
if (radio.rds.hasAF) tftPrint(-1, "AF", 50, 51, SecondaryColor, SecondaryColorSmooth, FONT16); else tftPrint(-1, "AF", 50, 51, GreyoutColor, BackgroundColor, FONT16);
hasafold = radio.rds.hasAF;
}
if (millis() - afticker >= 100) { //500
if (xPos2 == 6) {
if (afstring.length() < 20) {
if (afstringold != afstring) {
xPos2 = 0;
sprite2.fillSprite(BackgroundColor);
sprite2.loadFont(FONT16);
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite2.drawString(afstring, xPos2, 0, 1);
sprite2.pushSprite(35, 200);
}
} else {
if (millis() - afticker >= 50) {
if (xPos2 == 0) {
if (millis() - aftickerhold >= 2000) {
xPos2 -= 1;//charWidth;
xPos2 --;
aftickerhold = millis();
}
} else {
xPos2 -= 1;//charWidth;
xPos2 --;
aftickerhold = millis();
}
if (xPos2 < -tft.textWidth(afstring) + (charWidth * 21)) xPos2 = 6;
sprite2.setTextDatum(TL_DATUM);
if (xPos2 < -tft.textWidth(afstring) + (charWidth * 16)) xPos2 = 0;
sprite2.fillSprite(BackgroundColor);
sprite2.loadFont(FONT16);
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
@@ -2961,6 +2980,8 @@ void ShowAdvancedRDS() {
sprite2.pushSprite(35, 200);
afticker = millis();
}
}
afstringold = afstring;
String eonstring;
if (radio.rds.hasEON) for (byte i = 0; i < radio.eon_counter; i++) eonstring += String(radio.eon[i].picode) + (radio.eon[i].ps.length() > 0 ? String(": " + String(radio.eon[i].ps)) : "") + (radio.eon[i].mappedfreq > 0 ? String(" " + String(radio.eon[i].mappedfreq / 100) + "." + String((radio.eon[i].mappedfreq % 100) / 10)) : "") + (radio.eon[i].mappedfreq2 > 0 ? String(" / " + String(radio.eon[i].mappedfreq2 / 100) + "." + String((radio.eon[i].mappedfreq2 % 100) / 10)) : "") + (radio.eon[i].mappedfreq3 > 0 ? String(" / " + String(radio.eon[i].mappedfreq3 / 100) + "." + String((radio.eon[i].mappedfreq3 % 100) / 10)) : "") + (i == radio.eon_counter - 1 ? " " : " | "); else eonstring = myLanguage[language][88];
@@ -2968,18 +2989,27 @@ void ShowAdvancedRDS() {
if (radio.rds.hasEON) tftPrint(-1, "EON", 153, 51, SecondaryColor, SecondaryColorSmooth, FONT16); else tftPrint(-1, "EON", 153, 51, GreyoutColor, BackgroundColor, FONT16);
haseonold = radio.rds.hasEON;
}
if (millis() - eonticker >= 100) { //500
if (xPos3 == 6) {
if (eonstring.length() < 20) {
if (eonstringold != eonstring) {
xPos3 = 0;
sprite2.fillSprite(BackgroundColor);
sprite2.loadFont(FONT16);
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite2.drawString(eonstring, xPos3, 0);
sprite2.pushSprite(35, 175);
}
} else {
if (millis() - eonticker >= 50) {
if (xPos3 == 0) {
if (millis() - eontickerhold >= 2000) {
xPos3 -= 1;//charWidth;
xPos3 --;
eontickerhold = millis();
}
} else {
xPos3 -= 1;//charWidth;
xPos3 --;
eontickerhold = millis();
}
if (xPos3 < -tft.textWidth(eonstring) + (charWidth * 21)) xPos3 = 6;
sprite2.setTextDatum(TL_DATUM);
if (xPos3 < -tft.textWidth(eonstring) + (charWidth * 16)) xPos3 = 0;
sprite2.fillSprite(BackgroundColor);
sprite2.loadFont(FONT16);
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
@@ -2987,6 +3017,8 @@ void ShowAdvancedRDS() {
sprite2.pushSprite(35, 175);
eonticker = millis();
}
}
eonstringold = eonstring;
String rtplusstring;
if (radio.rds.hasRDSplus) rtplusstring = "1) " + String(radio.rds.RTContent1) + " - 2) " + String(radio.rds.RTContent2) + " "; else rtplusstring = myLanguage[language][89];
@@ -2994,18 +3026,27 @@ void ShowAdvancedRDS() {
if (radio.rds.hasRDSplus) tftPrint(-1, "RT+", 124, 51, SecondaryColor, SecondaryColorSmooth, FONT16); else tftPrint(-1, "RT+", 124, 51, GreyoutColor, BackgroundColor, FONT16);
hasrtplusold = radio.rds.hasRDSplus;
}
if (millis() - rtplusticker >= 100) { //350
if (xPos3 == 6) {
if (eonstring.length() < 20) {
if (rtplusstringold != rtplusstring) {
xPos4 = 0;
sprite2.fillSprite(BackgroundColor);
sprite2.loadFont(FONT16);
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite2.drawString(rtplusstring, xPos4, 0);
sprite2.pushSprite(35, 150);
}
} else {
if (millis() - rtplusticker >= 50)
if (xPos4 == 0) {
if (millis() - rtplustickerhold >= 2000) {
xPos4 -= 1;//charWidth;
xPos4 --;
rtplustickerhold = millis();
}
} else {
xPos4 -= 1;//charWidth;
xPos4 --;
rtplustickerhold = millis();
}
if (xPos4 < -tft.textWidth(rtplusstring) + (charWidth * 21)) xPos4 = 6;
sprite2.setTextDatum(TL_DATUM);
if (xPos4 < -tft.textWidth(rtplusstring) + (charWidth * 16)) xPos4 = 0;
sprite2.fillSprite(BackgroundColor);
sprite2.loadFont(FONT16);
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
@@ -3013,6 +3054,7 @@ void ShowAdvancedRDS() {
sprite2.pushSprite(35, 150);
rtplusticker = millis();
}
rtplusstringold = rtplusstring;
if (TPold != radio.rds.hasTP) {
if (radio.rds.hasTP == true) tftPrint(-1, "TP", 6, 51, SecondaryColor, SecondaryColorSmooth, FONT16); else tftPrint(-1, "TP", 6, 51, GreyoutColor, BackgroundColor, FONT16);
@@ -3254,44 +3296,56 @@ void showPS() {
void showRadioText() {
if (radio.rds.hasRT && RDSstatus) {
if (millis() - rtticker >= 100) { // 350
if (xPos == 6) {
if (millis() - rttickerhold >= 2000) {
xPos -= 1;//= charWidth;
rttickerhold = millis();
}
} else {
xPos -= 1;//= charWidth;
rttickerhold = millis();
}
if (advancedRDS) {
if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 21)) xPos = 6;
if (advancedRDS && radio.rds.stationText.length() < 20) {
xPos = 0;
sprite2.fillSprite(BackgroundColor);
sprite2.setTextDatum(TL_DATUM);
sprite2.loadFont(FONT16);
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite2.fillSprite(BackgroundColor);
sprite2.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 0, 1);
sprite2.pushSprite(35, 222);
} else {
if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 24)) xPos = 6;
sprite.fillSprite(BackgroundColor);
sprite.setTextDatum(TL_DATUM);
} else if (!advancedRDS && radio.rds.stationText.length() < 29) {
if (RTold != radio.rds.stationText + " " + radio.rds.stationText32) {
xPos = 0;
sprite.fillSprite(BackgroundColor);
sprite.loadFont(FONT16);
sprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 0, 1);
sprite.pushSprite(1, 222);
sprite.pushSprite(38, 222);
}
} else {
if (millis() - rtticker >= 50) {
if (xPos == 0) {
if (millis() - rttickerhold >= 2000) {
xPos --;
rttickerhold = millis();
}
} else {
xPos --;
rttickerhold = millis();
}
if (advancedRDS) {
if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 16)) xPos = 0;
sprite2.fillSprite(BackgroundColor);
sprite2.loadFont(FONT16);
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite2.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 0, 1);
sprite2.pushSprite(35, 222);
} else {
if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 26)) xPos = 0;
sprite.fillSprite(BackgroundColor);
sprite.loadFont(FONT16);
sprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 0, 1);
sprite.pushSprite(38, 222);
}
rtticker = millis();
RTold = radio.rds.stationText + " " + radio.rds.stationText32;
cleanup = true;
}
}
} else if (cleanup == true) {
sprite.fillSprite(BackgroundColor);
sprite2.fillSprite(BackgroundColor);
if (advancedRDS) sprite2.pushSprite(35, 222); else sprite.pushSprite(1, 222);
if (advancedRDS) sprite2.pushSprite(35, 222); else sprite.pushSprite(38, 222);
cleanup = false;
}
@@ -3309,6 +3363,7 @@ void showRadioText() {
Udp.endPacket();
}
tft.drawLine(0, 239, 320, 239, FrameColor);
RTold = radio.rds.stationText + " " + radio.rds.stationText32;
}
void BuildMenu() {
@@ -3362,7 +3417,7 @@ void BuildMenu() {
tftPrint(-1, myLanguage[language][45], 14, 116, ActiveColor, ActiveColorSmooth, FONT16);
tftPrint(-1, myLanguage[language][46], 14, 136, ActiveColor, ActiveColorSmooth, FONT16);
tftPrint(-1, myLanguage[language][49], 14, 156, ActiveColor, ActiveColorSmooth, FONT16);
tftPrint(-1, myLanguage[language][49], 14, 176, ActiveColor, ActiveColorSmooth, FONT16);
tftPrint(-1, myLanguage[language][50], 14, 176, ActiveColor, ActiveColorSmooth, FONT16);
if (wifi) tftPrint(-1, String(myLanguage[language][51]) + " IP: " + String(WiFi.localIP().toString()), 14, 196, ActiveColor, ActiveColorSmooth, FONT16); else tftPrint(-1, myLanguage[language][51], 14, 196, ActiveColor, ActiveColorSmooth, FONT16);
tftPrint(-1, myLanguage[language][52], 14, 216, ActiveColor, ActiveColorSmooth, FONT16);
@@ -3376,7 +3431,7 @@ void BuildMenu() {
if (radio.rds.underscore) tftPrint(1, myLanguage[language][42], 305, 156, PrimaryColor, PrimaryColorSmooth, FONT16); else tftPrint(1, myLanguage[language][30], 305, 156, PrimaryColor, PrimaryColorSmooth, FONT16);
if (USBmode) tftPrint(1, "RDS Spy", 305, 176, PrimaryColor, PrimaryColorSmooth, FONT16); else tftPrint(1, "XDRGTK", 305, 176, PrimaryColor, PrimaryColorSmooth, FONT16);
if (wifi) tftPrint(1, myLanguage[language][42], 305, 196, PrimaryColor, PrimaryColorSmooth, FONT16); else tftPrint(1, myLanguage[language][30], 305, 196, PrimaryColor, PrimaryColorSmooth, FONT16);
tftPrint(1, "->", 305, 196, PrimaryColor, PrimaryColorSmooth, FONT16);
tftPrint(1, ">", 305, 216, PrimaryColor, PrimaryColorSmooth, FONT16);
break;
case 3:
@@ -3504,7 +3559,7 @@ void ShowAFEON() {
tftPrint(-1, String(eonpsold[i]), 218, 54 + (15 * i), BackgroundColor, BackgroundColor, FONT16);
eonpsold[i] = radio.eon[i].ps;
}
tftPrint(-1, String(radio.eon[i].ps), 218, 54 + (15 * i), PrimaryColor, PrimaryColorSmooth, FONT16);
tftPrint(-1, String(radio.eon[i].ps), 218, 54 + (15 * i), SecondaryColor, SecondaryColorSmooth, FONT16);
}
if (radio.eon[i].mappedfreq > 0) {
@@ -3626,7 +3681,7 @@ void BuildAdvancedRDS() {
tft.drawCircle(81, 15, 9, GreyoutColor);
tft.drawCircle(91, 15, 10, GreyoutColor);
tft.drawCircle(91, 15, 9, GreyoutColor);
tft.drawBitmap(110, 5, RDSLogo, 67, 22, GreyoutColor);
tft.drawBitmap(139, 5, RDSLogo, 35, 22, GreyoutColor);
if (StereoToggle == false) {
tft.drawCircle(86, 15, 10, SecondaryColor);
@@ -3696,6 +3751,7 @@ void BuildDisplay() {
tft.drawLine(0, 187, 320, 187, FrameColor);
tft.drawLine(0, 218, 320, 218, FrameColor);
tft.drawLine(108, 30, 108, 0, FrameColor);
tft.drawLine(137, 30, 137, 0, FrameColor);
tft.drawLine(174, 30, 174, 0, FrameColor);
tft.drawLine(20, 120, 204, 120, TFT_DARKGREY);
if (!showmodulation) tft.drawLine(20, 150, 204, 150, GreyoutColor); else tft.drawLine(20, 150, 204, 150, TFT_DARKGREY);
@@ -3718,6 +3774,7 @@ void BuildDisplay() {
if (region == 0) tftPrint(-1, "PI:", 216, 197, ActiveColor, ActiveColorSmooth, FONT16);
if (region == 1) tftPrint(-1, "ID:", 216, 197, ActiveColor, ActiveColorSmooth, FONT16);
tftPrint(-1, "PS:", 6, 197, ActiveColor, ActiveColorSmooth, FONT16);
tftPrint(-1, "RT:", 6, 222, ActiveColor, ActiveColorSmooth, FONT16);
tftPrint(-1, "PTY:", 6, 170, ActiveColor, ActiveColorSmooth, FONT16);
tftPrint(0, "S", 7, 107, ActiveColor, ActiveColorSmooth, FONT16);
@@ -3756,7 +3813,7 @@ void BuildDisplay() {
tft.drawCircle(81, 15, 9, GreyoutColor);
tft.drawCircle(91, 15, 10, GreyoutColor);
tft.drawCircle(91, 15, 9, GreyoutColor);
tft.drawBitmap(110, 5, RDSLogo, 67, 22, GreyoutColor);
tft.drawBitmap(139, 5, RDSLogo, 35, 22, GreyoutColor);
if (StereoToggle == false) {
tft.drawCircle(86, 15, 10, SecondaryColor);
tft.drawCircle(86, 15, 9, SecondaryColor);
@@ -3958,7 +4015,7 @@ void ShowSignalLevel() {
void ShowRDSLogo(bool RDSstatus) {
if (screenmute == false) {
if (RDSstatus != RDSstatusold) {
if (RDSstatus) tft.drawBitmap(110, 5, RDSLogo, 67, 22, SecondaryColor); else tft.drawBitmap(110, 5, RDSLogo, 67, 22, GreyoutColor);
if (RDSstatus) tft.drawBitmap(139, 5, RDSLogo, 35, 22, InsignificantColor); else tft.drawBitmap(139, 5, RDSLogo, 35, 22, GreyoutColor);
RDSstatusold = RDSstatus;
}
}
@@ -4166,17 +4223,21 @@ void doSquelch() {
if (Squelch != -1) {
if (Squelch < SStatus || Squelch == -100 || Squelch == 0) {
radio.setUnMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
SQ = false;
} else {
radio.setMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
SQ = true;
}
} else {
if (Stereostatus == true) {
radio.setUnMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
SQ = false;
} else {
radio.setMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
SQ = true;
}
}
@@ -4204,17 +4265,21 @@ void doSquelch() {
if (seek == false && Squelch != 920) {
if (Squelch < SStatus || Squelch == -100 || Squelch == 0) {
radio.setUnMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
SQ = false;
} else {
radio.setMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
SQ = true;
}
} else {
if (seek == false && Stereostatus == true) {
radio.setUnMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
SQ = false;
} else {
radio.setMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
SQ = true;
}
}
@@ -4992,10 +5057,12 @@ void XDRGTKRoutine() {
VolSet = atoi(buff + 1);
if (VolSet == 0) {
radio.setMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
XDRMute = true;
SQ = true;
} else {
radio.setUnMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
radio.setVolume((VolSet - 40) / 10);
XDRMute = false;
}
@@ -5013,6 +5080,7 @@ void XDRGTKRoutine() {
store = true;
XDRMute = false;
radio.setUnMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
VolSet = EEPROM.readInt(EE_BYTE_VOLSET);
LowLevelSet = EEPROM.readInt(EE_BYTE_LOWLEVELSET);
softmuteam = EEPROM.readByte(EE_BYTE_SOFTMUTEAM);
@@ -5238,12 +5306,19 @@ void TuneDown() {
void EdgeBeeper() {
bool x = radio.mute;
radio.tone(50, -5, 2000);
if (x) radio.setMute(); else radio.setUnMute();
if (x) {
radio.setMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
} else {
radio.setUnMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
}
}
void Seek(bool mode) {
if (band == BAND_FM) {
radio.setMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
if (mode == false) TuneDown(); else TuneUp();
delay(50);
ShowFreq(0);
@@ -5255,6 +5330,7 @@ void Seek(bool mode) {
if ((USN < 200) && (WAM < 230) && (OStatus < 80 && OStatus > -80) && (Squelch < SStatus || Squelch == 920)) {
seek = false;
radio.setUnMute();
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
store = true;
} else {
seek = true;
@@ -5275,7 +5351,7 @@ void SetTunerPatch() {
tft.fillScreen(BackgroundColor);
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
if (TEF == 0) tftPrint(0, myLanguage[language][35], 150, 78, ActiveColor, ActiveColorSmooth, FONT28); else tftPrint(0, myLanguage[language][36], 150, 78, ActiveColor, ActiveColorSmooth, FONT28);
if (TEF == 0) tftPrint(0, myLanguage[language][35], 150, 78, ActiveColor, ActiveColorSmooth, FONT28); else tftPrint(0, myLanguage[language][36] + String(TEF), 150, 78, ActiveColor, ActiveColorSmooth, FONT28);
tftPrint(0, myLanguage[language][37], 150, 108, ActiveColor, ActiveColorSmooth, FONT28);
EEPROM.writeByte(EE_BYTE_TEF, TEF);
EEPROM.commit();
@@ -5296,7 +5372,7 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
GreyoutColor = 0x38E7;
BackgroundColor = TFT_BLACK;
ActiveColor = 0xFFFF;
ActiveColorSmooth = 0x4208;
ActiveColorSmooth = 0x39E7;
SignificantColor = 0xF800;
SignificantColorSmooth = 0x7C00;
InsignificantColor = 0x07E0;
@@ -5468,8 +5544,6 @@ void tryWiFi() {
if (!setupmode) tftPrint(0, myLanguage[language][57], 155, 128, InsignificantColor, InsignificantColorSmooth, FONT28);
wifi = true;
} else {
Server.end();
Udp.stop();
if (!setupmode) tftPrint(0, myLanguage[language][56], 155, 128, SignificantColor, SignificantColorSmooth, FONT28);
wifi = false;
XDRGTKTCP = false;
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
View File
+5755 -6030
View File
File diff suppressed because it is too large Load Diff
+14094 -14704
View File
File diff suppressed because it is too large Load Diff
-2
View File
@@ -618,7 +618,6 @@ void TEF6686::readRDS(bool showrdserrors)
RDScharConverter(rt_buffer, RTtext, sizeof(RTtext) / sizeof(wchar_t), true); // Convert 8 bit ASCII to 16 bit ASCII
rds.stationText = convertToUTF8(RTtext); // Convert RDS characterset to ASCII
rds.stationText = extractUTF8Substring(rds.stationText, 0, 64, true); // Make sure RT does not exceed 64 characters
rds.stationText += " "; // Add extra spaces
for (int i = 0; i < 64; i++) rt_buffer2[i] = rt_buffer[i];
}
@@ -646,7 +645,6 @@ void TEF6686::readRDS(bool showrdserrors)
RDScharConverter(rt_buffer32, RTtext, sizeof(RTtext) / sizeof(wchar_t), true); // Convert 8 bit ASCII to 16 bit ASCII
rds.stationText32 = convertToUTF8(RTtext); // Convert RDS characterset to ASCII
rds.stationText32 = extractUTF8Substring(rds.stationText32, 0, 32, true); // Make sure RT does not exceed 32 characters
rds.stationText32 += " "; // Add extra spaces
}
} break;
+47 -22
View File
@@ -179,28 +179,53 @@ static const uint8_t TEFLogo[] PROGMEM = {
};
static const uint8_t RDSLogo[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00,
0x07, 0xfc, 0x00, 0x1f, 0xe8, 0x00, 0x03, 0xf8, 0x00,
0x07, 0xff, 0x00, 0x1f, 0xfc, 0x00, 0x0f, 0xfe, 0x00,
0x0f, 0xff, 0x80, 0x3f, 0xff, 0x00, 0x1f, 0xfc, 0x00,
0x0f, 0xff, 0xc0, 0x1f, 0xff, 0x00, 0x3f, 0xf8, 0x00,
0x0f, 0x8f, 0xc0, 0x3e, 0x3f, 0x80, 0x3e, 0x10, 0x00,
0x0f, 0x0f, 0x80, 0x3e, 0x0f, 0xc0, 0x3e, 0x00, 0x00,
0x1f, 0x0f, 0x80, 0x3c, 0x0f, 0x80, 0x7e, 0x00, 0x00,
0x1f, 0x0f, 0x9c, 0x7e, 0x0f, 0xce, 0x7f, 0x80, 0x00,
0x1f, 0xbf, 0x1e, 0x7c, 0x07, 0xce, 0x3f, 0xf0, 0x00,
0x1f, 0xfe, 0x1c, 0x7c, 0x0f, 0x9e, 0x3f, 0xf8, 0x00,
0x1f, 0xfc, 0x1c, 0x7c, 0x0f, 0x9c, 0x1f, 0xf8, 0x00,
0x3f, 0xf0, 0x3c, 0x78, 0x0f, 0x9c, 0x03, 0xf8, 0x00,
0x3e, 0xf8, 0x10, 0xf8, 0x1f, 0x14, 0x00, 0xf8, 0x00,
0x3e, 0xf8, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x00,
0x3e, 0x7c, 0x00, 0xf8, 0xfe, 0x00, 0xe1, 0xf8, 0x00,
0x3c, 0x7e, 0x00, 0xff, 0xfc, 0x00, 0xf7, 0xf0, 0x00,
0x7c, 0x7e, 0x01, 0xff, 0xf8, 0x01, 0xff, 0xe0, 0x00,
0x7c, 0x3f, 0x01, 0xff, 0xe0, 0x03, 0xff, 0xe0, 0x00,
0x7c, 0x3f, 0x01, 0xff, 0x80, 0x00, 0xff, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
0x01, 0xfe, 0x0f, 0xf0, 0x00,
0x07, 0x03, 0xb8, 0x1c, 0x00,
0x0c, 0xfc, 0xe7, 0xe6, 0x00,
0x1b, 0x86, 0xdc, 0x3b, 0x00,
0x36, 0x79, 0xb3, 0xcd, 0x80,
0x6d, 0xff, 0x6f, 0xf6, 0xc0,
0x5b, 0xfe, 0xdf, 0xfb, 0x40,
0x57, 0xfe, 0xbf, 0xfd, 0x60,
0xd7, 0xfd, 0xbf, 0xfd, 0x60,
0xb7, 0xcd, 0x7e, 0x7d, 0xa0,
0xff, 0x85, 0x7c, 0x3f, 0xe0,
0xff, 0x85, 0x7c, 0x3f, 0xe0,
0xfa, 0x4d, 0x7e, 0x4b, 0xe0,
0xf9, 0x3b, 0x7f, 0xd3, 0xe0,
0x7d, 0x86, 0xfc, 0x37, 0xc0,
0x7e, 0x7d, 0xfb, 0xcf, 0xc0,
0x7f, 0x03, 0xf8, 0x1f, 0xc0,
0x3f, 0xff, 0xff, 0xff, 0x80,
0x1f, 0xff, 0xff, 0xff, 0x00,
0x0f, 0xff, 0xff, 0xfe, 0x00,
0x07, 0xff, 0xbf, 0xfc, 0x00,
0x01, 0xfe, 0x0f, 0xf0, 0x00
};
static const uint8_t Speaker[] PROGMEM = {
0x00, 0x00, 0x00, 0x00,
0x00, 0x18, 0x00, 0x00,
0x00, 0x38, 0x00, 0x00,
0x00, 0xf8, 0x00, 0x00,
0x01, 0xf8, 0x00, 0x00,
0xff, 0xf8, 0x00, 0x00,
0xff, 0xf8, 0x40, 0x80,
0xff, 0xf8, 0xe1, 0xc0,
0xff, 0xf8, 0x73, 0x80,
0xff, 0xf8, 0x3f, 0x00,
0xff, 0xf8, 0x1e, 0x00,
0xff, 0xf8, 0x1e, 0x00,
0xff, 0xf8, 0x3f, 0x00,
0xff, 0xf8, 0x73, 0x80,
0xff, 0xf8, 0xe1, 0xc0,
0xff, 0xf8, 0x40, 0x80,
0xff, 0xf8, 0x00, 0x00,
0x01, 0xf8, 0x00, 0x00,
0x00, 0xf8, 0x00, 0x00,
0x00, 0x38, 0x00, 0x00,
0x00, 0x18, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
static const uint8_t WiFi1[] PROGMEM = {