Fixed PS data for StationList

This commit is contained in:
Sjef Verhoeven PE5PVB
2024-06-05 22:39:54 +02:00
parent f3c1487fb5
commit dc2c53ba3a
+52 -48
View File
@@ -669,64 +669,68 @@ void showPTY() {
void showPS() { void showPS() {
if (radio.rds.stationName != PSold || radio.rds.hasLongPS) { if (radio.rds.stationName != PSold || radio.rds.hasLongPS) {
if (!screenmute) { if (afscreen) {
if (afscreen) { if (!screenmute) tftReplace(0, PSold, radio.rds.stationName, 160, 201, BWAutoColor, BWAutoColorSmooth, BackgroundColor, 16);
tftReplace(0, PSold, radio.rds.stationName, 160, 201, BWAutoColor, BWAutoColorSmooth, BackgroundColor, 16); } else {
} else { if (radio.rds.hasLongPS) {
if (radio.rds.hasLongPS) { String stationNameLongString = String(radio.rds.stationNameLong) + " ";
String stationNameLongString = String(radio.rds.stationNameLong) + " "; if (stationNameLongString != stationNameLongOld) {
if (stationNameLongString != stationNameLongOld) { PSLongWidth = PSSprite.textWidth(stationNameLongString);
PSLongWidth = PSSprite.textWidth(stationNameLongString); stationNameLongOld = stationNameLongString;
stationNameLongOld = stationNameLongString; }
}
if (PSSprite.textWidth(radio.trimTrailingSpaces(radio.rds.stationNameLong)) < 150) { if (PSSprite.textWidth(radio.trimTrailingSpaces(radio.rds.stationNameLong)) < 150) {
xPos5 = 0; xPos5 = 0;
PSSprite.fillSprite(BackgroundColor); PSSprite.fillSprite(BackgroundColor);
if (RDSstatus) PSSprite.setTextColor(RDSColor, RDSColorSmooth, false); else PSSprite.setTextColor(RDSDropoutColor, RDSDropoutColorSmooth, false); if (RDSstatus) PSSprite.setTextColor(RDSColor, RDSColorSmooth, false); else PSSprite.setTextColor(RDSDropoutColor, RDSDropoutColorSmooth, false);
PSSprite.drawString(stationNameLongString, xPos5, 2); PSSprite.drawString(stationNameLongString, xPos5, 2);
} else { } else {
if (millis() - pslongticker >= 5) { if (millis() - pslongticker >= 5) {
if (xPos5 < -PSLongWidth) xPos5 = 0; if (xPos5 < -PSLongWidth) xPos5 = 0;
if (xPos5 == 0) { if (xPos5 == 0) {
if (millis() - pslongtickerhold >= 2000) { if (millis() - pslongtickerhold >= 2000) {
xPos5 --;
pslongtickerhold = millis();
}
} else {
xPos5 --; xPos5 --;
pslongtickerhold = millis(); pslongtickerhold = millis();
} }
PSSprite.fillSprite(BackgroundColor); } else {
if (RDSstatus) PSSprite.setTextColor(RDSColor, RDSColorSmooth, false); else PSSprite.setTextColor(RDSDropoutColor, RDSDropoutColorSmooth, false); xPos5 --;
PSSprite.drawString(stationNameLongString, xPos5, 2); pslongtickerhold = millis();
PSSprite.drawString(stationNameLongString, xPos5 + PSLongWidth, 2);
pslongticker = millis();
} }
PSSprite.fillSprite(BackgroundColor);
if (RDSstatus) PSSprite.setTextColor(RDSColor, RDSColorSmooth, false); else PSSprite.setTextColor(RDSDropoutColor, RDSDropoutColorSmooth, false);
PSSprite.drawString(stationNameLongString, xPos5, 2);
PSSprite.drawString(stationNameLongString, xPos5 + PSLongWidth, 2);
pslongticker = millis();
} }
} else {
xPos5 = 0;
PSSprite.fillSprite(BackgroundColor);
if (!RDSstatus || band > BAND_GAP) PSSprite.setTextColor(RDSDropoutColor, RDSDropoutColorSmooth, false); else PSSprite.setTextColor(RDSColor, RDSColorSmooth, false);
PSSprite.drawString(radio.rds.stationName, 0, 0);
} }
if (advancedRDS) PSSprite.pushSprite(36, 74); else PSSprite.pushSprite(36, 187); } else {
xPos5 = 0;
PSSprite.fillSprite(BackgroundColor);
if (!RDSstatus || band > BAND_GAP) PSSprite.setTextColor(RDSDropoutColor, RDSDropoutColorSmooth, false); else PSSprite.setTextColor(RDSColor, RDSColorSmooth, false);
PSSprite.drawString(radio.rds.stationName, 0, 0);
}
if (!screenmute) {
if (advancedRDS) {
PSSprite.pushSprite(36, 74);
} else {
PSSprite.pushSprite(36, 187);
}
} }
}
PSold = radio.rds.stationName;
if (wifi && PSold != radio.rds.stationName) { if (wifi && radio.rds.stationName.length() > 0 && PSold != radio.rds.stationName) {
Udp.beginPacket(remoteip, 9030); Udp.beginPacket(remoteip, 9030);
Udp.print("from=TEF_tuner " + String(stationlistid, DEC) + ";PS="); Udp.print("from=TEF_tuner " + String(stationlistid, DEC) + ";PS=");
char PShex[9]; char PShex[9];
radio.rds.stationName.toCharArray(PShex, 9); radio.rds.stationName.toCharArray(PShex, 9);
for (int i = 0; i < 8; i++) for (int i = 0; i < 8; i++)
{ {
if (PShex[i] < 0x10) Udp.print("0"); if (PShex[i] < 0x10) Udp.print("0");
if (PShex[i] == 0x20) PShex[i] = '_'; if (PShex[i] == 0x20) PShex[i] = '_';
Udp.print(String(PShex[i], HEX)); Udp.print(String(PShex[i], HEX));
}
Udp.endPacket();
} }
Udp.endPacket(); PSold = radio.rds.stationName;
} }
} }
} }