Added extra Fast PS setting (always)
This commit is contained in:
+4
-4
@@ -606,7 +606,7 @@ void TEF6686::readRDS(byte showrdserrors) {
|
|||||||
ps_buffer[(offset * 2) + 1] = rds.rdsD & 0xFF; // Second character of segment
|
ps_buffer[(offset * 2) + 1] = rds.rdsD & 0xFF; // Second character of segment
|
||||||
ps_buffer[8] = '\0'; // Endmarker
|
ps_buffer[8] = '\0'; // Endmarker
|
||||||
|
|
||||||
if (ps_process || !rds.fastps) {
|
if (ps_process || rds.fastps == 0) {
|
||||||
if (offset == 0) {
|
if (offset == 0) {
|
||||||
packet0 = true;
|
packet0 = true;
|
||||||
packet1 = false;
|
packet1 = false;
|
||||||
@@ -618,7 +618,7 @@ void TEF6686::readRDS(byte showrdserrors) {
|
|||||||
if (offset == 3) packet3 = true;
|
if (offset == 3) packet3 = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (packet0 && packet1 && packet2 && packet3 && (ps_process || !rds.fastps)) { // Last chars are received
|
if (packet0 && packet1 && packet2 && packet3 && (ps_process || rds.fastps == 0)) { // Last chars are received
|
||||||
if (strcmp(ps_buffer, ps_buffer2) == 0) { // When no difference between current and buffer, let's go...
|
if (strcmp(ps_buffer, ps_buffer2) == 0) { // When no difference between current and buffer, let's go...
|
||||||
ps_process = true;
|
ps_process = true;
|
||||||
RDScharConverter(ps_buffer2, PStext, sizeof(PStext) / sizeof(wchar_t), true); // Convert 8 bit ASCII to 16 bit ASCII
|
RDScharConverter(ps_buffer2, PStext, sizeof(PStext) / sizeof(wchar_t), true); // Convert 8 bit ASCII to 16 bit ASCII
|
||||||
@@ -631,7 +631,7 @@ void TEF6686::readRDS(byte showrdserrors) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ps_process && rds.fastps) { // Let's get 2 runs of 8 PS characters fast and without refresh
|
if (!ps_process && rds.fastps > 0) { // Let's get 2 runs of 8 PS characters fast and without refresh
|
||||||
if (offset == 0) packet0 = true;
|
if (offset == 0) packet0 = true;
|
||||||
if (offset == 1) packet1 = true;
|
if (offset == 1) packet1 = true;
|
||||||
if (offset == 2) packet2 = true;
|
if (offset == 2) packet2 = true;
|
||||||
@@ -639,7 +639,7 @@ void TEF6686::readRDS(byte showrdserrors) {
|
|||||||
RDScharConverter(ps_buffer, PStext, sizeof(PStext) / sizeof(wchar_t), true); // Convert 8 bit ASCII to 16 bit ASCII
|
RDScharConverter(ps_buffer, PStext, sizeof(PStext) / sizeof(wchar_t), true); // Convert 8 bit ASCII to 16 bit ASCII
|
||||||
String utf8String = convertToUTF8(PStext); // Convert RDS characterset to ASCII
|
String utf8String = convertToUTF8(PStext); // Convert RDS characterset to ASCII
|
||||||
rds.stationName = extractUTF8Substring(utf8String, 0, 8, true);
|
rds.stationName = extractUTF8Substring(utf8String, 0, 8, true);
|
||||||
if (packet0 && packet1 && packet2 && packet3) ps_process = true; // OK, we had one runs, now let's go the idle PS writing
|
if (packet0 && packet1 && packet2 && packet3 && rds.fastps < 2) ps_process = true;// OK, we had one runs, now let's go the idle PS writing
|
||||||
}
|
}
|
||||||
|
|
||||||
if (offset == 0) rds.hasDynamicPTY = bitRead(rds.rdsB, 2) & 0x1F; // Dynamic PTY flag
|
if (offset == 0) rds.hasDynamicPTY = bitRead(rds.rdsB, 2) & 0x1F; // Dynamic PTY flag
|
||||||
|
|||||||
+1
-1
@@ -582,6 +582,7 @@ typedef struct _rds_ {
|
|||||||
uint16_t aid[10];
|
uint16_t aid[10];
|
||||||
uint32_t dabaffreq;
|
uint32_t dabaffreq;
|
||||||
byte aid_counter;
|
byte aid_counter;
|
||||||
|
byte fastps;
|
||||||
int8_t offset;
|
int8_t offset;
|
||||||
unsigned int ECC;
|
unsigned int ECC;
|
||||||
unsigned int LIC;
|
unsigned int LIC;
|
||||||
@@ -619,7 +620,6 @@ typedef struct _rds_ {
|
|||||||
bool rdsreset;
|
bool rdsreset;
|
||||||
bool pierrors;
|
bool pierrors;
|
||||||
bool sortaf;
|
bool sortaf;
|
||||||
bool fastps;
|
|
||||||
bool rtbuffer = true;
|
bool rtbuffer = true;
|
||||||
bool afreg;
|
bool afreg;
|
||||||
RdsPiBuffer piBuffer;
|
RdsPiBuffer piBuffer;
|
||||||
|
|||||||
+28
-6
@@ -1327,7 +1327,12 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
|||||||
FullLineSprite.drawString(removeNewline(myLanguage[language][203]), 6, 3);
|
FullLineSprite.drawString(removeNewline(myLanguage[language][203]), 6, 3);
|
||||||
FullLineSprite.setTextDatum(TR_DATUM);
|
FullLineSprite.setTextDatum(TR_DATUM);
|
||||||
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
FullLineSprite.drawString((radio.rds.fastps ? myLanguage[language][42] : myLanguage[language][30]), 298, 3);
|
|
||||||
|
switch (radio.rds.fastps) {
|
||||||
|
case 0: FullLineSprite.drawString(myLanguage[language][30], 298, 3); break;
|
||||||
|
case 1: FullLineSprite.drawString(myLanguage[language][260], 298, 3); break;
|
||||||
|
case 2: FullLineSprite.drawString(myLanguage[language][261], 298, 3); break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FMSETTINGS:
|
case FMSETTINGS:
|
||||||
@@ -2212,9 +2217,15 @@ void MenuUp() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ITEM9:
|
case ITEM9:
|
||||||
radio.rds.fastps = !radio.rds.fastps;
|
radio.rds.fastps++;
|
||||||
|
if (radio.rds.fastps > 2) radio.rds.fastps = 0;
|
||||||
|
|
||||||
|
switch (radio.rds.fastps) {
|
||||||
|
case 0: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
||||||
|
case 1: OneBigLineSprite.drawString(myLanguage[language][260], 135, 0); break;
|
||||||
|
case 2: OneBigLineSprite.drawString(myLanguage[language][261], 135, 0); break;
|
||||||
|
}
|
||||||
|
|
||||||
OneBigLineSprite.drawString((radio.rds.fastps ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -3061,9 +3072,15 @@ void MenuDown() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ITEM9:
|
case ITEM9:
|
||||||
radio.rds.fastps = !radio.rds.fastps;
|
radio.rds.fastps--;
|
||||||
|
if (radio.rds.fastps > 2) radio.rds.fastps = 2;
|
||||||
|
|
||||||
|
switch (radio.rds.fastps) {
|
||||||
|
case 0: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
||||||
|
case 1: OneBigLineSprite.drawString(myLanguage[language][260], 135, 0); break;
|
||||||
|
case 2: OneBigLineSprite.drawString(myLanguage[language][261], 135, 0); break;
|
||||||
|
}
|
||||||
|
|
||||||
OneBigLineSprite.drawString((radio.rds.fastps ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -3921,7 +3938,12 @@ void DoMenu() {
|
|||||||
case ITEM9:
|
case ITEM9:
|
||||||
Infoboxprint(myLanguage[language][203]);
|
Infoboxprint(myLanguage[language][203]);
|
||||||
|
|
||||||
OneBigLineSprite.drawString((radio.rds.fastps ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
switch (radio.rds.fastps) {
|
||||||
|
case 0: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
||||||
|
case 1: OneBigLineSprite.drawString(myLanguage[language][260], 135, 0); break;
|
||||||
|
case 2: OneBigLineSprite.drawString(myLanguage[language][261], 135, 0); break;
|
||||||
|
}
|
||||||
|
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
+559
-523
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user