Fixed theme selector
Also finished EON in API
This commit is contained in:
+33
-53
@@ -88,6 +88,7 @@ int batupdatetimer;
|
|||||||
byte BWset;
|
byte BWset;
|
||||||
byte colorinvert;
|
byte colorinvert;
|
||||||
byte ContrastSet;
|
byte ContrastSet;
|
||||||
|
byte CurrentTheme;
|
||||||
byte displayflip;
|
byte displayflip;
|
||||||
byte ECCold;
|
byte ECCold;
|
||||||
byte EQset;
|
byte EQset;
|
||||||
@@ -166,8 +167,6 @@ int ActiveColor;
|
|||||||
int OptimizerColor;
|
int OptimizerColor;
|
||||||
int RDSColor;
|
int RDSColor;
|
||||||
int StereoColor;
|
int StereoColor;
|
||||||
int CurrentTheme;
|
|
||||||
|
|
||||||
int16_t OStatus;
|
int16_t OStatus;
|
||||||
int16_t SAvg;
|
int16_t SAvg;
|
||||||
int16_t SAvg2;
|
int16_t SAvg2;
|
||||||
@@ -250,8 +249,8 @@ WiFiUDP Udp;
|
|||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
setupmode = true;
|
setupmode = true;
|
||||||
EEPROM.begin(265);
|
EEPROM.begin(261);
|
||||||
if (EEPROM.readByte(43) != 28) DefaultSettings();
|
if (EEPROM.readByte(43) != 29) DefaultSettings();
|
||||||
|
|
||||||
frequency = EEPROM.readUInt(0);
|
frequency = EEPROM.readUInt(0);
|
||||||
VolSet = EEPROM.readInt(4);
|
VolSet = EEPROM.readInt(4);
|
||||||
@@ -302,7 +301,7 @@ void setup() {
|
|||||||
HighEdgeOIRTSet = EEPROM.readUInt(254);
|
HighEdgeOIRTSet = EEPROM.readUInt(254);
|
||||||
colorinvert = EEPROM.readByte(258);
|
colorinvert = EEPROM.readByte(258);
|
||||||
deepsleep = EEPROM.readByte(259);
|
deepsleep = EEPROM.readByte(259);
|
||||||
CurrentTheme = EEPROM.readInt(260);
|
CurrentTheme = EEPROM.readByte(260);
|
||||||
|
|
||||||
LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash
|
LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash
|
||||||
LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash
|
LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash
|
||||||
@@ -350,7 +349,7 @@ void setup() {
|
|||||||
|
|
||||||
tft.init();
|
tft.init();
|
||||||
tft.invertDisplay(colorinvert);
|
tft.invertDisplay(colorinvert);
|
||||||
|
doTheme();
|
||||||
if (displayflip == 0) {
|
if (displayflip == 0) {
|
||||||
#ifdef ARS
|
#ifdef ARS
|
||||||
tft.setRotation(0);
|
tft.setRotation(0);
|
||||||
@@ -471,7 +470,7 @@ void setup() {
|
|||||||
uint16_t device;
|
uint16_t device;
|
||||||
uint16_t hw;
|
uint16_t hw;
|
||||||
uint16_t sw;
|
uint16_t sw;
|
||||||
doTheme();
|
|
||||||
radio.getIdentification(device, hw, sw);
|
radio.getIdentification(device, hw, sw);
|
||||||
if (TEF != (highByte(hw) * 100 + highByte(sw))) SetTunerPatch();
|
if (TEF != (highByte(hw) * 100 + highByte(sw))) SetTunerPatch();
|
||||||
tft.fillRect(120, 230, 16, 6, PrimaryColor);
|
tft.fillRect(120, 230, 16, 6, PrimaryColor);
|
||||||
@@ -717,7 +716,7 @@ void SleepWake(bool isSleep) {
|
|||||||
analogWrite(CONTRASTPIN, 0);
|
analogWrite(CONTRASTPIN, 0);
|
||||||
StoreFrequency();
|
StoreFrequency();
|
||||||
if (deepsleep) radio.power(1);
|
if (deepsleep) radio.power(1);
|
||||||
}else {
|
} else {
|
||||||
if (deepsleep) {
|
if (deepsleep) {
|
||||||
ESP.restart();
|
ESP.restart();
|
||||||
}
|
}
|
||||||
@@ -1237,10 +1236,10 @@ void ModeButtonPress() {
|
|||||||
tft.setFreeFont(FONT14);
|
tft.setFreeFont(FONT14);
|
||||||
tft.setTextColor(ActiveColor, BackgroundColor);
|
tft.setTextColor(ActiveColor, BackgroundColor);
|
||||||
tft.setCursor (70, 60);
|
tft.setCursor (70, 60);
|
||||||
tft.drawString("NOT POSSIBLE", 70, 60, GFXFF);
|
tft.drawString(myLanguage[language][86], 70, 60, GFXFF);
|
||||||
delay(1000);
|
delay(1000);
|
||||||
tft.setTextColor(BackgroundColor);
|
tft.setTextColor(BackgroundColor);
|
||||||
tft.drawString("NOT POSSIBLE", 70, 60, GFXFF);
|
tft.drawString(myLanguage[language][86], 70, 60, GFXFF);
|
||||||
ShowFreq(0);
|
ShowFreq(0);
|
||||||
} else {
|
} else {
|
||||||
if (menu == false) {
|
if (menu == false) {
|
||||||
@@ -1308,7 +1307,7 @@ void ModeButtonPress() {
|
|||||||
EEPROM.writeUInt(254, HighEdgeOIRTSet);
|
EEPROM.writeUInt(254, HighEdgeOIRTSet);
|
||||||
EEPROM.writeByte(258, colorinvert);
|
EEPROM.writeByte(258, colorinvert);
|
||||||
EEPROM.writeByte(259, deepsleep);
|
EEPROM.writeByte(259, deepsleep);
|
||||||
EEPROM.writeInt(260, CurrentTheme);
|
EEPROM.writeByte(260, CurrentTheme);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
Serial.end();
|
Serial.end();
|
||||||
if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient);
|
if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient);
|
||||||
@@ -1734,10 +1733,9 @@ void ButtonPress() {
|
|||||||
switch (menuoption) {
|
switch (menuoption) {
|
||||||
case 30:
|
case 30:
|
||||||
tft.setTextColor(TFT_WHITE);
|
tft.setTextColor(TFT_WHITE);
|
||||||
tft.drawCentreString(myLanguage[language][77], 150, 70, 4);
|
tft.drawCentreString(myLanguage[language][77], 155, 70, GFXFF);
|
||||||
doTheme();
|
|
||||||
tft.setTextColor(TFT_WHITE);
|
tft.setTextColor(TFT_WHITE);
|
||||||
tft.drawCentreString(CurrentThemeString, 150, 110, 4);
|
tft.drawCentreString(CurrentThemeString, 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 50:
|
case 50:
|
||||||
@@ -2145,15 +2143,12 @@ void KeyUp() {
|
|||||||
switch (menuoption) {
|
switch (menuoption) {
|
||||||
case 30:
|
case 30:
|
||||||
tft.setTextColor(TFT_BLACK);
|
tft.setTextColor(TFT_BLACK);
|
||||||
tft.drawCentreString(CurrentThemeString, 150, 110, 4);
|
tft.drawCentreString(CurrentThemeString, 155, 110, GFXFF);
|
||||||
CurrentTheme += 1;
|
CurrentTheme ++;
|
||||||
if (CurrentTheme > 7) {
|
if (CurrentTheme > 7) CurrentTheme = 0;
|
||||||
CurrentTheme = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
doTheme();
|
doTheme();
|
||||||
tft.setTextColor(ActiveColor);
|
tft.setTextColor(TFT_WHITE);
|
||||||
tft.drawCentreString(CurrentThemeString, 150, 110, 4);
|
tft.drawCentreString(CurrentThemeString, 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
case 70:
|
case 70:
|
||||||
tft.setTextColor(TFT_BLACK);
|
tft.setTextColor(TFT_BLACK);
|
||||||
@@ -2536,16 +2531,14 @@ void KeyDown() {
|
|||||||
switch (menuoption) {
|
switch (menuoption) {
|
||||||
case 30:
|
case 30:
|
||||||
tft.setTextColor(TFT_BLACK);
|
tft.setTextColor(TFT_BLACK);
|
||||||
tft.drawCentreString(CurrentThemeString, 150, 110, 4);
|
tft.drawCentreString(CurrentThemeString, 155, 110, GFXFF);
|
||||||
CurrentTheme -= 1;
|
CurrentTheme --;
|
||||||
if (CurrentTheme < 0) {
|
if (CurrentTheme > 7) CurrentTheme = 7;
|
||||||
CurrentTheme = 7;
|
|
||||||
}
|
|
||||||
|
|
||||||
doTheme();
|
doTheme();
|
||||||
tft.setTextColor(ActiveColor);
|
tft.setTextColor(TFT_WHITE);
|
||||||
tft.drawCentreString(CurrentThemeString, 150, 110, 4);
|
tft.drawCentreString(CurrentThemeString, 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 70:
|
case 70:
|
||||||
tft.setTextColor(TFT_BLACK);
|
tft.setTextColor(TFT_BLACK);
|
||||||
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
||||||
@@ -4822,7 +4815,7 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
|
|||||||
OptimizerColor = 1;
|
OptimizerColor = 1;
|
||||||
StereoColor = TFT_RED;
|
StereoColor = TFT_RED;
|
||||||
RDSColor = PrimaryColor;
|
RDSColor = PrimaryColor;
|
||||||
CurrentThemeString = "Default";
|
CurrentThemeString = myLanguage[language][78];
|
||||||
break;
|
break;
|
||||||
case 1: // Cyan theme
|
case 1: // Cyan theme
|
||||||
PrimaryColor = 0x0F3F;
|
PrimaryColor = 0x0F3F;
|
||||||
@@ -4835,7 +4828,7 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
|
|||||||
OptimizerColor = 1;
|
OptimizerColor = 1;
|
||||||
StereoColor = 0xF3F;
|
StereoColor = 0xF3F;
|
||||||
RDSColor = 0xFFFF;
|
RDSColor = 0xFFFF;
|
||||||
CurrentThemeString = "Cyan";
|
CurrentThemeString = myLanguage[language][79];
|
||||||
break;
|
break;
|
||||||
case 2: // Crimson theme
|
case 2: // Crimson theme
|
||||||
PrimaryColor = 0xF8C3;
|
PrimaryColor = 0xF8C3;
|
||||||
@@ -4848,7 +4841,7 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
|
|||||||
OptimizerColor = 1;
|
OptimizerColor = 1;
|
||||||
StereoColor = 0xF8C3;
|
StereoColor = 0xF8C3;
|
||||||
RDSColor = 0xFFFF;
|
RDSColor = 0xFFFF;
|
||||||
CurrentThemeString = "Crimson";
|
CurrentThemeString = myLanguage[language][80];
|
||||||
break;
|
break;
|
||||||
case 3: // Monochrome theme
|
case 3: // Monochrome theme
|
||||||
PrimaryColor = 0xFFFF;
|
PrimaryColor = 0xFFFF;
|
||||||
@@ -4861,7 +4854,7 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
|
|||||||
OptimizerColor = 1;
|
OptimizerColor = 1;
|
||||||
StereoColor = 0xFFFF;
|
StereoColor = 0xFFFF;
|
||||||
RDSColor = 0xFFFF;
|
RDSColor = 0xFFFF;
|
||||||
CurrentThemeString = "Monochrome";
|
CurrentThemeString = myLanguage[language][81];
|
||||||
break;
|
break;
|
||||||
case 4: // Volcano theme
|
case 4: // Volcano theme
|
||||||
PrimaryColor = 0xFC00;
|
PrimaryColor = 0xFC00;
|
||||||
@@ -4874,7 +4867,7 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
|
|||||||
OptimizerColor = 1;
|
OptimizerColor = 1;
|
||||||
StereoColor = 0xFC00;
|
StereoColor = 0xFC00;
|
||||||
RDSColor = 0xFFFF;
|
RDSColor = 0xFFFF;
|
||||||
CurrentThemeString = "Volcano";
|
CurrentThemeString = myLanguage[language][82];
|
||||||
break;
|
break;
|
||||||
case 5: // Dendro theme
|
case 5: // Dendro theme
|
||||||
PrimaryColor = TFT_GREEN;
|
PrimaryColor = TFT_GREEN;
|
||||||
@@ -4887,7 +4880,7 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
|
|||||||
OptimizerColor = 1;
|
OptimizerColor = 1;
|
||||||
StereoColor = TFT_GREEN;
|
StereoColor = TFT_GREEN;
|
||||||
RDSColor = PrimaryColor;
|
RDSColor = PrimaryColor;
|
||||||
CurrentThemeString = "Dendro";
|
CurrentThemeString = myLanguage[language][83];
|
||||||
break;
|
break;
|
||||||
case 6: // Sakura theme
|
case 6: // Sakura theme
|
||||||
PrimaryColor = 0xF3D5;
|
PrimaryColor = 0xF3D5;
|
||||||
@@ -4900,7 +4893,7 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
|
|||||||
OptimizerColor = 1;
|
OptimizerColor = 1;
|
||||||
StereoColor = 0xF3D5;
|
StereoColor = 0xF3D5;
|
||||||
RDSColor = ActiveColor;
|
RDSColor = ActiveColor;
|
||||||
CurrentThemeString = "Sakura";
|
CurrentThemeString = myLanguage[language][84];
|
||||||
break;
|
break;
|
||||||
case 7: // Whiteout theme
|
case 7: // Whiteout theme
|
||||||
PrimaryColor = 0x0000;
|
PrimaryColor = 0x0000;
|
||||||
@@ -4913,20 +4906,7 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
|
|||||||
OptimizerColor = 0xFFDF;
|
OptimizerColor = 0xFFDF;
|
||||||
StereoColor = 0x0000;
|
StereoColor = 0x0000;
|
||||||
RDSColor = 0x0000;
|
RDSColor = 0x0000;
|
||||||
CurrentThemeString = "Whiteout";
|
CurrentThemeString = myLanguage[language][85];
|
||||||
break;
|
|
||||||
default:
|
|
||||||
PrimaryColor = 0xFFE0;
|
|
||||||
SecondaryColor = 0xFFFF;
|
|
||||||
FrequencyColor = 0xFFE0;
|
|
||||||
FrameColor = 0x001F;
|
|
||||||
GreyoutColor = 0x38E7;
|
|
||||||
BackgroundColor = 0x0000;
|
|
||||||
ActiveColor = 0xFFFF;
|
|
||||||
OptimizerColor = 1;
|
|
||||||
StereoColor = TFT_RED;
|
|
||||||
RDSColor = PrimaryColor;
|
|
||||||
CurrentThemeString = "Default";
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5000,7 +4980,7 @@ void passwordcrypt() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DefaultSettings() {
|
void DefaultSettings() {
|
||||||
EEPROM.writeByte(43, 28);
|
EEPROM.writeByte(43, 29);
|
||||||
EEPROM.writeUInt(0, 10000);
|
EEPROM.writeUInt(0, 10000);
|
||||||
EEPROM.writeInt(4, 0);
|
EEPROM.writeInt(4, 0);
|
||||||
EEPROM.writeUInt(8, 0);
|
EEPROM.writeUInt(8, 0);
|
||||||
@@ -5052,6 +5032,6 @@ void DefaultSettings() {
|
|||||||
EEPROM.writeUInt(254, 0);
|
EEPROM.writeUInt(254, 0);
|
||||||
EEPROM.writeByte(258, 0);
|
EEPROM.writeByte(258, 0);
|
||||||
EEPROM.writeByte(259, 0);
|
EEPROM.writeByte(259, 0);
|
||||||
EEPROM.writeInt(260, 0);
|
EEPROM.writeByte(260, 0);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
}
|
}
|
||||||
|
|||||||
+55
-42
@@ -420,8 +420,7 @@ void TEF6686::readRDS(bool showrdserrors)
|
|||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case RDS_GROUP_4A:
|
case RDS_GROUP_4A: {
|
||||||
case RDS_GROUP_4B: {
|
|
||||||
if (rds.correct) {
|
if (rds.correct) {
|
||||||
// CT
|
// CT
|
||||||
uint32_t mjd;
|
uint32_t mjd;
|
||||||
@@ -561,47 +560,57 @@ void TEF6686::readRDS(bool showrdserrors)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case RDS_GROUP_14A: {
|
case RDS_GROUP_14A: {
|
||||||
if (rds.correct) rds.hasEON = true; // Group is there, so we have EON
|
// EON
|
||||||
|
if (rds.correct) {
|
||||||
|
rds.hasEON = true; // Group is there, so we have EON
|
||||||
|
|
||||||
bool isValuePresent = false;
|
bool isValuePresent = false;
|
||||||
for (int i = 0; i < 5; i++) {
|
for (int i = 0; i < 5; i++) {
|
||||||
if (eon[i].pi == rds.rdsD) {
|
if (eon[i].pi == rds.rdsD) { // Check if EON is already in array
|
||||||
isValuePresent = true;
|
isValuePresent = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isValuePresent) {
|
if (!isValuePresent) {
|
||||||
eon[eon_counter].pi = rds.rdsD;
|
eon[eon_counter].pi = rds.rdsD; // Store PI on next array
|
||||||
eon_counter++;
|
eon_counter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
offset = rds.rdsB & 0x0F;
|
|
||||||
if (offset < 4) {
|
|
||||||
byte position;
|
|
||||||
for (position = 0; position < 5; position++) {
|
|
||||||
if (eon[position].pi == rds.rdsD) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
eon[position].ps[(offset * 2) + 0] = rds.rdsC >> 8; // First character of segment
|
|
||||||
eon[position].ps[(offset * 2) + 1] = rds.rdsC & 0xFF; // Second character of segment
|
|
||||||
eon[position].ps[(offset * 2) + 2] = '\0'; // Endmarker of segment
|
|
||||||
}
|
|
||||||
|
|
||||||
// if (offset == 5 && rds.rdsD == 0xF202) {
|
offset = rds.rdsB & 0x0F; // Read offset
|
||||||
// if (((rds.rdsC >> 8) * 10 +8750) == currentfreq) {
|
|
||||||
// uint16_t mapped = ((rds.rdsC & 0xFF) * 10 + 8750);
|
|
||||||
// Serial.print(currentfreq);
|
|
||||||
// Serial.print("\t");
|
|
||||||
// Serial.println(mapped);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// for (int i = 0; i < 5; i++) Serial.println(String(i) + "\t" + String(eon[i].pi,HEX) + "\t" + String(eon[i].ps));
|
if (offset < 4) {
|
||||||
// Serial.println("----");
|
byte position;
|
||||||
|
for (position = 0; position < 5; position++) {
|
||||||
}
|
if (eon[position].pi == rds.rdsD) { // Find position in array
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
eon_buffer2[position][(offset * 2) + 0] = eon_buffer[position][(offset * 2) + 0]; // Make a copy of the PS buffer
|
||||||
|
eon_buffer2[position][(offset * 2) + 1] = eon_buffer[position][(offset * 2) + 1];
|
||||||
|
|
||||||
|
eon_buffer[position][(offset * 2) + 0] = rds.rdsC >> 8; // First character of segment
|
||||||
|
eon_buffer[position][(offset * 2) + 1] = rds.rdsC & 0xFF; // Second character of segment
|
||||||
|
eon_buffer[position][(offset * 2) + 2] = '\0'; // Endmarker of segment
|
||||||
|
|
||||||
|
if (offset > 2) { // Last chars are received
|
||||||
|
if (eon_buffer[position] != eon_buffer2[position]) { // When difference between old and new, let's go...
|
||||||
|
RDScharConverter(eon_buffer[position], EONPStext, sizeof(EONPStext) / sizeof(wchar_t), true); // Convert 8 bit ASCII to 16 bit ASCII
|
||||||
|
String utf8String = convertToUTF8(EONPStext); // Convert RDS characterset to ASCII
|
||||||
|
eon[position].ps = extractUTF8Substring(utf8String, 0, 8, true); // Make sure PS does not exceed 8 characters
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (offset > 4 && offset < 9) {
|
||||||
|
if (((rds.rdsC >> 8) * 10 + 8750) == currentfreq) { // Check if mapped frequency belongs to current frequency
|
||||||
|
eon[position].mappedfreq = ((rds.rdsC & 0xFF) * 10 + 8750); // Add mapped frequency to array
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -643,10 +652,14 @@ void TEF6686::clearRDS (bool fullsearchrds)
|
|||||||
for (i = 0; i < 18; i++) rds.stationType[i] = 0;
|
for (i = 0; i < 18; i++) rds.stationType[i] = 0;
|
||||||
for (i = 0; i < 6; i++) rds.picode[i] = 0;
|
for (i = 0; i < 6; i++) rds.picode[i] = 0;
|
||||||
for (i = 0; i < 50; i++) af[i].frequency = 0;
|
for (i = 0; i < 50; i++) af[i].frequency = 0;
|
||||||
|
|
||||||
for (i = 0; i < 5; i++) {
|
for (i = 0; i < 5; i++) {
|
||||||
eon[i].pi = 0;
|
eon[i].pi = 0;
|
||||||
for (int y = 0; y < 9; y++) eon[i].ps[y] = 0;
|
for (int y = 0; y < 9; y++) {
|
||||||
|
eon_buffer[i][y] = 0;
|
||||||
|
eon_buffer2[i][y] = 0;
|
||||||
|
}
|
||||||
|
eon[i].ps = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 45; i++) {
|
for (i = 0; i < 45; i++) {
|
||||||
|
|||||||
+13
-11
@@ -141,16 +141,16 @@ typedef struct _af_ {
|
|||||||
} af_;
|
} af_;
|
||||||
|
|
||||||
typedef struct _eon_ {
|
typedef struct _eon_ {
|
||||||
uint16_t mappedfreq;
|
uint16_t mappedfreq;
|
||||||
uint16_t pi;
|
uint16_t pi;
|
||||||
char ps[9];
|
String ps;
|
||||||
} eon_;
|
} eon_;
|
||||||
|
|
||||||
|
|
||||||
class TEF6686 {
|
class TEF6686 {
|
||||||
public:
|
public:
|
||||||
af_ af[50];
|
af_ af[50];
|
||||||
eon_ eon[5];
|
eon_ eon[5];
|
||||||
rds_ rds;
|
rds_ rds;
|
||||||
void readRDS(bool showrdserrors);
|
void readRDS(bool showrdserrors);
|
||||||
void SetFreq(uint16_t frequency);
|
void SetFreq(uint16_t frequency);
|
||||||
@@ -201,16 +201,17 @@ class TEF6686 {
|
|||||||
String extractUTF8Substring(const String& utf8String, size_t start, size_t length, bool under);
|
String extractUTF8Substring(const String& utf8String, size_t start, size_t length, bool under);
|
||||||
char ps_buffer[9];
|
char ps_buffer[9];
|
||||||
char ps_buffer2[9];
|
char ps_buffer2[9];
|
||||||
char ptyn_buffer[9];
|
char ptyn_buffer[9];
|
||||||
char eon_buffer[9];
|
char eon_buffer[9][5];
|
||||||
|
char eon_buffer2[9][5];
|
||||||
bool ps_process;
|
bool ps_process;
|
||||||
bool rt_process;
|
bool rt_process;
|
||||||
char rt_buffer[65];
|
char rt_buffer[65];
|
||||||
char rt_buffer2[65];
|
char rt_buffer2[65];
|
||||||
bool useRTPlus = true;
|
bool useRTPlus = true;
|
||||||
bool checkDouble (uint16_t value);
|
bool checkDouble (uint16_t value);
|
||||||
bool checkDoubleEON (uint16_t value);
|
bool checkDoubleEON (uint16_t value);
|
||||||
byte eon_counter;
|
byte eon_counter;
|
||||||
bool ABold;
|
bool ABold;
|
||||||
char stationTextBuffer[65];
|
char stationTextBuffer[65];
|
||||||
uint64_t doublecheck;
|
uint64_t doublecheck;
|
||||||
@@ -219,11 +220,12 @@ class TEF6686 {
|
|||||||
uint16_t rdsDprevious;
|
uint16_t rdsDprevious;
|
||||||
bool rtABold;
|
bool rtABold;
|
||||||
wchar_t PStext[9] = L"";
|
wchar_t PStext[9] = L"";
|
||||||
wchar_t PTYNtext[9] = L"";
|
wchar_t EONPStext[9] = L"";
|
||||||
|
wchar_t PTYNtext[9] = L"";
|
||||||
byte ps_counter;
|
byte ps_counter;
|
||||||
char musicArtist[45];
|
char musicArtist[45];
|
||||||
char musicTitle[45];
|
char musicTitle[45];
|
||||||
char stationHost[45];
|
char stationHost[45];
|
||||||
char stationEvent[45];
|
char stationEvent[45];
|
||||||
uint16_t currentfreq;
|
uint16_t currentfreq;
|
||||||
};
|
};
|
||||||
+92
-11
@@ -1,6 +1,6 @@
|
|||||||
// [number of languages][number of texts][max. length of text]
|
// [number of languages][number of texts][max. length of text]
|
||||||
|
|
||||||
static const char myLanguage[9][78][85] = {
|
static const char myLanguage[9][87][85] = {
|
||||||
{ "English", // English
|
{ "English", // English
|
||||||
"Rotary direction changed", // 1
|
"Rotary direction changed", // 1
|
||||||
"Please release button", // 2
|
"Please release button", // 2
|
||||||
@@ -78,7 +78,16 @@ static const char myLanguage[9][78][85] = {
|
|||||||
"Power options", // 74
|
"Power options", // 74
|
||||||
"Deep sleep", // 75
|
"Deep sleep", // 75
|
||||||
"Screen off", // 76
|
"Screen off", // 76
|
||||||
"Theme" // 77
|
"Theme", // 77
|
||||||
|
"Default", // 78
|
||||||
|
"Cyan", // 79
|
||||||
|
"Crimson", // 80
|
||||||
|
"Monochrome", // 81
|
||||||
|
"Volcano", // 82
|
||||||
|
"Dendro", // 83
|
||||||
|
"Sakura", // 84
|
||||||
|
"Whiteout", // 85
|
||||||
|
"NOT POSSIBLE" // 86
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Nederlands", // Dutch
|
{ "Nederlands", // Dutch
|
||||||
@@ -158,8 +167,17 @@ static const char myLanguage[9][78][85] = {
|
|||||||
"Power options", // 74
|
"Power options", // 74
|
||||||
"Deep sleep", // 75
|
"Deep sleep", // 75
|
||||||
"Screen off", // 76
|
"Screen off", // 76
|
||||||
"Theme" // 77
|
"Theme", // 77
|
||||||
}, //
|
"Default", // 78
|
||||||
|
"Cyan", // 79
|
||||||
|
"Crimson", // 80
|
||||||
|
"Monochrome", // 81
|
||||||
|
"Volcano", // 82
|
||||||
|
"Dendro", // 83
|
||||||
|
"Sakura", // 84
|
||||||
|
"Whiteout", // 85
|
||||||
|
"NIET MOGELIJK" // 86
|
||||||
|
}, //
|
||||||
|
|
||||||
{ "Polski", // Polish
|
{ "Polski", // Polish
|
||||||
"Kierunek obrotu zmieniony", // 1
|
"Kierunek obrotu zmieniony", // 1
|
||||||
@@ -238,7 +256,16 @@ static const char myLanguage[9][78][85] = {
|
|||||||
"Opcje zasilania", // 74
|
"Opcje zasilania", // 74
|
||||||
"Glebokie uspienie", // 75
|
"Glebokie uspienie", // 75
|
||||||
"Wylacz ekran", // 76
|
"Wylacz ekran", // 76
|
||||||
"Motyw" // 77
|
"Motyw", // 77
|
||||||
|
"Default", // 78
|
||||||
|
"Cyan", // 79
|
||||||
|
"Crimson", // 80
|
||||||
|
"Monochrome", // 81
|
||||||
|
"Volcano", // 82
|
||||||
|
"Dendro", // 83
|
||||||
|
"Sakura", // 84
|
||||||
|
"Whiteout", // 85
|
||||||
|
"NOT POSSIBLE" // 86
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Hrvatski", // Croatian
|
{ "Hrvatski", // Croatian
|
||||||
@@ -318,7 +345,16 @@ static const char myLanguage[9][78][85] = {
|
|||||||
"Power options", // 74
|
"Power options", // 74
|
||||||
"Deep sleep", // 75
|
"Deep sleep", // 75
|
||||||
"Screen off", // 76
|
"Screen off", // 76
|
||||||
"Theme" // 77
|
"Theme", // 77
|
||||||
|
"Default", // 78
|
||||||
|
"Cyan", // 79
|
||||||
|
"Crimson", // 80
|
||||||
|
"Monochrome", // 81
|
||||||
|
"Volcano", // 82
|
||||||
|
"Dendro", // 83
|
||||||
|
"Sakura", // 84
|
||||||
|
"Whiteout", // 85
|
||||||
|
"NOT POSSIBLE" // 86
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Ελληνικά", // Greek
|
{ "Ελληνικά", // Greek
|
||||||
@@ -398,7 +434,16 @@ static const char myLanguage[9][78][85] = {
|
|||||||
"Επιλογές ενέργειας", // 74
|
"Επιλογές ενέργειας", // 74
|
||||||
"Βαθιά αναμονή", // 75
|
"Βαθιά αναμονή", // 75
|
||||||
"Οθόνη κλειστή", // 76
|
"Οθόνη κλειστή", // 76
|
||||||
"Theme" // 77
|
"Theme", // 77
|
||||||
|
"Default", // 78
|
||||||
|
"Cyan", // 79
|
||||||
|
"Crimson", // 80
|
||||||
|
"Monochrome", // 81
|
||||||
|
"Volcano", // 82
|
||||||
|
"Dendro", // 83
|
||||||
|
"Sakura", // 84
|
||||||
|
"Whiteout", // 85
|
||||||
|
"NOT POSSIBLE" // 86
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Romana", // Romanian
|
{ "Romana", // Romanian
|
||||||
@@ -478,7 +523,16 @@ static const char myLanguage[9][78][85] = {
|
|||||||
"Power options", // 74
|
"Power options", // 74
|
||||||
"Deep sleep", // 75
|
"Deep sleep", // 75
|
||||||
"Screen off", // 76
|
"Screen off", // 76
|
||||||
"Theme" // 77
|
"Theme", // 77
|
||||||
|
"Default", // 78
|
||||||
|
"Cyan", // 79
|
||||||
|
"Crimson", // 80
|
||||||
|
"Monochrome", // 81
|
||||||
|
"Volcano", // 82
|
||||||
|
"Dendro", // 83
|
||||||
|
"Sakura", // 84
|
||||||
|
"Whiteout", // 85
|
||||||
|
"NOT POSSIBLE" // 86
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Deutsch", // German
|
{ "Deutsch", // German
|
||||||
@@ -558,7 +612,16 @@ static const char myLanguage[9][78][85] = {
|
|||||||
"Energieeinstellungen", // 74
|
"Energieeinstellungen", // 74
|
||||||
"Komplett aus", // 75
|
"Komplett aus", // 75
|
||||||
"Bildschirm aus", // 76
|
"Bildschirm aus", // 76
|
||||||
"Theme" // 77
|
"Theme", // 77
|
||||||
|
"Default", // 78
|
||||||
|
"Cyan", // 79
|
||||||
|
"Crimson", // 80
|
||||||
|
"Monochrome", // 81
|
||||||
|
"Volcano", // 82
|
||||||
|
"Dendro", // 83
|
||||||
|
"Sakura", // 84
|
||||||
|
"Whiteout", // 85
|
||||||
|
"NOT POSSIBLE" // 86
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Czech", // Czech
|
{ "Czech", // Czech
|
||||||
@@ -638,7 +701,16 @@ static const char myLanguage[9][78][85] = {
|
|||||||
"Power options", // 74
|
"Power options", // 74
|
||||||
"Deep sleep", // 75
|
"Deep sleep", // 75
|
||||||
"Screen off", // 76
|
"Screen off", // 76
|
||||||
"Theme" // 77
|
"Theme", // 77
|
||||||
|
"Default", // 78
|
||||||
|
"Cyan", // 79
|
||||||
|
"Crimson", // 80
|
||||||
|
"Monochrome", // 81
|
||||||
|
"Volcano", // 82
|
||||||
|
"Dendro", // 83
|
||||||
|
"Sakura", // 84
|
||||||
|
"Whiteout", // 85
|
||||||
|
"NOT POSSIBLE" // 86
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Slovak", // Slovak
|
{ "Slovak", // Slovak
|
||||||
@@ -718,6 +790,15 @@ static const char myLanguage[9][78][85] = {
|
|||||||
"Power options", // 74
|
"Power options", // 74
|
||||||
"Deep sleep", // 75
|
"Deep sleep", // 75
|
||||||
"Screen off", // 76
|
"Screen off", // 76
|
||||||
"Theme" // 77
|
"Theme", // 77
|
||||||
|
"Default", // 78
|
||||||
|
"Cyan", // 79
|
||||||
|
"Crimson", // 80
|
||||||
|
"Monochrome", // 81
|
||||||
|
"Volcano", // 82
|
||||||
|
"Dendro", // 83
|
||||||
|
"Sakura", // 84
|
||||||
|
"Whiteout", // 85
|
||||||
|
"NOT POSSIBLE" // 86
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user