little funcitonal changes, just performance

This commit is contained in:
2026-01-07 21:42:22 +01:00
parent aa5bd3f847
commit 3a92d1cdf1
9 changed files with 297 additions and 308 deletions
+2 -2
View File
@@ -434,7 +434,7 @@ const DABFrequencyLabel DABfrequencyTable[] = {
typedef struct _rds_ { typedef struct _rds_ {
byte region; byte region;
byte PTY; Detector<byte, 1> PTY{0};
String stationName; String stationName;
String stationText; String stationText;
String stationText32; String stationText32;
@@ -461,7 +461,7 @@ typedef struct _rds_ {
uint32_t dabaffreq; uint32_t dabaffreq;
byte aid_counter; byte aid_counter;
byte fastps; byte fastps;
unsigned int ECC; Detector<unsigned int, 1> ECC;
bool rdsAerror; bool rdsAerror;
bool rdsBerror; bool rdsBerror;
bool rdsCerror; bool rdsCerror;
+1 -3
View File
@@ -122,7 +122,6 @@ extern byte ContrastSet;
extern byte CurrentSkin; extern byte CurrentSkin;
extern byte CurrentTheme; extern byte CurrentTheme;
extern byte displayflip; extern byte displayflip;
extern byte ECCold;
extern byte eonptyold[20]; extern byte eonptyold[20];
extern byte EQset; extern byte EQset;
extern byte fmagc; extern byte fmagc;
@@ -173,7 +172,7 @@ extern byte stepsize;
extern byte StereoLevel; extern byte StereoLevel;
extern byte subnetclient; extern byte subnetclient;
extern byte TEF, tot, tunemode; extern byte TEF, tot, tunemode;
extern byte unit, spispeed, programTypePrevious; extern byte unit, spispeed;
extern char buff[16]; extern char buff[16];
extern char eonpicodeold[20][6]; extern char eonpicodeold[20][6];
extern const uint8_t* currentFont; extern const uint8_t* currentFont;
@@ -249,7 +248,6 @@ extern int xPos2;
extern int xPos3; extern int xPos3;
extern int xPos4; extern int xPos4;
extern int xPos5; extern int xPos5;
extern int xPos6;
extern int16_t OStatus; extern int16_t OStatus;
extern int16_t SAvg; extern int16_t SAvg;
extern int16_t SAvg2; extern int16_t SAvg2;
+249 -248
View File
@@ -535,7 +535,7 @@ void TEF6686::readRDS(byte showrdserrors) {
if(bitRead(rds.rdsStat, 12) && (rdsgroup & 1) == 0) goto end; // Modulation says type B, but data says otherwise? Dunno what to treat it as, thus skip if(bitRead(rds.rdsStat, 12) && (rdsgroup & 1) == 0) goto end; // Modulation says type B, but data says otherwise? Dunno what to treat it as, thus skip
rds.TP = (bitRead(rds.rdsB, 10)); rds.TP = (bitRead(rds.rdsB, 10));
rds.PTY = (rds.rdsB >> 5) & 0x1F; rds.PTY.set((rds.rdsB >> 5) & 0x1F);
rds.blockcounter[rdsgroup]++; rds.blockcounter[rdsgroup]++;
processed_rdsblocks++; processed_rdsblocks++;
@@ -760,297 +760,297 @@ void TEF6686::readRDS(byte showrdserrors) {
case RDS_GROUP_1A: { case RDS_GROUP_1A: {
if (!rdsCerrorThreshold && ((rds.rdsC >> 12) & 0x07) == 0) { if (!rdsCerrorThreshold && ((rds.rdsC >> 12) & 0x07) == 0) {
rds.ECC = rds.rdsC & 0xff; rds.ECC.set(rds.rdsC & 0xff);
rds.hasECC = true; rds.hasECC = true;
switch (rds.picode[0]) { switch (rds.picode[0]) {
case '1': { case '1': {
if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; if (rds.ECC.get() == 0xA0) rds.ECCtext = ECCtext[226];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[129]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[129];
else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[136]; else if (rds.ECC.get() == 0xA3) rds.ECCtext = ECCtext[136];
else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[152]; else if (rds.ECC.get() == 0xA4) rds.ECCtext = ECCtext[152];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[104]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[104];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[73]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[73];
else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[83]; else if (rds.ECC.get() == 0xD2) rds.ECCtext = ECCtext[83];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[0]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[0];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[1]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[1];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[2]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[2];
else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[59]; else if (rds.ECC.get() == 0xE3) rds.ECCtext = ECCtext[59];
else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[3]; else if (rds.ECC.get() == 0xE4) rds.ECCtext = ECCtext[3];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[179]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[179];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[197]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[197];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[124]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[124];
else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[200]; else if (rds.ECC.get() == 0xF3) rds.ECCtext = ECCtext[200];
break; break;
} }
case '2': { case '2': {
if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; if (rds.ECC.get() == 0xA0) rds.ECCtext = ECCtext[226];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[130]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[130];
else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[141]; else if (rds.ECC.get() == 0xA3) rds.ECCtext = ECCtext[141];
else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[155]; else if (rds.ECC.get() == 0xA4) rds.ECCtext = ECCtext[155];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[106]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[106];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[126]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[126];
else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[95]; else if (rds.ECC.get() == 0xD2) rds.ECCtext = ECCtext[95];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[4]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[4];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[5]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[5];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[6]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[6];
else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[7]; else if (rds.ECC.get() == 0xE3) rds.ECCtext = ECCtext[7];
else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[8]; else if (rds.ECC.get() == 0xE4) rds.ECCtext = ECCtext[8];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[180]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[180];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[187]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[187];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[77]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[77];
else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[218]; else if (rds.ECC.get() == 0xF3) rds.ECCtext = ECCtext[218];
break; break;
} }
case '3': { case '3': {
if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; if (rds.ECC.get() == 0xA0) rds.ECCtext = ECCtext[226];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[224]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[224];
else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[156]; else if (rds.ECC.get() == 0xA3) rds.ECCtext = ECCtext[156];
else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[132]; else if (rds.ECC.get() == 0xA4) rds.ECCtext = ECCtext[132];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[112]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[112];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[119]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[119];
else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[72]; else if (rds.ECC.get() == 0xD2) rds.ECCtext = ECCtext[72];
else if (rds.ECC == 0xD3) rds.ECCtext = ECCtext[92]; else if (rds.ECC.get() == 0xD3) rds.ECCtext = ECCtext[92];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[9]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[9];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[10]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[10];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[11]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[11];
else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[12]; else if (rds.ECC.get() == 0xE3) rds.ECCtext = ECCtext[12];
else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[16]; else if (rds.ECC.get() == 0xE4) rds.ECCtext = ECCtext[16];
else if (rds.ECC == 0xE5) rds.ECCtext = ECCtext[63]; else if (rds.ECC.get() == 0xE5) rds.ECCtext = ECCtext[63];
else if (rds.ECC == 0xE6) rds.ECCtext = ECCtext[228]; else if (rds.ECC.get() == 0xE6) rds.ECCtext = ECCtext[228];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[181]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[181];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[227]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[227];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[189]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[189];
else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[219]; else if (rds.ECC.get() == 0xF3) rds.ECCtext = ECCtext[219];
break; break;
} }
case '4': { case '4': {
if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; if (rds.ECC.get() == 0xA0) rds.ECCtext = ECCtext[226];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[148]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[148];
else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[157]; else if (rds.ECC.get() == 0xA3) rds.ECCtext = ECCtext[157];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[127]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[127];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[69]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[69];
else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[91]; else if (rds.ECC.get() == 0xD2) rds.ECCtext = ECCtext[91];
else if (rds.ECC == 0xD3) rds.ECCtext = ECCtext[103]; else if (rds.ECC.get() == 0xD3) rds.ECCtext = ECCtext[103];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[13]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[13];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[14]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[14];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[15]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[15];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[182]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[182];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[210]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[210];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[213]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[213];
break; break;
} }
case '5': { case '5': {
if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; if (rds.ECC.get() == 0xA0) rds.ECCtext = ECCtext[226];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[133]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[133];
else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[159]; else if (rds.ECC.get() == 0xA4) rds.ECCtext = ECCtext[159];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[68]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[68];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[79]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[79];
else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[88]; else if (rds.ECC.get() == 0xD2) rds.ECCtext = ECCtext[88];
else if (rds.ECC == 0xD3) rds.ECCtext = ECCtext[78]; else if (rds.ECC.get() == 0xD3) rds.ECCtext = ECCtext[78];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[17]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[17];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[18]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[18];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[19]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[19];
else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[65]; else if (rds.ECC.get() == 0xE3) rds.ECCtext = ECCtext[65];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[183]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[183];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[191]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[191];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[193]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[193];
break; break;
} }
case '6': { case '6': {
if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; if (rds.ECC.get() == 0xA0) rds.ECCtext = ECCtext[226];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[134]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[134];
else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[163]; else if (rds.ECC.get() == 0xA3) rds.ECCtext = ECCtext[163];
else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[171]; else if (rds.ECC.get() == 0xA4) rds.ECCtext = ECCtext[171];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[96]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[96];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[105]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[105];
else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[123]; else if (rds.ECC.get() == 0xD2) rds.ECCtext = ECCtext[123];
else if (rds.ECC == 0xD3) rds.ECCtext = ECCtext[125]; else if (rds.ECC.get() == 0xD3) rds.ECCtext = ECCtext[125];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[20]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[20];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[21]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[21];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[22]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[22];
else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[24]; else if (rds.ECC.get() == 0xE3) rds.ECCtext = ECCtext[24];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[184]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[184];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[76]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[76];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[201]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[201];
break; break;
} }
case '7': { case '7': {
if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; if (rds.ECC.get() == 0xA0) rds.ECCtext = ECCtext[226];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[139]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[139];
else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[161]; else if (rds.ECC.get() == 0xA3) rds.ECCtext = ECCtext[161];
else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[164]; else if (rds.ECC.get() == 0xA4) rds.ECCtext = ECCtext[164];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[113]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[113];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[81]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[81];
else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[84]; else if (rds.ECC.get() == 0xD2) rds.ECCtext = ECCtext[84];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[25]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[25];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[26]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[26];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[27]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[27];
else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[62]; else if (rds.ECC.get() == 0xE4) rds.ECCtext = ECCtext[62];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[185]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[185];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[207]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[207];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[221]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[221];
break; break;
} }
case '8': { case '8': {
if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; if (rds.ECC.get() == 0xA0) rds.ECCtext = ECCtext[226];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[142]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[142];
else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[170]; else if (rds.ECC.get() == 0xA4) rds.ECCtext = ECCtext[170];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[116]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[116];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[117]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[117];
else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[74]; else if (rds.ECC.get() == 0xD2) rds.ECCtext = ECCtext[74];
else if (rds.ECC == 0xD3) rds.ECCtext = ECCtext[82]; else if (rds.ECC.get() == 0xD3) rds.ECCtext = ECCtext[82];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[28]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[28];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[29]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[29];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[30]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[30];
else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[31]; else if (rds.ECC.get() == 0xE3) rds.ECCtext = ECCtext[31];
else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[32]; else if (rds.ECC.get() == 0xE4) rds.ECCtext = ECCtext[32];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[186]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[186];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[195]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[195];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[212]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[212];
else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[190]; else if (rds.ECC.get() == 0xF3) rds.ECCtext = ECCtext[190];
break; break;
} }
case '9': { case '9': {
if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; if (rds.ECC.get() == 0xA0) rds.ECCtext = ECCtext[226];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[143]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[143];
else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[162]; else if (rds.ECC.get() == 0xA3) rds.ECCtext = ECCtext[162];
else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[174]; else if (rds.ECC.get() == 0xA4) rds.ECCtext = ECCtext[174];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[120]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[120];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[102]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[102];
else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[107]; else if (rds.ECC.get() == 0xD2) rds.ECCtext = ECCtext[107];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[33]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[33];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[34]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[34];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[35]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[35];
else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[36]; else if (rds.ECC.get() == 0xE3) rds.ECCtext = ECCtext[36];
else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[37]; else if (rds.ECC.get() == 0xE4) rds.ECCtext = ECCtext[37];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[80]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[80];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[209]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[209];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[196]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[196];
else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[211]; else if (rds.ECC.get() == 0xF3) rds.ECCtext = ECCtext[211];
else if (rds.ECC == 0xF4) rds.ECCtext = ECCtext[190]; else if (rds.ECC.get() == 0xF4) rds.ECCtext = ECCtext[190];
break; break;
} }
case 'A': { case 'A': {
if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; if (rds.ECC.get() == 0xA0) rds.ECCtext = ECCtext[226];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[131]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[131];
else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[144]; else if (rds.ECC.get() == 0xA3) rds.ECCtext = ECCtext[144];
else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[166]; else if (rds.ECC.get() == 0xA4) rds.ECCtext = ECCtext[166];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[85]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[85];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[97]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[97];
else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[121]; else if (rds.ECC.get() == 0xD2) rds.ECCtext = ECCtext[121];
else if (rds.ECC == 0xD3) rds.ECCtext = ECCtext[70]; else if (rds.ECC.get() == 0xD3) rds.ECCtext = ECCtext[70];
else if (rds.ECC == 0xD4) rds.ECCtext = ECCtext[86]; else if (rds.ECC.get() == 0xD4) rds.ECCtext = ECCtext[86];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[38]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[38];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[39]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[39];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[40]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[40];
else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[41]; else if (rds.ECC.get() == 0xE3) rds.ECCtext = ECCtext[41];
else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[60]; else if (rds.ECC.get() == 0xE4) rds.ECCtext = ECCtext[60];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[178]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[178];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[215]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[215];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[214]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[214];
break; break;
} }
case 'B': { case 'B': {
if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; if (rds.ECC.get() == 0xA0) rds.ECCtext = ECCtext[226];
else if (rds.ECC == 0xA1) rds.ECCtext = ECCtext[138]; else if (rds.ECC.get() == 0xA1) rds.ECCtext = ECCtext[138];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[137]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[137];
else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[145]; else if (rds.ECC.get() == 0xA3) rds.ECCtext = ECCtext[145];
else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[167]; else if (rds.ECC.get() == 0xA4) rds.ECCtext = ECCtext[167];
else if (rds.ECC == 0xA5) rds.ECCtext = ECCtext[158]; else if (rds.ECC.get() == 0xA5) rds.ECCtext = ECCtext[158];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[101]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[101];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[100]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[100];
else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[109]; else if (rds.ECC.get() == 0xD2) rds.ECCtext = ECCtext[109];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[42]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[42];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[43]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[43];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[44]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[44];
else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[61]; else if (rds.ECC.get() == 0xE3) rds.ECCtext = ECCtext[61];
else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[66]; else if (rds.ECC.get() == 0xE4) rds.ECCtext = ECCtext[66];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[206]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[206];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[188]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[188];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[203]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[203];
else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[93]; else if (rds.ECC.get() == 0xF3) rds.ECCtext = ECCtext[93];
else if (rds.ECC == 0xF4) rds.ECCtext = ECCtext[204]; else if (rds.ECC.get() == 0xF4) rds.ECCtext = ECCtext[204];
break; break;
} }
case 'C': { case 'C': {
if (rds.ECC == 0xA1) rds.ECCtext = ECCtext[138]; if (rds.ECC.get() == 0xA1) rds.ECCtext = ECCtext[138];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[223]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[223];
else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[140]; else if (rds.ECC.get() == 0xA3) rds.ECCtext = ECCtext[140];
else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[146]; else if (rds.ECC.get() == 0xA4) rds.ECCtext = ECCtext[146];
else if (rds.ECC == 0xA5) rds.ECCtext = ECCtext[169]; else if (rds.ECC.get() == 0xA5) rds.ECCtext = ECCtext[169];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[110]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[110];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[108]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[108];
else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[111]; else if (rds.ECC.get() == 0xD2) rds.ECCtext = ECCtext[111];
else if (rds.ECC == 0xD3) rds.ECCtext = ECCtext[87]; else if (rds.ECC.get() == 0xD3) rds.ECCtext = ECCtext[87];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[45]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[45];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[46]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[46];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[47]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[47];
else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[48]; else if (rds.ECC.get() == 0xE3) rds.ECCtext = ECCtext[48];
else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[118]; else if (rds.ECC.get() == 0xE4) rds.ECCtext = ECCtext[118];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[190]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[190];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[216]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[216];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[194]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[194];
break; break;
} }
case 'D': { case 'D': {
if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; if (rds.ECC.get() == 0xA0) rds.ECCtext = ECCtext[226];
else if (rds.ECC == 0xA1) rds.ECCtext = ECCtext[138]; else if (rds.ECC.get() == 0xA1) rds.ECCtext = ECCtext[138];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[225]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[225];
else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[150]; else if (rds.ECC.get() == 0xA3) rds.ECCtext = ECCtext[150];
else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[154]; else if (rds.ECC.get() == 0xA4) rds.ECCtext = ECCtext[154];
else if (rds.ECC == 0xA5) rds.ECCtext = ECCtext[158]; else if (rds.ECC.get() == 0xA5) rds.ECCtext = ECCtext[158];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[90]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[90];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[89]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[89];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[0]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[0];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[49]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[49];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[23]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[23];
else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[122]; else if (rds.ECC.get() == 0xE3) rds.ECCtext = ECCtext[122];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[198]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[198];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[217]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[217];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[128]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[128];
break; break;
} }
case 'E': { case 'E': {
if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; if (rds.ECC.get() == 0xA0) rds.ECCtext = ECCtext[226];
else if (rds.ECC == 0xA1) rds.ECCtext = ECCtext[138]; else if (rds.ECC.get() == 0xA1) rds.ECCtext = ECCtext[138];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[151]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[151];
else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[172]; else if (rds.ECC.get() == 0xA3) rds.ECCtext = ECCtext[172];
else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[175]; else if (rds.ECC.get() == 0xA4) rds.ECCtext = ECCtext[175];
else if (rds.ECC == 0xA5) rds.ECCtext = ECCtext[158]; else if (rds.ECC.get() == 0xA5) rds.ECCtext = ECCtext[158];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[99]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[99];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[115]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[115];
else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[94]; else if (rds.ECC.get() == 0xD2) rds.ECCtext = ECCtext[94];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[50]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[50];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[51]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[51];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[52]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[52];
else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[53]; else if (rds.ECC.get() == 0xE3) rds.ECCtext = ECCtext[53];
else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[64]; else if (rds.ECC.get() == 0xE4) rds.ECCtext = ECCtext[64];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[98]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[98];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[199]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[199];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[208]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[208];
else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[205]; else if (rds.ECC.get() == 0xF3) rds.ECCtext = ECCtext[205];
break; break;
} }
case 'F': { case 'F': {
if (rds.ECC == 0xA1) rds.ECCtext = ECCtext[149]; if (rds.ECC.get() == 0xA1) rds.ECCtext = ECCtext[149];
else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[222]; else if (rds.ECC.get() == 0xA2) rds.ECCtext = ECCtext[222];
else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[153]; else if (rds.ECC.get() == 0xA3) rds.ECCtext = ECCtext[153];
else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[176]; else if (rds.ECC.get() == 0xA4) rds.ECCtext = ECCtext[176];
else if (rds.ECC == 0xA5) rds.ECCtext = ECCtext[158]; else if (rds.ECC.get() == 0xA5) rds.ECCtext = ECCtext[158];
else if (rds.ECC == 0xA6) rds.ECCtext = ECCtext[168]; else if (rds.ECC.get() == 0xA6) rds.ECCtext = ECCtext[168];
else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[67]; else if (rds.ECC.get() == 0xD0) rds.ECCtext = ECCtext[67];
else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[75]; else if (rds.ECC.get() == 0xD1) rds.ECCtext = ECCtext[75];
else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[114]; else if (rds.ECC.get() == 0xD2) rds.ECCtext = ECCtext[114];
else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[54]; else if (rds.ECC.get() == 0xE0) rds.ECCtext = ECCtext[54];
else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[55]; else if (rds.ECC.get() == 0xE1) rds.ECCtext = ECCtext[55];
else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[56]; else if (rds.ECC.get() == 0xE2) rds.ECCtext = ECCtext[56];
else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[57]; else if (rds.ECC.get() == 0xE3) rds.ECCtext = ECCtext[57];
else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[58]; else if (rds.ECC.get() == 0xE4) rds.ECCtext = ECCtext[58];
else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[202]; else if (rds.ECC.get() == 0xF0) rds.ECCtext = ECCtext[202];
else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[192]; else if (rds.ECC.get() == 0xF1) rds.ECCtext = ECCtext[192];
else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[220]; else if (rds.ECC.get() == 0xF2) rds.ECCtext = ECCtext[220];
else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[71]; else if (rds.ECC.get() == 0xF3) rds.ECCtext = ECCtext[71];
break; break;
} }
default: { default: {
@@ -1596,9 +1596,10 @@ void TEF6686::clearRDS(bool fullsearchrds) {
for (uint8_t i = 0; i < 10; i++) rds.aid[i] = 0; for (uint8_t i = 0; i < 10; i++) rds.aid[i] = 0;
rdsgroup = rds.ECC = 254; rdsgroup = 254;
rds.ECC.set(0);
rds.dabaffreq = rds.correctPI = correctPIold = processed_rdsblocks = piold = 0; rds.dabaffreq = rds.correctPI = correctPIold = processed_rdsblocks = piold = 0;
rds.PTY = 32; rds.PTY.set(0);
rds.hasECC = rds.hasRT = rds.hasRDS = false; rds.hasECC = rds.hasRT = rds.hasRDS = false;
rds.TP = rds.hasAF = rds.hasTA = false; rds.TP = rds.hasAF = rds.hasTA = false;
rds.hasEON = rds.hasCT = false; rds.hasEON = rds.hasCT = false;
+4 -4
View File
@@ -55,16 +55,16 @@ bool Tuner_WriteBuffer(unsigned char *buf, uint16_t len) {
for (uint16_t i = 0; i < len; i++) Wire.write(buf[i]); for (uint16_t i = 0; i < len; i++) Wire.write(buf[i]);
uint8_t r = Wire.endTransmission(); uint8_t r = Wire.endTransmission();
if (!Data_Accelerator) delay(2); if (!Data_Accelerator) delay(2);
return (r == 0) ? 1 : 0; return (r == 0) ? true : false;
} }
bool Tuner_ReadBuffer(unsigned char *buf, uint16_t len) { bool Tuner_ReadBuffer(unsigned char *buf, uint16_t len) {
Wire.requestFrom(0x64, len); Wire.requestFrom(0x64, len);
if (Wire.available() == len) { if (Wire.available() == len) {
for (uint16_t i = 0; i < len; i++) buf[i] = Wire.read(); for (uint16_t i = 0; i < len; i++) buf[i] = Wire.read();
return 1; return true;
} }
return 0; return false;
} }
static void Tuner_Patch_Load(const unsigned char *pLutBytes, uint16_t size) { static void Tuner_Patch_Load(const unsigned char *pLutBytes, uint16_t size) {
@@ -87,7 +87,7 @@ static void Tuner_Patch_Load(const unsigned char *pLutBytes, uint16_t size) {
bool Tuner_Table_Write(const unsigned char *tab) { bool Tuner_Table_Write(const unsigned char *tab) {
if (tab[1] == 0xff) { if (tab[1] == 0xff) {
delay(tab[2]); delay(tab[2]);
return 1; return true;
} else return Tuner_WriteBuffer((unsigned char *)&tab[1], tab[0]); } else return Tuner_WriteBuffer((unsigned char *)&tab[1], tab[0]);
} }
+1 -3
View File
@@ -103,7 +103,6 @@ byte ContrastSet;
byte CurrentSkin; byte CurrentSkin;
byte CurrentTheme; byte CurrentTheme;
byte displayflip; byte displayflip;
byte ECCold;
byte eonptyold[20]; byte eonptyold[20];
byte EQset; byte EQset;
byte fmagc; byte fmagc;
@@ -154,7 +153,7 @@ byte stepsize;
byte StereoLevel; byte StereoLevel;
byte subnetclient; byte subnetclient;
byte TEF, tot, tunemode; byte TEF, tot, tunemode;
byte unit, spispeed, programTypePrevious; byte unit, spispeed;
char buff[16]; char buff[16];
char eonpicodeold[20][6]; char eonpicodeold[20][6];
const uint8_t* currentFont = nullptr; const uint8_t* currentFont = nullptr;
@@ -230,7 +229,6 @@ int xPos2;
int xPos3; int xPos3;
int xPos4; int xPos4;
int xPos5; int xPos5;
int xPos6;
int16_t OStatus; int16_t OStatus;
int16_t SAvg; int16_t SAvg;
int16_t SAvg2; int16_t SAvg2;
-4
View File
@@ -2974,9 +2974,6 @@ void BuildAdvancedRDS() {
batteryold = 6; batteryold = 6;
batteryVold = 0; batteryVold = 0;
vPerold = 0; vPerold = 0;
ECCold = 253;
programTypePrevious = 32;
ptynold = " ";
PIold = " "; PIold = " ";
PSold = " "; PSold = " ";
stationIDold = " "; stationIDold = " ";
@@ -3110,7 +3107,6 @@ void BuildDisplay() {
TPold = false; TPold = false;
haseonold = false; haseonold = false;
rds_clockold = ""; rds_clockold = "";
programTypePrevious = 32;
PIold = " "; PIold = " ";
PSold = " "; PSold = " ";
stationIDold = " "; stationIDold = " ";
+4 -4
View File
@@ -225,11 +225,11 @@ byte addRowToCSV() {
String TA = radio.rds.hasTA ? "" : " "; String TA = radio.rds.hasTA ? "" : " ";
String TP = radio.rds.TP ? "" : " "; String TP = radio.rds.TP ? "" : " ";
String Stereo = radio.getStereoStatus() ? "" : " "; String Stereo = radio.getStereoStatus() ? "" : " ";
String pty = String(radio.rds.PTY); String pty = String(radio.rds.PTY.get());
String ECC = "--"; String ECC = "--";
if (radio.rds.hasECC) { if (radio.rds.hasECC) {
char eccBuffer[3]; char eccBuffer[3];
snprintf(eccBuffer, sizeof(eccBuffer), "%02X", radio.rds.ECC); // Format ECC as uppercase 2-digit hex snprintf(eccBuffer, sizeof(eccBuffer), "%02X", radio.rds.ECC.get()); // Format ECC as uppercase 2-digit hex
ECC = String(eccBuffer); ECC = String(eccBuffer);
} }
@@ -382,7 +382,7 @@ void sendUDPlog() {
String ECC = ""; String ECC = "";
if (radio.rds.hasECC) { if (radio.rds.hasECC) {
char eccBuffer[3]; char eccBuffer[3];
snprintf(eccBuffer, sizeof(eccBuffer), "%02X", radio.rds.ECC); snprintf(eccBuffer, sizeof(eccBuffer), "%02X", radio.rds.ECC.get());
ECC = String(eccBuffer); ECC = String(eccBuffer);
} }
@@ -418,7 +418,7 @@ void sendUDPlog() {
String row = CHIP + "," + VERSION + "," + String(scandxmode) + "," + String row = CHIP + "," + VERSION + "," + String(scandxmode) + "," +
currentDateTime + "," + frequencyFormatted + "," + String(radio.rds.picode).substring(0, 4) + "," + currentDateTime + "," + frequencyFormatted + "," + String(radio.rds.picode).substring(0, 4) + "," +
signal + "," + String(radio.getStereoStatus()) + "," + String(radio.rds.hasTA) + "," + signal + "," + String(radio.getStereoStatus()) + "," + String(radio.rds.hasTA) + "," +
String(radio.rds.TP) + "," + String(radio.rds.hasTMC.get()) + "," + String(radio.rds.PTY) + "," + String(radio.rds.TP) + "," + String(radio.rds.hasTMC.get()) + "," + String(radio.rds.PTY.get()) + "," +
ECC + "," + stationName + "," + radioTextModified + "," + ECC + "," + stationName + "," + radioTextModified + "," +
AF + "," + EON + "," + RTPLUS + "\n"; AF + "," + EON + "," + RTPLUS + "\n";
-1
View File
@@ -3159,7 +3159,6 @@ void ShowFreq(int mode) {
if (spispeed == 7) setAutoSpeedSPI(); if (spispeed == 7) setAutoSpeedSPI();
rdsreset = true; rdsreset = true;
ECCold = 253;
afmethodBold = false; afmethodBold = false;
aid_counterold = 0; aid_counterold = 0;
dropout = false; dropout = false;
+36 -39
View File
@@ -57,7 +57,7 @@ void ShowAdvancedRDS() {
hasafold = radio.rds.hasAF; hasafold = radio.rds.hasAF;
} }
if (ECCold != radio.rds.ECC) { if (radio.rds.ECC.changed(0)) {
if (!screenmute) { if (!screenmute) {
if (radio.rds.hasECC) ECCString = (radio.rds.ECCtext.length() == 0 ? textUI(73) : radio.rds.ECCtext); else ECCString = "N/A"; if (radio.rds.hasECC) ECCString = (radio.rds.ECCtext.length() == 0 ? textUI(73) : radio.rds.ECCtext); else ECCString = "N/A";
if (ECCString != ECColdString) { if (ECCString != ECColdString) {
@@ -67,27 +67,27 @@ void ShowAdvancedRDS() {
} }
if (eccstringWidth < 270) { if (eccstringWidth < 270) {
xPos6 = 0; xPos2 = 0;
RDSSprite.fillSprite(BackgroundColor); RDSSprite.fillSprite(BackgroundColor);
if (RDSstatus) RDSSprite.setTextColor(RDSColor, RDSColorSmooth, false); else RDSSprite.setTextColor(RDSDropoutColor, RDSDropoutColorSmooth, false); if (RDSstatus) RDSSprite.setTextColor(RDSColor, RDSColorSmooth, false); else RDSSprite.setTextColor(RDSDropoutColor, RDSDropoutColorSmooth, false);
RDSSprite.drawString(ECCString, xPos6, 2); RDSSprite.drawString(ECCString, xPos2, 2);
RDSSprite.pushSprite(35, 199); RDSSprite.pushSprite(35, 199);
} else { } else {
if (millis() - eccticker >= 5) { if (millis() - eccticker >= 5) {
if (xPos6 < -eccstringWidth) xPos6 = 0; if (xPos2 < -eccstringWidth) xPos2 = 0;
if (xPos6 == 0) { if (xPos2 == 0) {
if (millis() - ecctickerhold >= 2000) { if (millis() - ecctickerhold >= 2000) {
xPos6--; xPos2--;
ecctickerhold = millis(); ecctickerhold = millis();
} }
} else { } else {
xPos6--; xPos2--;
ecctickerhold = millis(); ecctickerhold = millis();
} }
RDSSprite.fillSprite(BackgroundColor); RDSSprite.fillSprite(BackgroundColor);
if (RDSstatus) RDSSprite.setTextColor(RDSColor, RDSColorSmooth, false); else RDSSprite.setTextColor(RDSDropoutColor, RDSDropoutColorSmooth, false); if (RDSstatus) RDSSprite.setTextColor(RDSColor, RDSColorSmooth, false); else RDSSprite.setTextColor(RDSDropoutColor, RDSDropoutColorSmooth, false);
RDSSprite.drawString(ECCString, xPos6, 2); RDSSprite.drawString(ECCString, xPos2, 2);
RDSSprite.drawString(ECCString, xPos6 + eccstringWidth, 2); RDSSprite.drawString(ECCString, xPos2 + eccstringWidth, 2);
RDSSprite.pushSprite(35, 199); RDSSprite.pushSprite(35, 199);
eccticker = millis(); eccticker = millis();
} }
@@ -98,11 +98,10 @@ void ShowAdvancedRDS() {
if (wifi) { if (wifi) {
Udp.beginPacket(remoteip, 9030); Udp.beginPacket(remoteip, 9030);
Udp.print("from=TEF_tuner_" + String(stationlistid, DEC) + ";ECC="); Udp.print("from=TEF_tuner_" + String(stationlistid, DEC) + ";ECC=");
if (radio.rds.ECC < 0x10) Udp.print("0"); if (radio.rds.ECC.get() < 0x10) Udp.print("0");
Udp.print(String(radio.rds.ECC, HEX)); Udp.print(String(radio.rds.ECC.get(), HEX));
Udp.endPacket(); Udp.endPacket();
} }
ECCold = radio.rds.ECC;
} }
String eonstring; String eonstring;
@@ -130,11 +129,11 @@ void ShowAdvancedRDS() {
if (xPos3 < -eonstringWidth) xPos3 = 0; if (xPos3 < -eonstringWidth) xPos3 = 0;
if (xPos3 == 0) { if (xPos3 == 0) {
if (millis() - eontickerhold >= 2000) { if (millis() - eontickerhold >= 2000) {
xPos3 --; xPos3--;
eontickerhold = millis(); eontickerhold = millis();
} }
} else { } else {
xPos3 --; xPos3--;
eontickerhold = millis(); eontickerhold = millis();
} }
RDSSprite.fillSprite(BackgroundColor); RDSSprite.fillSprite(BackgroundColor);
@@ -511,10 +510,8 @@ void showPI() {
} }
void showPTY() { void showPTY() {
if(radio.rds.PTY != programTypePrevious) { if(radio.rds.PTY.changed(0)) {
String PTYString = String(radio.rds.PTY) + "/" + (radio.rds.region != 0 ? (radio.rds.region == 0 ? PTY_EU[radio.rds.PTY] : PTY_USA[radio.rds.PTY]) : textUI(228 + radio.rds.PTY)); String PTYString = String(radio.rds.PTY.get()) + "/" + (radio.rds.region != 0 ? (radio.rds.region == 0 ? PTY_EU[radio.rds.PTY.get()] : PTY_USA[radio.rds.PTY.get()]) : textUI(228 + radio.rds.PTY.get()));
if (radio.rds.PTY == 32) PTYString = "";
if (!screenmute) { if (!screenmute) {
if (advancedRDS) { if (advancedRDS) {
@@ -530,10 +527,9 @@ void showPTY() {
if (wifi) { if (wifi) {
Udp.beginPacket(remoteip, 9030); Udp.beginPacket(remoteip, 9030);
Udp.print("from=TEF_tuner_" + String(stationlistid, DEC) + ";PTY="); Udp.print("from=TEF_tuner_" + String(stationlistid, DEC) + ";PTY=");
Udp.print(String(radio.rds.PTY, HEX)); Udp.print(String(radio.rds.PTY.get(), HEX));
Udp.endPacket(); Udp.endPacket();
} }
programTypePrevious = radio.rds.PTY;
} }
} }
@@ -551,24 +547,27 @@ void showPS() {
// Handle scrolling logic for long PS // Handle scrolling logic for long PS
if (PSSprite.textWidth(trimTrailingSpaces(radio.rds.stationNameLong)) < 150) { if (PSSprite.textWidth(trimTrailingSpaces(radio.rds.stationNameLong)) < 150) {
xPos5 = 0; xPos5 = 0;
PSSprite.fillSprite(BackgroundColor);
PSSprite.setTextColor(RDSstatus ? RDSColor : RDSDropoutColor, RDSstatus ? RDSColorSmooth : RDSDropoutColorSmooth, false);
PSSprite.drawString(stationNameLongString, xPos5, 2);
} else {
if (millis() - pslongticker >= 5) {
if (xPos5 < -PSLongWidth) xPos5 = 0; // Reset position if fully scrolled
if (xPos5 == 0 && millis() - pslongtickerhold >= 2000) {
xPos5--; // Hold position for 2 seconds before scrolling
pslongtickerhold = millis();
} else xPos5--;
pslongticker = millis();
PSSprite.fillSprite(BackgroundColor); PSSprite.fillSprite(BackgroundColor);
PSSprite.setTextColor(RDSstatus ? RDSColor : RDSDropoutColor, RDSstatus ? RDSColorSmooth : RDSDropoutColorSmooth, false); PSSprite.setTextColor(RDSstatus ? RDSColor : RDSDropoutColor, RDSstatus ? RDSColorSmooth : RDSDropoutColorSmooth, false);
PSSprite.drawString(stationNameLongString, xPos5, 2); PSSprite.drawString(stationNameLongString, xPos5, 2);
PSSprite.drawString(stationNameLongString, xPos5 + PSLongWidth, 2); } else {
if (millis() - pslongticker >= 5) {
if (xPos5 == 0 && millis() - pslongtickerhold < 2000) {
// Hold at position 0
} else {
xPos5--;
pslongtickerhold = millis();
}
if (xPos5 < -PSLongWidth) xPos5 = 0;
pslongticker = millis();
} }
PSSprite.fillSprite(BackgroundColor);
PSSprite.setTextColor(RDSstatus ? RDSColor : RDSDropoutColor, RDSstatus ? RDSColorSmooth : RDSDropoutColorSmooth, false);
PSSprite.drawString(stationNameLongString, xPos5 + 8, 2);
PSSprite.drawString(stationNameLongString, xPos5 + PSLongWidth, 2);
} }
} else { } else {
xPos5 = 0; xPos5 = 0;
@@ -690,15 +689,13 @@ void showCT() {
void showRadioText() { void showRadioText() {
String RTString = String(radio.rds.stationText + (radio.rds.stationText.length() > 0 ? " " : "") + radio.rds.stationText32 + (radio.rds.hasEnhancedRT ? " eRT: " + String(radio.rds.enhancedRTtext) : "") + " "); String RTString = String(radio.rds.stationText + (radio.rds.stationText.length() > 0 ? " " : "") + radio.rds.stationText32 + (radio.rds.hasEnhancedRT ? " eRT: " + String(radio.rds.enhancedRTtext) : "") + " ");
// Check if RT has changed
if (radio.rds.hasRT && radio.rds.rtAB != rtABold) { if (radio.rds.hasRT && radio.rds.rtAB != rtABold) {
xPos = 0; // Reset ticker position xPos = 0;
rttickerhold = millis(); // Hold the ticker momentarily rttickerhold = millis();
rtABold = radio.rds.rtAB; // Update old AB status rtABold = radio.rds.rtAB;
} }
if (!screenmute) { if (!screenmute) {
// Display RDS information if RT is available
if (radio.rds.hasRT && if (radio.rds.hasRT &&
(radio.rds.stationText.length() > 0 || radio.rds.stationText32.length() > 0)) { (radio.rds.stationText.length() > 0 || radio.rds.stationText32.length() > 0)) {