diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 99aa799..3e277fc 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -57,6 +57,7 @@ bool beepresetstop; bool BWreset; bool change2; bool compressedold; +bool clearrds; bool direction; bool dropout; bool dynamicPTYold; diff --git a/src/rds.cpp b/src/rds.cpp index 2d76747..28af554 100644 --- a/src/rds.cpp +++ b/src/rds.cpp @@ -586,17 +586,21 @@ void readRds() { if (!screenmute) { if (!afscreen) { if (!RDSstatus) { - if (advancedRDS) tftPrint(0, PIold, 275, 75, SecondaryColor, SecondaryColorSmooth, 28); else tftPrint(0, PIold, 275, 187, SecondaryColor, SecondaryColorSmooth, 28); - if (advancedRDS) tftPrint(-1, PSold, 38, 75, SecondaryColor, SecondaryColorSmooth, 28); else tftPrint(-1, PSold, 38, 187, SecondaryColor, SecondaryColorSmooth, 28); - if (advancedRDS) tftPrint(-1, PTYold, 38, 109, SecondaryColor, SecondaryColorSmooth, 16); else tftPrint(-1, PTYold, 38, 163, SecondaryColor, SecondaryColorSmooth, 16); - if (advancedRDS) { - tft.fillCircle(86, 41, 5, SignificantColor); - tft.fillCircle(124, 41, 5, SignificantColor); - tft.fillCircle(162, 41, 5, SignificantColor); - tft.fillCircle(200, 41, 5, SignificantColor); + if (clearrds) { + if (advancedRDS) tftPrint(0, PIold, 275, 75, SecondaryColor, SecondaryColorSmooth, 28); else tftPrint(0, PIold, 275, 187, SecondaryColor, SecondaryColorSmooth, 28); + if (advancedRDS) tftPrint(-1, PSold, 38, 75, SecondaryColor, SecondaryColorSmooth, 28); else tftPrint(-1, PSold, 38, 187, SecondaryColor, SecondaryColorSmooth, 28); + if (advancedRDS) tftPrint(-1, PTYold, 38, 109, SecondaryColor, SecondaryColorSmooth, 16); else tftPrint(-1, PTYold, 38, 163, SecondaryColor, SecondaryColorSmooth, 16); + if (advancedRDS) { + tft.fillCircle(86, 41, 5, SignificantColor); + tft.fillCircle(124, 41, 5, SignificantColor); + tft.fillCircle(162, 41, 5, SignificantColor); + tft.fillCircle(200, 41, 5, SignificantColor); + } + clearrds = false; } if (radio.rds.correctPI != 0) dropout = true; } else { + clearrds = true; if (dropout == true) { if (advancedRDS) tftPrint(0, PIold, 275, 75, PrimaryColor, PrimaryColorSmooth, 28); else tftPrint(0, PIold, 275, 187, PrimaryColor, PrimaryColorSmooth, 28); if (advancedRDS) tftPrint(-1, PSold, 38, 75, PrimaryColor, PrimaryColorSmooth, 28); else tftPrint(-1, PSold, 38, 187, PrimaryColor, PrimaryColorSmooth, 28); diff --git a/src/rds.h b/src/rds.h index aca8730..3048e1c 100644 --- a/src/rds.h +++ b/src/rds.h @@ -13,6 +13,7 @@ extern bool afscreen; extern bool aftest; extern bool artheadold; extern bool compressedold; +extern bool clearrds; extern bool dropout; extern bool dynamicPTYold; extern bool errorAold;