Reduced sprites to save RAM

This commit is contained in:
Sjef Verhoeven PE5PVB
2023-10-29 15:08:25 +01:00
parent 460e3a282a
commit a365267ad9
4 changed files with 40 additions and 71 deletions

View File

@@ -347,11 +347,8 @@ ESP32Time rtc(0);
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 RDSSprite = TFT_eSprite(&tft);
TFT_eSprite SquelchSprite = TFT_eSprite(&tft);
TFT_eSprite MenuInfobox = TFT_eSprite(&tft);
WiFiConnect wc;
WiFiServer Server(7373);
@@ -523,39 +520,26 @@ void setup() {
RadiotextSprite.createSprite(270, 19);
FrequencySprite.createSprite(200, 50);
AdvRadiotextSprite.createSprite(162, 19);
EONSprite.createSprite(172, 19);
RTPlusSprite.createSprite(172, 19);
AFSprite.createSprite(172, 19);
RDSSprite.createSprite(172, 19);
SquelchSprite.createSprite(47, 19);
MenuInfobox.createSprite(292, 80);
RadiotextSprite.setTextDatum(TL_DATUM);
FrequencySprite.setTextDatum(TR_DATUM);
AdvRadiotextSprite.setTextDatum(TL_DATUM);
EONSprite.setTextDatum(TL_DATUM);
RTPlusSprite.setTextDatum(TL_DATUM);
AFSprite.setTextDatum(TL_DATUM);
RDSSprite.setTextDatum(TL_DATUM);
SquelchSprite.setTextDatum(TL_DATUM);
MenuInfobox.setTextDatum(TC_DATUM);
FrequencySprite.loadFont(FREQFONT);
if (language == LANGUAGE_CHS) {
RadiotextSprite.loadFont(FONT16_CHS);
AdvRadiotextSprite.loadFont(FONT16_CHS);
EONSprite.loadFont(FONT16_CHS);
RTPlusSprite.loadFont(FONT16_CHS);
AFSprite.loadFont(FONT16_CHS);
RDSSprite.loadFont(FONT16_CHS);
SquelchSprite.loadFont(FONT16_CHS);
MenuInfobox.loadFont(FONT28_CHS);
} else {
RadiotextSprite.loadFont(FONT16);
AdvRadiotextSprite.loadFont(FONT16);
EONSprite.loadFont(FONT16);
RTPlusSprite.loadFont(FONT16);
AFSprite.loadFont(FONT16);
RDSSprite.loadFont(FONT16);
SquelchSprite.loadFont(FONT16);
MenuInfobox.loadFont(FONT28);
}
if (digitalRead(BWBUTTON) == LOW && digitalRead(ROTARY_BUTTON) == HIGH) {
@@ -672,6 +656,8 @@ void setup() {
}
tftPrint(0, "Patch: v" + String(TEF), 160, 202, ActiveColor, ActiveColorSmooth, 28);
if (analogRead(BATTERY_PIN) < 200) batterydetect = false;
if (wifi) {
tryWiFi();
tft.fillRect(184, 230, 16, 6, PrimaryColor);
@@ -712,7 +698,6 @@ void setup() {
Wire.endTransmission();
}
if (analogRead(BATTERY_PIN) < 200) batterydetect = false;
SelectBand();
setupmode = false;
@@ -1891,27 +1876,18 @@ void ModeButtonPress() {
if (USBmode) Serial.begin(19200); else Serial.begin(115200);
RadiotextSprite.unloadFont();
AdvRadiotextSprite.unloadFont();
EONSprite.unloadFont();
RTPlusSprite.unloadFont();
AFSprite.unloadFont();
RDSSprite.unloadFont();
SquelchSprite.unloadFont();
MenuInfobox.unloadFont();
if (language == LANGUAGE_CHS) {
RadiotextSprite.loadFont(FONT16_CHS);
AdvRadiotextSprite.loadFont(FONT16_CHS);
EONSprite.loadFont(FONT16_CHS);
RTPlusSprite.loadFont(FONT16_CHS);
AFSprite.loadFont(FONT16_CHS);
RDSSprite.loadFont(FONT16_CHS);
SquelchSprite.loadFont(FONT16_CHS);
MenuInfobox.loadFont(FONT28_CHS);
} else {
RadiotextSprite.loadFont(FONT16);
AdvRadiotextSprite.loadFont(FONT16);
EONSprite.loadFont(FONT16);
RTPlusSprite.loadFont(FONT16);
AFSprite.loadFont(FONT16);
RDSSprite.loadFont(FONT16);
SquelchSprite.loadFont(FONT16);
MenuInfobox.loadFont(FONT28);
}
doBandSelectionFM();
doBandSelectionAM();
@@ -3033,7 +3009,8 @@ void ShowBattery() {
return;
}
uint16_t v = analogRead(BATTERY_PIN);
uint16_t v = 0;
if (!wifi) v = analogRead(BATTERY_PIN);
battery = map(constrain(v, BAT_LEVEL_EMPTY, BAT_LEVEL_FULL), BAT_LEVEL_EMPTY, BAT_LEVEL_FULL, 0, BAT_LEVEL_STAGE);
if (batteryold != battery) {

View File

@@ -2439,9 +2439,6 @@ void Infoboxprint(const char* input) {
}
}
MenuInfobox.fillSprite(BackgroundColor);
MenuInfobox.setTextColor(ActiveColor, ActiveColorSmooth, false);
if (newlineIndex != -1) {
char* line1 = (char*)malloc((newlineIndex + 1) * sizeof(char));
strncpy(line1, input, newlineIndex);
@@ -2450,14 +2447,11 @@ void Infoboxprint(const char* input) {
char* line2 = (char*)malloc((length - newlineIndex) * sizeof(char));
strcpy(line2, input + newlineIndex + 1);
MenuInfobox.drawString(line1, 146, 15);
MenuInfobox.drawString(line2, 146, 45);
tftPrint(0, line1, 155, 48, ActiveColor, ActiveColorSmooth, 28);
tftPrint(0, line2, 155, 78, ActiveColor, ActiveColorSmooth, 28);
free(line1);
free(line2);
} else {
MenuInfobox.drawString(input, 146, 15);
tftPrint(0, input, 155, 78, ActiveColor, ActiveColorSmooth, 28);
}
MenuInfobox.pushSprite(14, 34);
}

View File

@@ -72,10 +72,10 @@ void ShowAdvancedRDS() {
if (afstring.length() < 20) {
if (afstringold != afstring) {
xPos2 = 0;
AFSprite.fillSprite(BackgroundColor);
AFSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
AFSprite.drawString(afstring, xPos2, 2);
AFSprite.pushSprite(35, 197);
RDSSprite.fillSprite(BackgroundColor);
RDSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
RDSSprite.drawString(afstring, xPos2, 2);
RDSSprite.pushSprite(35, 197);
}
} else {
if (millis() - afticker >= 15) {
@@ -89,10 +89,10 @@ void ShowAdvancedRDS() {
aftickerhold = millis();
}
if (xPos2 < -tft.textWidth(afstring) + (charWidth * 14)) xPos2 = 0;
AFSprite.fillSprite(BackgroundColor);
AFSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
AFSprite.drawString(afstring, xPos2, 2);
AFSprite.pushSprite(35, 197);
RDSSprite.fillSprite(BackgroundColor);
RDSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
RDSSprite.drawString(afstring, xPos2, 2);
RDSSprite.pushSprite(35, 197);
afticker = millis();
}
}
@@ -109,10 +109,10 @@ void ShowAdvancedRDS() {
if (eonstring.length() < 20) {
if (eonstringold != eonstring) {
xPos3 = 0;
EONSprite.fillSprite(BackgroundColor);
EONSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
EONSprite.drawString(eonstring, xPos3, 2);
EONSprite.pushSprite(35, 172);
RDSSprite.fillSprite(BackgroundColor);
RDSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
RDSSprite.drawString(eonstring, xPos3, 2);
RDSSprite.pushSprite(35, 172);
}
} else {
if (millis() - eonticker >= 15) {
@@ -126,10 +126,10 @@ void ShowAdvancedRDS() {
eontickerhold = millis();
}
if (xPos3 < -tft.textWidth(eonstring) + (charWidth * 14)) xPos3 = 0;
EONSprite.fillSprite(BackgroundColor);
EONSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
EONSprite.drawString(eonstring, xPos3, 2);
EONSprite.pushSprite(35, 172);
RDSSprite.fillSprite(BackgroundColor);
RDSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
RDSSprite.drawString(eonstring, xPos3, 2);
RDSSprite.pushSprite(35, 172);
eonticker = millis();
}
}
@@ -146,10 +146,10 @@ void ShowAdvancedRDS() {
if (rtplusstring.length() < 20) {
if (rtplusstringold != rtplusstring) {
xPos4 = 0;
RTPlusSprite.fillSprite(BackgroundColor);
RTPlusSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
RTPlusSprite.drawString(rtplusstring, xPos4, 2);
RTPlusSprite.pushSprite(35, 146);
RDSSprite.fillSprite(BackgroundColor);
RDSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
RDSSprite.drawString(rtplusstring, xPos4, 2);
RDSSprite.pushSprite(35, 146);
}
} else {
if (millis() - rtplusticker >= 15) {
@@ -163,10 +163,10 @@ void ShowAdvancedRDS() {
rtplustickerhold = millis();
}
if (xPos4 < -tft.textWidth(rtplusstring) + (charWidth * 14)) xPos4 = 0;
RTPlusSprite.fillSprite(BackgroundColor);
RTPlusSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
RTPlusSprite.drawString(rtplusstring, xPos4, 2);
RTPlusSprite.pushSprite(35, 146);
RDSSprite.fillSprite(BackgroundColor);
RDSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
RDSSprite.drawString(rtplusstring, xPos4, 2);
RDSSprite.pushSprite(35, 146);
rtplusticker = millis();
}
}

View File

@@ -110,9 +110,7 @@ extern WiFiClient RemoteClient;
extern WiFiUDP Udp;
extern TFT_eSprite RadiotextSprite;
extern TFT_eSprite AdvRadiotextSprite;
extern TFT_eSprite EONSprite;
extern TFT_eSprite RTPlusSprite;
extern TFT_eSprite AFSprite;
extern TFT_eSprite RDSSprite;
void ShowAdvancedRDS();
void readRds();