better scroll hold, and make everything use the class
This commit is contained in:
+6
-1
@@ -1486,7 +1486,11 @@ void TEF6686::readRDS(byte showrdserrors) {
|
||||
|
||||
case RDS_GROUP_15A: {
|
||||
if (pslong_process && rds.stationNameLong.length() > 0) rds.hasLongPS = true;
|
||||
uint8_t offset = (rds.rdsB & 7) * 4;
|
||||
uint8_t segment = rds.rdsB & 7;
|
||||
uint8_t offset = segment * 4;
|
||||
|
||||
if(segments_received_lps[segment] >= (rds.rdsCerror + rds.rdsBerror)) segments_received_lps[segment] = rds.rdsCerror + rds.rdsBerror;
|
||||
else return;
|
||||
|
||||
pslong_buffer2[offset + 0] = pslong_buffer[offset + 0];
|
||||
pslong_buffer2[offset + 1] = pslong_buffer[offset + 1];
|
||||
@@ -1629,6 +1633,7 @@ void TEF6686::clearRDS(bool fullsearchrds) {
|
||||
afmethodBprobe = afmethodBtrigger = _hasEnhancedRT = false;
|
||||
rds.ps12error = rds.ps34error = rds.ps56error = rds.ps78error = true;
|
||||
memset(segments_received, 99, sizeof(segments_received));
|
||||
memset(segments_received_lps, 99, sizeof(segments_received_lps));
|
||||
}
|
||||
|
||||
void TEF6686::tone(uint16_t time, int16_t amplitude, uint16_t frequency) {
|
||||
|
||||
+4
-6
@@ -204,8 +204,6 @@ int Squelchold;
|
||||
int SStatusold;
|
||||
int Stereostatus;
|
||||
int XDRBWset;
|
||||
int xPos;
|
||||
int xPos2;
|
||||
int16_t OStatus;
|
||||
int16_t SAvg;
|
||||
int16_t SAvg2;
|
||||
@@ -312,8 +310,6 @@ unsigned long ModulationpeakPreviousMillis;
|
||||
unsigned long NTPtimer;
|
||||
unsigned long peakholdmillis;
|
||||
unsigned long processed_rdsblocksold[33];
|
||||
unsigned long pslongticker;
|
||||
unsigned long pslongtickerhold;
|
||||
unsigned long rtticker;
|
||||
unsigned long rttickerhold;
|
||||
unsigned long rotarytimer;
|
||||
@@ -351,7 +347,9 @@ WiFiClient RemoteClient;
|
||||
WiFiUDP Udp;
|
||||
WebServer webserver(80);
|
||||
|
||||
ScrollingTextDisplay rtplusDisplay(&GeneralTextSprite, 147, 173, 19);
|
||||
ScrollingTextDisplay eonDisplay(&GeneralTextSprite, 174, 173, 19);
|
||||
ScrollingTextDisplay aidDisplay(&FullLineSprite, 220, 270, 5);
|
||||
ScrollingTextDisplay lpsDisplay(&PSSprite, 0, 150);
|
||||
ScrollingTextDisplay rtplusDisplay(&GeneralTextSprite, 147, 173, 35, 19);
|
||||
ScrollingTextDisplay eonDisplay(&GeneralTextSprite, 174, 173, 35, 19);
|
||||
ScrollingTextDisplay eccDisplay(&FullLineSprite, 198, 270);
|
||||
ScrollingTextDisplay rtDisplay(&FullLineSprite, 220, 270);
|
||||
+3
-7
@@ -608,9 +608,7 @@ void BuildAFScreen() {
|
||||
rds_clockold = "";
|
||||
dropout = false;
|
||||
rdsreset = true;
|
||||
rtplusDisplay.reset();
|
||||
eonDisplay.reset();
|
||||
eccDisplay.reset();
|
||||
aidDisplay.reset();
|
||||
for (byte i = 0; i < 20; i++) {
|
||||
mappedfreqold[i] = 0;
|
||||
mappedfreqold2[i] = 0;
|
||||
@@ -2980,9 +2978,8 @@ void BuildAdvancedRDS() {
|
||||
dropout = false;
|
||||
rdsreset = true;
|
||||
ShowMemoryPos();
|
||||
xPos = 0;
|
||||
xPos2 = 0;
|
||||
rtplusDisplay.reset();
|
||||
lpsDisplay.reset();
|
||||
eonDisplay.reset();
|
||||
eccDisplay.reset();
|
||||
rtDisplay.reset();
|
||||
@@ -3109,6 +3106,7 @@ void BuildDisplay() {
|
||||
BWreset = true;
|
||||
dropout = false;
|
||||
rtplusDisplay.reset();
|
||||
lpsDisplay.reset();
|
||||
eonDisplay.reset();
|
||||
eccDisplay.reset();
|
||||
rtDisplay.reset();
|
||||
@@ -3124,8 +3122,6 @@ void BuildDisplay() {
|
||||
radio.rds.hasTMC.call();
|
||||
radio.rds.hasCT.call();
|
||||
radio.rds.hasRTplus.call();
|
||||
xPos = 0;
|
||||
xPos2 = 0;
|
||||
MPold = 99;
|
||||
USold = 99;
|
||||
}
|
||||
|
||||
+4
-54
@@ -437,32 +437,9 @@ void showPS() {
|
||||
stationNameLongOld = stationNameLongString;
|
||||
}
|
||||
|
||||
// Handle scrolling logic for long PS
|
||||
if (PSSprite.textWidth(trimTrailingSpaces(radio.rds.stationNameLong)) < 150) {
|
||||
xPos2 = 0;
|
||||
PSSprite.fillSprite(BackgroundColor);
|
||||
PSSprite.setTextColor(RDSstatus ? RDSColor : RDSDropoutColor, RDSstatus ? RDSColorSmooth : RDSDropoutColorSmooth, false);
|
||||
PSSprite.drawString(stationNameLongString, xPos2, 2);
|
||||
} else {
|
||||
if (millis() - pslongticker >= 5) {
|
||||
if (xPos2 == 0 && millis() - pslongtickerhold < 2000) {
|
||||
// Hold at position 0
|
||||
} else {
|
||||
xPos2--;
|
||||
pslongtickerhold = millis();
|
||||
}
|
||||
|
||||
if (xPos2 < -PSLongWidth) xPos2 = 0;
|
||||
pslongticker = millis();
|
||||
}
|
||||
|
||||
PSSprite.fillSprite(BackgroundColor);
|
||||
PSSprite.setTextColor(RDSstatus ? RDSColor : RDSDropoutColor, RDSstatus ? RDSColorSmooth : RDSDropoutColorSmooth, false);
|
||||
PSSprite.drawString(stationNameLongString, xPos2 + 8, 2);
|
||||
PSSprite.drawString(stationNameLongString, xPos2 + PSLongWidth, 2);
|
||||
}
|
||||
lpsDisplay.update(stationNameLongString, RDSstatus, RDSColor, RDSColorSmooth, RDSDropoutColor, RDSDropoutColorSmooth, BackgroundColor);
|
||||
} else {
|
||||
xPos2 = 0;
|
||||
lpsDisplay.reset();
|
||||
PSSprite.fillSprite(BackgroundColor);
|
||||
|
||||
for (int i = 0; i < 7; i++) {
|
||||
@@ -491,7 +468,7 @@ void showPS() {
|
||||
if (PSold != radio.rds.stationName) ps12errorold = ps34errorold = ps56errorold = ps78errorold = true;
|
||||
}
|
||||
|
||||
if (!screenmute) PSSprite.pushSprite(36, advancedRDS ? 72 : 185);
|
||||
if (!screenmute) PSSprite.pushSprite(36, advancedRDS ? 72 : 185, TFT_TRANSPARENT);
|
||||
|
||||
if (wifi && radio.rds.stationName.length() > 0 && PSold != radio.rds.stationName) {
|
||||
Udp.beginPacket(remoteip, 9030);
|
||||
@@ -762,34 +739,7 @@ void ShowAFEON() {
|
||||
}
|
||||
}
|
||||
|
||||
if (FullLineSprite.textWidth(trimTrailingSpaces(AIDString)) < 270) {
|
||||
xPos = 0;
|
||||
FullLineSprite.fillSprite(BackgroundColor);
|
||||
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||
FullLineSprite.drawString(AIDString, xPos, 2);
|
||||
FullLineSprite.drawLine(283, 0, 283, 19, FrameColor);
|
||||
FullLineSprite.pushSprite(5, 220);
|
||||
} else {
|
||||
if (millis() - rtticker >= 5) {
|
||||
if (xPos < -AIDWidth) xPos = 0;
|
||||
if (xPos == 0) {
|
||||
if (millis() - rttickerhold >= 2000) {
|
||||
xPos--;
|
||||
rttickerhold = millis();
|
||||
}
|
||||
} else {
|
||||
xPos--;
|
||||
rttickerhold = millis();
|
||||
}
|
||||
FullLineSprite.fillSprite(BackgroundColor);
|
||||
FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false);
|
||||
FullLineSprite.drawString(AIDString, xPos, 2);
|
||||
FullLineSprite.drawString(AIDString, xPos + AIDWidth, 2);
|
||||
FullLineSprite.drawLine(314, 0, 314, 19, FrameColor);
|
||||
FullLineSprite.pushSprite(5, 220);
|
||||
rtticker = millis();
|
||||
}
|
||||
}
|
||||
aidDisplay.update(AIDString, true, ActiveColor, ActiveColorSmooth, 0, 0, BackgroundColor);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user