diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 7c33b32..0ab3954 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -335,12 +335,14 @@ unsigned long tuningtimer; unsigned long udptimer; TEF6686 radio; -TFT_eSprite sprite = TFT_eSprite(&tft); -TFT_eSprite sprite1 = TFT_eSprite(&tft); -TFT_eSprite sprite2 = TFT_eSprite(&tft); -TFT_eSprite sprite3 = TFT_eSprite(&tft); -TFT_eSprite sprite4 = TFT_eSprite(&tft); -TFT_eSprite sprite5 = TFT_eSprite(&tft); +TFT_eSprite RadiotextSprite = TFT_eSprite(&tft); +TFT_eSprite FrequencySprite = TFT_eSprite(&tft); +TFT_eSprite AdvRadiotextSprite = TFT_eSprite(&tft); +TFT_eSprite EONSprite = TFT_eSprite(&tft); +TFT_eSprite RTPlusSprite = TFT_eSprite(&tft); +TFT_eSprite AFSprite = TFT_eSprite(&tft); +TFT_eSprite SquelchSprite = TFT_eSprite(&tft); + WiFiConnect wc; WiFiServer Server(7373); WiFiClient RemoteClient; @@ -495,31 +497,37 @@ void setup() { tft.setSwapBytes(true); tft.fillScreen(BackgroundColor); - sprite.createSprite(270, 19); - sprite1.createSprite(200, 50); - sprite2.createSprite(162, 19); - sprite3.createSprite(172, 19); - sprite4.createSprite(172, 19); - sprite5.createSprite(172, 19); - sprite.setTextDatum(TL_DATUM); - sprite1.setTextDatum(TR_DATUM); - sprite2.setTextDatum(TL_DATUM); - sprite3.setTextDatum(TL_DATUM); - sprite4.setTextDatum(TL_DATUM); - sprite5.setTextDatum(TL_DATUM); - sprite1.loadFont(FREQFONT); + RadiotextSprite.createSprite(270, 19); + FrequencySprite.createSprite(200, 50); + AdvRadiotextSprite.createSprite(162, 19); + EONSprite.createSprite(172, 19); + RTPlusSprite.createSprite(172, 19); + AFSprite.createSprite(172, 19); + SquelchSprite.createSprite(47, 19); + + RadiotextSprite.setTextDatum(TL_DATUM); + FrequencySprite.setTextDatum(TR_DATUM); + AdvRadiotextSprite.setTextDatum(TL_DATUM); + EONSprite.setTextDatum(TL_DATUM); + RTPlusSprite.setTextDatum(TL_DATUM); + AFSprite.setTextDatum(TL_DATUM); + SquelchSprite.setTextDatum(TL_DATUM); + + FrequencySprite.loadFont(FREQFONT); if (language == LANGUAGE_CHS) { - sprite.loadFont(FONT16_CHS); - sprite2.loadFont(FONT16_CHS); - sprite3.loadFont(FONT16_CHS); - sprite4.loadFont(FONT16_CHS); - sprite5.loadFont(FONT16_CHS); + RadiotextSprite.loadFont(FONT16_CHS); + AdvRadiotextSprite.loadFont(FONT16_CHS); + EONSprite.loadFont(FONT16_CHS); + RTPlusSprite.loadFont(FONT16_CHS); + AFSprite.loadFont(FONT16_CHS); + SquelchSprite.loadFont(FONT16_CHS); } else { - sprite.loadFont(FONT16); - sprite2.loadFont(FONT16); - sprite3.loadFont(FONT16); - sprite4.loadFont(FONT16); - sprite5.loadFont(FONT16); + RadiotextSprite.loadFont(FONT16); + AdvRadiotextSprite.loadFont(FONT16); + EONSprite.loadFont(FONT16); + RTPlusSprite.loadFont(FONT16); + AFSprite.loadFont(FONT16); + SquelchSprite.loadFont(FONT16); } if (digitalRead(BWBUTTON) == LOW && digitalRead(ROTARY_BUTTON) == HIGH) { @@ -1836,23 +1844,26 @@ void ModeButtonPress() { Serial.end(); if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient); if (USBmode) Serial.begin(19200); else Serial.begin(115200); - sprite.unloadFont(); - sprite2.unloadFont(); - sprite3.unloadFont(); - sprite4.unloadFont(); - sprite5.unloadFont(); + RadiotextSprite.unloadFont(); + AdvRadiotextSprite.unloadFont(); + EONSprite.unloadFont(); + RTPlusSprite.unloadFont(); + AFSprite.unloadFont(); + SquelchSprite.unloadFont(); if (language == LANGUAGE_CHS) { - sprite.loadFont(FONT16_CHS); - sprite2.loadFont(FONT16_CHS); - sprite3.loadFont(FONT16_CHS); - sprite4.loadFont(FONT16_CHS); - sprite5.loadFont(FONT16_CHS); + RadiotextSprite.loadFont(FONT16_CHS); + AdvRadiotextSprite.loadFont(FONT16_CHS); + EONSprite.loadFont(FONT16_CHS); + RTPlusSprite.loadFont(FONT16_CHS); + AFSprite.loadFont(FONT16_CHS); + SquelchSprite.loadFont(FONT16_CHS); } else { - sprite.loadFont(FONT16); - sprite2.loadFont(FONT16); - sprite3.loadFont(FONT16); - sprite4.loadFont(FONT16); - sprite5.loadFont(FONT16); + RadiotextSprite.loadFont(FONT16); + AdvRadiotextSprite.loadFont(FONT16); + EONSprite.loadFont(FONT16); + RTPlusSprite.loadFont(FONT16); + AFSprite.loadFont(FONT16); + SquelchSprite.loadFont(FONT16); } doBandSelectionFM(); doBandSelectionAM(); @@ -2193,10 +2204,10 @@ void ShowFreq(int mode) { detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A)); detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B)); if (band > BAND_GAP) { - sprite1.fillSprite(BackgroundColor); - sprite1.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - sprite1.drawString(String(frequency_AM) + " ", 218, -6); - if (!screenmute) sprite1.pushSprite(46, 46); + FrequencySprite.fillSprite(BackgroundColor); + FrequencySprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + FrequencySprite.drawString(String(frequency_AM) + " ", 218, -6); + if (!screenmute) FrequencySprite.pushSprite(46, 46); freqold = frequency_AM; if (band == BAND_SW && showSWMIBand) { @@ -2218,14 +2229,14 @@ void ShowFreq(int mode) { freqold = freq; } else { if (mode == 0) { - sprite1.fillSprite(BackgroundColor); - sprite1.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - sprite1.drawString(String(freq / 100) + "." + (freq % 100 < 10 ? "0" : "") + String(freq % 100) + " ", 218, -6); - sprite1.pushSprite(46, 46); + FrequencySprite.fillSprite(BackgroundColor); + FrequencySprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + FrequencySprite.drawString(String(freq / 100) + "." + (freq % 100 < 10 ? "0" : "") + String(freq % 100) + " ", 218, -6); + FrequencySprite.pushSprite(46, 46); freqold = freq; } else if (mode == 1) { - sprite1.fillSprite(BackgroundColor); - sprite1.pushSprite(46, 46); + FrequencySprite.fillSprite(BackgroundColor); + FrequencySprite.pushSprite(46, 46); } } } @@ -2258,16 +2269,16 @@ void ShowFreq(int mode) { if (!rdsflagreset && !screenmute && !afscreen) { ShowRDSLogo(false); - sprite.fillSprite(BackgroundColor); - sprite2.fillSprite(BackgroundColor); + RadiotextSprite.fillSprite(BackgroundColor); + AdvRadiotextSprite.fillSprite(BackgroundColor); if (!advancedRDS) { tft.fillCircle(314, 223, 2, GreyoutColor); tft.fillCircle(314, 234, 2, GreyoutColor); - sprite.pushSprite(38, 220); + RadiotextSprite.pushSprite(38, 220); } else { tft.fillCircle(203, 223, 2, GreyoutColor); tft.fillCircle(203, 234, 2, GreyoutColor); - sprite2.pushSprite(35, 220); + AdvRadiotextSprite.pushSprite(35, 220); } rdsflagreset = true; } @@ -2530,27 +2541,26 @@ void doSquelch() { if (unit == 2) SquelchShow = round((float(Squelch) / 10.0 - 10.0 * log10(75) - 90.0) * 10.0) / 10; if (Squelch > 920) Squelch = 920; - if (showsquelch && !advancedRDS && !afscreen) { + + if (!screenmute && showsquelch && !advancedRDS && !afscreen) { if (!menu && (Squelch > Squelchold + 2 || Squelch < Squelchold - 2)) { - if (Squelchold == -100) { - if (Squelch != Squelchold) tftPrint(-1, myLanguage[language][33], 235, 145, BackgroundColor, BackgroundColor, 16); - } else if (Squelchold == 920) { - if (Squelch != Squelchold) tftPrint(-1, "ST", 235, 145, BackgroundColor, BackgroundColor, 16); - } else { - if (Squelch != Squelchold) tftPrint(-1, String(SquelchShowold), 235, 145, BackgroundColor, BackgroundColor, 16); - } + SquelchSprite.fillSprite(BackgroundColor); + SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + if (Squelch == -100) { - if (Squelch != Squelchold) tftPrint(-1, myLanguage[language][33], 235, 145, PrimaryColor, PrimaryColorSmooth, 16); + SquelchSprite.drawString(String(myLanguage[language][33]), 0, 0); } else if (Squelch == 920) { - tftPrint(-1, "ST", 235, 145, PrimaryColor, PrimaryColorSmooth, 16); + SquelchSprite.drawString("ST", 0, 0); } else { - if (Squelch != Squelchold) tftPrint(-1, String(SquelchShow), 235, 145, PrimaryColor, PrimaryColorSmooth, 16); + SquelchSprite.drawString(String(SquelchShow), 0, 0); } SquelchShowold = SquelchShow; + if (Squelch != Squelchold) SquelchSprite.pushSprite(235, 145); } Squelchold = Squelch; } } + if ((XDRGTKUSB || XDRGTKTCP)) { if (!XDRMute) { if (Squelch != -1) { @@ -2576,20 +2586,17 @@ void doSquelch() { } if (!screenmute && showsquelch && !advancedRDS && !afscreen) { if (Squelch != Squelchold) { - if (Squelchold == -1) { - if (Squelch != Squelchold) tftPrint(-1, "ST", 235, 145, BackgroundColor, BackgroundColor, 16); - } else if (Squelchold == 0) { - if (Squelch != Squelchold) tftPrint(-1, myLanguage[language][33], 235, 145, BackgroundColor, BackgroundColor, 16); - } else { - if (Squelch != Squelchold) tftPrint(-1, String(SquelchShowold), 235, 145, BackgroundColor, BackgroundColor, 16); - } + SquelchSprite.fillSprite(BackgroundColor); + SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + if (Squelch == -1) { - if (Squelch != Squelchold) tftPrint(-1, "ST", 235, 145, PrimaryColor, PrimaryColorSmooth, 16); + SquelchSprite.drawString("ST", 0, 0); } else if (Squelch == 0) { - if (Squelch != Squelchold) tftPrint(-1, myLanguage[language][33], 235, 145, PrimaryColor, PrimaryColorSmooth, 16); + SquelchSprite.drawString(String(myLanguage[language][33]), 0, 0); } else { - if (Squelch != Squelchold) tftPrint(-1, String(SquelchShow), 235, 145, PrimaryColor, PrimaryColorSmooth, 16); + SquelchSprite.drawString(String(SquelchShow), 0, 0); } + if (Squelch != Squelchold) SquelchSprite.pushSprite(235, 145); Squelchold = Squelch; SquelchShowold = SquelchShow; } diff --git a/src/rds.cpp b/src/rds.cpp index ac6d4e6..b9f1a07 100644 --- a/src/rds.cpp +++ b/src/rds.cpp @@ -107,10 +107,10 @@ void ShowAdvancedRDS() { if (afstring.length() < 20) { if (afstringold != afstring) { xPos2 = 0; - sprite5.fillSprite(BackgroundColor); - sprite5.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - sprite5.drawString(afstring, xPos2, 2); - sprite5.pushSprite(35, 197); + AFSprite.fillSprite(BackgroundColor); + AFSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + AFSprite.drawString(afstring, xPos2, 2); + AFSprite.pushSprite(35, 197); } } else { if (millis() - afticker >= 15) { @@ -124,10 +124,10 @@ void ShowAdvancedRDS() { aftickerhold = millis(); } if (xPos2 < -tft.textWidth(afstring) + (charWidth * 14)) xPos2 = 0; - sprite5.fillSprite(BackgroundColor); - sprite5.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - sprite5.drawString(afstring, xPos2, 2); - sprite5.pushSprite(35, 197); + AFSprite.fillSprite(BackgroundColor); + AFSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + AFSprite.drawString(afstring, xPos2, 2); + AFSprite.pushSprite(35, 197); afticker = millis(); } } @@ -144,10 +144,10 @@ void ShowAdvancedRDS() { if (eonstring.length() < 20) { if (eonstringold != eonstring) { xPos3 = 0; - sprite3.fillSprite(BackgroundColor); - sprite3.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - sprite3.drawString(eonstring, xPos3, 2); - sprite3.pushSprite(35, 172); + EONSprite.fillSprite(BackgroundColor); + EONSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + EONSprite.drawString(eonstring, xPos3, 2); + EONSprite.pushSprite(35, 172); } } else { if (millis() - eonticker >= 15) { @@ -161,10 +161,10 @@ void ShowAdvancedRDS() { eontickerhold = millis(); } if (xPos3 < -tft.textWidth(eonstring) + (charWidth * 14)) xPos3 = 0; - sprite3.fillSprite(BackgroundColor); - sprite3.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - sprite3.drawString(eonstring, xPos3, 2); - sprite3.pushSprite(35, 172); + EONSprite.fillSprite(BackgroundColor); + EONSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + EONSprite.drawString(eonstring, xPos3, 2); + EONSprite.pushSprite(35, 172); eonticker = millis(); } } @@ -181,10 +181,10 @@ void ShowAdvancedRDS() { if (rtplusstring.length() < 20) { if (rtplusstringold != rtplusstring) { xPos4 = 0; - sprite4.fillSprite(BackgroundColor); - sprite4.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - sprite4.drawString(rtplusstring, xPos4, 2); - sprite4.pushSprite(35, 146); + RTPlusSprite.fillSprite(BackgroundColor); + RTPlusSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + RTPlusSprite.drawString(rtplusstring, xPos4, 2); + RTPlusSprite.pushSprite(35, 146); } } else { if (millis() - rtplusticker >= 15) { @@ -198,10 +198,10 @@ void ShowAdvancedRDS() { rtplustickerhold = millis(); } if (xPos4 < -tft.textWidth(rtplusstring) + (charWidth * 14)) xPos4 = 0; - sprite4.fillSprite(BackgroundColor); - sprite4.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - sprite4.drawString(rtplusstring, xPos4, 2); - sprite4.pushSprite(35, 146); + RTPlusSprite.fillSprite(BackgroundColor); + RTPlusSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + RTPlusSprite.drawString(rtplusstring, xPos4, 2); + RTPlusSprite.pushSprite(35, 146); rtplusticker = millis(); } } @@ -740,17 +740,17 @@ void showRadioText() { if (radio.rds.hasRT && radio.rds.stationText.length() > 0) { if (advancedRDS && radio.rds.stationText.length() < 20) { xPos = 0; - sprite2.fillSprite(BackgroundColor); - if (RDSstatus) sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else sprite2.setTextColor(SecondaryColor, SecondaryColorSmooth, false); - sprite2.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2); - sprite2.pushSprite(35, 220); + AdvRadiotextSprite.fillSprite(BackgroundColor); + if (RDSstatus) AdvRadiotextSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else AdvRadiotextSprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false); + AdvRadiotextSprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2); + AdvRadiotextSprite.pushSprite(35, 220); } else if (!advancedRDS && radio.rds.stationText.length() < 29) { if (RTold != radio.rds.stationText + " " + radio.rds.stationText32) { xPos = 0; - sprite.fillSprite(BackgroundColor); - if (RDSstatus) sprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else sprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false); - sprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2); - sprite.pushSprite(38, 220); + RadiotextSprite.fillSprite(BackgroundColor); + if (RDSstatus) RadiotextSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else RadiotextSprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false); + RadiotextSprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2); + RadiotextSprite.pushSprite(38, 220); } } else { if (millis() - rtticker >= 15) { @@ -765,16 +765,16 @@ void showRadioText() { } if (advancedRDS) { if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 10)) xPos = 0; - sprite2.fillSprite(BackgroundColor); - if (RDSstatus) sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else sprite2.setTextColor(SecondaryColor, SecondaryColorSmooth, false); - sprite2.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2); - sprite2.pushSprite(35, 220); + AdvRadiotextSprite.fillSprite(BackgroundColor); + if (RDSstatus) AdvRadiotextSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else AdvRadiotextSprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false); + AdvRadiotextSprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2); + AdvRadiotextSprite.pushSprite(35, 220); } else { if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 20)) xPos = 0; - sprite.fillSprite(BackgroundColor); - if (RDSstatus) sprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else sprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false); - sprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2); - sprite.pushSprite(38, 220); + RadiotextSprite.fillSprite(BackgroundColor); + if (RDSstatus) RadiotextSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else RadiotextSprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false); + RadiotextSprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2); + RadiotextSprite.pushSprite(38, 220); } rtticker = millis(); } diff --git a/src/rds.h b/src/rds.h index 3048e1c..c382932 100644 --- a/src/rds.h +++ b/src/rds.h @@ -102,11 +102,11 @@ extern TFT_eSPI tft; extern TEF6686 radio; extern WiFiClient RemoteClient; extern WiFiUDP Udp; -extern TFT_eSprite sprite; -extern TFT_eSprite sprite2; -extern TFT_eSprite sprite3; -extern TFT_eSprite sprite4; -extern TFT_eSprite sprite5; +extern TFT_eSprite RadiotextSprite; +extern TFT_eSprite AdvRadiotextSprite; +extern TFT_eSprite EONSprite; +extern TFT_eSprite RTPlusSprite; +extern TFT_eSprite AFSprite; void ShowAdvancedRDS(); void readRds();