GUI optimalisation and bugfixes
Mute symbol added
This commit is contained in:
+229
-155
@@ -2,6 +2,7 @@
|
||||
#include <EEPROM.h>
|
||||
#include <Wire.h>
|
||||
#include <math.h>
|
||||
#include <FS.h>
|
||||
#include <TFT_eSPI.h> // https://github.com/Bodmer/TFT_eSPI
|
||||
#include <TimeLib.h> // https://github.com/PaulStoffregen/Time
|
||||
#include <Hash.h> // https://github.com/bbx10/Hash_tng
|
||||
@@ -187,10 +188,10 @@ int Stereostatus;
|
||||
int volume;
|
||||
int XDRBWset;
|
||||
int XDRBWsetold;
|
||||
int xPos = 6;
|
||||
int xPos2 = 6;
|
||||
int xPos3 = 6;
|
||||
int xPos4 = 6;
|
||||
int xPos;
|
||||
int xPos2;
|
||||
int xPos3;
|
||||
int xPos4;
|
||||
int16_t OStatus;
|
||||
int16_t SAvg;
|
||||
int16_t SAvg2;
|
||||
@@ -199,10 +200,12 @@ int8_t LevelOffset;
|
||||
int8_t LowLevelSet;
|
||||
int8_t VolSet;
|
||||
IPAddress remoteip;
|
||||
String afstringold;
|
||||
String cryptedpassword;
|
||||
String CurrentThemeString;
|
||||
String ECColdtxt;
|
||||
String eonpsold[11];
|
||||
String eonstringold;
|
||||
String LIColdString;
|
||||
String pinstringold;
|
||||
String PIold;
|
||||
@@ -215,6 +218,7 @@ String rds_clockold;
|
||||
String RDSSPYRDS;
|
||||
String RDSSPYRDSold;
|
||||
String RTold;
|
||||
String rtplusstringold;
|
||||
String salt;
|
||||
String saltkey = " ";
|
||||
String SWMIBandstring = String();
|
||||
@@ -579,8 +583,10 @@ void setup() {
|
||||
SelectBand();
|
||||
|
||||
setupmode = false;
|
||||
sprite.createSprite(317, 16);
|
||||
sprite.createSprite(280, 16);
|
||||
sprite2.createSprite(172, 16);
|
||||
sprite.setTextDatum(TL_DATUM);
|
||||
sprite2.setTextDatum(TL_DATUM);
|
||||
radio.tone(50, -5, 2000);
|
||||
|
||||
if (screensaverset) {
|
||||
@@ -595,7 +601,7 @@ void loop() {
|
||||
if (power == true) {
|
||||
Communication();
|
||||
|
||||
if (af && radio.rds.correctPI != 0) {
|
||||
if (band == BAND_FM && af && radio.rds.correctPI != 0) {
|
||||
if ((aftest && millis() >= aftimer + 3000) || ((USN > 250 || WAM > 250) && millis() >= aftimer + 1000)) {
|
||||
aftimer = millis();
|
||||
aftest = false;
|
||||
@@ -607,7 +613,7 @@ void loop() {
|
||||
}
|
||||
}
|
||||
|
||||
if (millis() >= aftimer + 10000) {
|
||||
if (band == BAND_FM && millis() >= aftimer + 10000) {
|
||||
aftimer = millis();
|
||||
if (USN > 150 || WAM > 150) {
|
||||
frequency = radio.TestAF();
|
||||
@@ -642,6 +648,7 @@ void loop() {
|
||||
if (region == 0) tftPrint(-1, "PI:", 216, 197, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
if (region == 1) tftPrint(-1, "ID:", 216, 197, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, "PS:", 6, 197, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, "RT:", 6, 222, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, "PTY:", 6, 170, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
if (!showmodulation) tft.drawLine(20, 150, 204, 150, GreyoutColor); else tft.drawLine(20, 150, 204, 150, TFT_DARKGREY);
|
||||
}
|
||||
@@ -670,9 +677,10 @@ void loop() {
|
||||
if (region == 0) tftPrint(-1, "PI:", 216, 197, GreyoutColor, BackgroundColor, FONT16);
|
||||
if (region == 1) tftPrint(-1, "ID:", 216, 197, GreyoutColor, BackgroundColor, FONT16);
|
||||
tftPrint(-1, "PS:", 6, 197, GreyoutColor, BackgroundColor, FONT16);
|
||||
tftPrint(-1, "RT:", 6, 222, GreyoutColor, BackgroundColor, FONT16);
|
||||
tftPrint(-1, "PTY:", 6, 170, GreyoutColor, BackgroundColor, FONT16);
|
||||
tft.drawLine(20, 150, 204, 150, GreyoutColor);
|
||||
tft.drawBitmap(110, 5, RDSLogo, 67, 22, GreyoutColor);
|
||||
tft.drawBitmap(139, 5, RDSLogo, 35, 22, GreyoutColor);
|
||||
}
|
||||
LowLevelInit = false;
|
||||
}
|
||||
@@ -1334,11 +1342,12 @@ void SelectBand() {
|
||||
doBW();
|
||||
radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||
if (screenmute == false) radio.clearRDS(fullsearchrds); BuildDisplay();
|
||||
if (region == 0) tftPrint(-1, "PI:", 216, 197, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
if (region == 1) tftPrint(-1, "ID:", 216, 195, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
tftPrint(-1, "PS:", 6, 197, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
tftPrint(-1, "PTY:", 6, 170, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
tft.drawBitmap(110, 5, RDSLogo, 67, 22, GreyoutColor);
|
||||
if (region == 0) tftPrint(-1, "PI:", 216, 197, GreyoutColor, BackgroundColor, FONT16);
|
||||
if (region == 1) tftPrint(-1, "ID:", 216, 195, GreyoutColor, BackgroundColor, FONT16);
|
||||
tftPrint(-1, "PS:", 6, 197, GreyoutColor, BackgroundColor, FONT16);
|
||||
tftPrint(-1, "RT:", 6, 222, GreyoutColor, BackgroundColor, FONT16);
|
||||
tftPrint(-1, "PTY:", 6, 170, GreyoutColor, BackgroundColor, FONT16);
|
||||
tft.drawBitmap(139, 5, RDSLogo, 35, 22, GreyoutColor);
|
||||
tft.drawRoundRect(248, 56, 32, 20, 5, GreyoutColor);
|
||||
tftPrint(0, "iMS", 265, 59, GreyoutColor, BackgroundColor, FONT16);
|
||||
tft.drawRoundRect(286, 56, 32, 20, 5, GreyoutColor);
|
||||
@@ -2783,7 +2792,7 @@ void readRds() {
|
||||
if (advancedRDS) tftPrint(-1, PIold, 244, 76, SecondaryColor, SecondaryColorSmooth, FONT28); else tftPrint(-1, PIold, 244, 191, SecondaryColor, SecondaryColorSmooth, FONT28);
|
||||
if (advancedRDS) tftPrint(-1, PSold, 38, 76, SecondaryColor, SecondaryColorSmooth, FONT28); else tftPrint(-1, PSold, 38, 191, SecondaryColor, SecondaryColorSmooth, FONT28);
|
||||
if (advancedRDS) tftPrint(-1, PTYold, 38, 109, SecondaryColor, SecondaryColorSmooth, FONT16); else tftPrint(-1, PTYold, 38, 170, SecondaryColor, SecondaryColorSmooth, FONT16);
|
||||
if (advancedRDS) tftPrint(-1, String(ptynold), 255, 109, SecondaryColor, SecondaryColorSmooth, FONT16);
|
||||
if (advancedRDS) tftPrint(-1, String(ptynold), 216, 109, SecondaryColor, SecondaryColorSmooth, FONT16);
|
||||
if (!advancedRDS) tftPrint(-1, RTold, 1, 229, BackgroundColor, BackgroundColor, FONT16);
|
||||
dropout = true;
|
||||
aftest = true;
|
||||
@@ -2793,7 +2802,7 @@ void readRds() {
|
||||
if (advancedRDS) tftPrint(-1, PIold, 244, 76, PrimaryColor, PrimaryColorSmooth, FONT28); else tftPrint(-1, PIold, 244, 191, PrimaryColor, PrimaryColorSmooth, FONT28);
|
||||
if (advancedRDS) tftPrint(-1, PSold, 38, 76, PrimaryColor, PrimaryColorSmooth, FONT28); else tftPrint(-1, PSold, 38, 191, PrimaryColor, PrimaryColorSmooth, FONT28);
|
||||
if (advancedRDS) tftPrint(-1, PTYold, 38, 109, PrimaryColor, PrimaryColorSmooth, FONT16); else tftPrint(-1, PTYold, 38, 170, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
if (advancedRDS) tftPrint(-1, String(ptynold), 255, 109, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
if (advancedRDS) tftPrint(-1, String(ptynold), 216, 109, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
dropout = false;
|
||||
}
|
||||
}
|
||||
@@ -2942,18 +2951,28 @@ void ShowAdvancedRDS() {
|
||||
if (radio.rds.hasAF) tftPrint(-1, "AF", 50, 51, SecondaryColor, SecondaryColorSmooth, FONT16); else tftPrint(-1, "AF", 50, 51, GreyoutColor, BackgroundColor, FONT16);
|
||||
hasafold = radio.rds.hasAF;
|
||||
}
|
||||
if (millis() - afticker >= 100) { //500
|
||||
if (xPos2 == 6) {
|
||||
|
||||
if (afstring.length() < 20) {
|
||||
if (afstringold != afstring) {
|
||||
xPos2 = 0;
|
||||
sprite2.fillSprite(BackgroundColor);
|
||||
sprite2.loadFont(FONT16);
|
||||
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||
sprite2.drawString(afstring, xPos2, 0, 1);
|
||||
sprite2.pushSprite(35, 200);
|
||||
}
|
||||
} else {
|
||||
if (millis() - afticker >= 50) {
|
||||
if (xPos2 == 0) {
|
||||
if (millis() - aftickerhold >= 2000) {
|
||||
xPos2 -= 1;//charWidth;
|
||||
xPos2 --;
|
||||
aftickerhold = millis();
|
||||
}
|
||||
} else {
|
||||
xPos2 -= 1;//charWidth;
|
||||
xPos2 --;
|
||||
aftickerhold = millis();
|
||||
}
|
||||
if (xPos2 < -tft.textWidth(afstring) + (charWidth * 21)) xPos2 = 6;
|
||||
sprite2.setTextDatum(TL_DATUM);
|
||||
if (xPos2 < -tft.textWidth(afstring) + (charWidth * 16)) xPos2 = 0;
|
||||
sprite2.fillSprite(BackgroundColor);
|
||||
sprite2.loadFont(FONT16);
|
||||
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||
@@ -2961,6 +2980,8 @@ void ShowAdvancedRDS() {
|
||||
sprite2.pushSprite(35, 200);
|
||||
afticker = millis();
|
||||
}
|
||||
}
|
||||
afstringold = afstring;
|
||||
|
||||
String eonstring;
|
||||
if (radio.rds.hasEON) for (byte i = 0; i < radio.eon_counter; i++) eonstring += String(radio.eon[i].picode) + (radio.eon[i].ps.length() > 0 ? String(": " + String(radio.eon[i].ps)) : "") + (radio.eon[i].mappedfreq > 0 ? String(" " + String(radio.eon[i].mappedfreq / 100) + "." + String((radio.eon[i].mappedfreq % 100) / 10)) : "") + (radio.eon[i].mappedfreq2 > 0 ? String(" / " + String(radio.eon[i].mappedfreq2 / 100) + "." + String((radio.eon[i].mappedfreq2 % 100) / 10)) : "") + (radio.eon[i].mappedfreq3 > 0 ? String(" / " + String(radio.eon[i].mappedfreq3 / 100) + "." + String((radio.eon[i].mappedfreq3 % 100) / 10)) : "") + (i == radio.eon_counter - 1 ? " " : " | "); else eonstring = myLanguage[language][88];
|
||||
@@ -2968,18 +2989,27 @@ void ShowAdvancedRDS() {
|
||||
if (radio.rds.hasEON) tftPrint(-1, "EON", 153, 51, SecondaryColor, SecondaryColorSmooth, FONT16); else tftPrint(-1, "EON", 153, 51, GreyoutColor, BackgroundColor, FONT16);
|
||||
haseonold = radio.rds.hasEON;
|
||||
}
|
||||
if (millis() - eonticker >= 100) { //500
|
||||
if (xPos3 == 6) {
|
||||
if (eonstring.length() < 20) {
|
||||
if (eonstringold != eonstring) {
|
||||
xPos3 = 0;
|
||||
sprite2.fillSprite(BackgroundColor);
|
||||
sprite2.loadFont(FONT16);
|
||||
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||
sprite2.drawString(eonstring, xPos3, 0);
|
||||
sprite2.pushSprite(35, 175);
|
||||
}
|
||||
} else {
|
||||
if (millis() - eonticker >= 50) {
|
||||
if (xPos3 == 0) {
|
||||
if (millis() - eontickerhold >= 2000) {
|
||||
xPos3 -= 1;//charWidth;
|
||||
xPos3 --;
|
||||
eontickerhold = millis();
|
||||
}
|
||||
} else {
|
||||
xPos3 -= 1;//charWidth;
|
||||
xPos3 --;
|
||||
eontickerhold = millis();
|
||||
}
|
||||
if (xPos3 < -tft.textWidth(eonstring) + (charWidth * 21)) xPos3 = 6;
|
||||
sprite2.setTextDatum(TL_DATUM);
|
||||
if (xPos3 < -tft.textWidth(eonstring) + (charWidth * 16)) xPos3 = 0;
|
||||
sprite2.fillSprite(BackgroundColor);
|
||||
sprite2.loadFont(FONT16);
|
||||
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||
@@ -2987,6 +3017,8 @@ void ShowAdvancedRDS() {
|
||||
sprite2.pushSprite(35, 175);
|
||||
eonticker = millis();
|
||||
}
|
||||
}
|
||||
eonstringold = eonstring;
|
||||
|
||||
String rtplusstring;
|
||||
if (radio.rds.hasRDSplus) rtplusstring = "1) " + String(radio.rds.RTContent1) + " - 2) " + String(radio.rds.RTContent2) + " "; else rtplusstring = myLanguage[language][89];
|
||||
@@ -2994,18 +3026,27 @@ void ShowAdvancedRDS() {
|
||||
if (radio.rds.hasRDSplus) tftPrint(-1, "RT+", 124, 51, SecondaryColor, SecondaryColorSmooth, FONT16); else tftPrint(-1, "RT+", 124, 51, GreyoutColor, BackgroundColor, FONT16);
|
||||
hasrtplusold = radio.rds.hasRDSplus;
|
||||
}
|
||||
if (millis() - rtplusticker >= 100) { //350
|
||||
if (xPos3 == 6) {
|
||||
if (eonstring.length() < 20) {
|
||||
if (rtplusstringold != rtplusstring) {
|
||||
xPos4 = 0;
|
||||
sprite2.fillSprite(BackgroundColor);
|
||||
sprite2.loadFont(FONT16);
|
||||
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||
sprite2.drawString(rtplusstring, xPos4, 0);
|
||||
sprite2.pushSprite(35, 150);
|
||||
}
|
||||
} else {
|
||||
if (millis() - rtplusticker >= 50)
|
||||
if (xPos4 == 0) {
|
||||
if (millis() - rtplustickerhold >= 2000) {
|
||||
xPos4 -= 1;//charWidth;
|
||||
xPos4 --;
|
||||
rtplustickerhold = millis();
|
||||
}
|
||||
} else {
|
||||
xPos4 -= 1;//charWidth;
|
||||
xPos4 --;
|
||||
rtplustickerhold = millis();
|
||||
}
|
||||
if (xPos4 < -tft.textWidth(rtplusstring) + (charWidth * 21)) xPos4 = 6;
|
||||
sprite2.setTextDatum(TL_DATUM);
|
||||
if (xPos4 < -tft.textWidth(rtplusstring) + (charWidth * 16)) xPos4 = 0;
|
||||
sprite2.fillSprite(BackgroundColor);
|
||||
sprite2.loadFont(FONT16);
|
||||
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||
@@ -3013,6 +3054,7 @@ void ShowAdvancedRDS() {
|
||||
sprite2.pushSprite(35, 150);
|
||||
rtplusticker = millis();
|
||||
}
|
||||
rtplusstringold = rtplusstring;
|
||||
|
||||
if (TPold != radio.rds.hasTP) {
|
||||
if (radio.rds.hasTP == true) tftPrint(-1, "TP", 6, 51, SecondaryColor, SecondaryColorSmooth, FONT16); else tftPrint(-1, "TP", 6, 51, GreyoutColor, BackgroundColor, FONT16);
|
||||
@@ -3067,9 +3109,9 @@ void ShowAdvancedRDS() {
|
||||
if (radio.rds.hasTMC == true) tftPrint(-1, "TMC", 90, 51, SecondaryColor, SecondaryColorSmooth, FONT16); else tftPrint(-1, "TMC", 90, 51, GreyoutColor, BackgroundColor, FONT16);
|
||||
hastmcold = radio.rds.hasTMC;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void doAF() {
|
||||
void doAF() {
|
||||
if (radio.af_counter != af_counterold && radio.rds.hasAF == true) {
|
||||
if (wifi) {
|
||||
Udp.beginPacket(remoteip, 9030);
|
||||
@@ -3089,9 +3131,9 @@ void doAF() {
|
||||
Udp.endPacket();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void showECC() {
|
||||
void showECC() {
|
||||
if (ECCold != radio.rds.ECC) {
|
||||
String ECC;
|
||||
if (radio.rds.picode[0] == '1') {
|
||||
@@ -3188,9 +3230,9 @@ void showECC() {
|
||||
}
|
||||
ECCold = radio.rds.ECC;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void showPI() {
|
||||
void showPI() {
|
||||
if (strcmp(radio.rds.picode, radioIdPrevious)) {
|
||||
if (advancedRDS) {
|
||||
tftReplace(-1, PIold, radio.rds.picode, 244, 76, PrimaryColor, PrimaryColorSmooth, FONT28);
|
||||
@@ -3207,9 +3249,9 @@ void showPI() {
|
||||
}
|
||||
strcpy(radioIdPrevious, radio.rds.picode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void showPTY() {
|
||||
void showPTY() {
|
||||
if (strcmp(radio.rds.stationType, programTypePrevious)) {
|
||||
if (advancedRDS) tftReplace(-1, PTYold, radio.rds.stationType, 38, 109, PrimaryColor, PrimaryColorSmooth, FONT16); else tftReplace(-1, PTYold, radio.rds.stationType, 38, 170, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
PTYold = radio.rds.stationType;
|
||||
@@ -3221,9 +3263,9 @@ void showPTY() {
|
||||
}
|
||||
strcpy(programTypePrevious, radio.rds.stationType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void showPS() {
|
||||
void showPS() {
|
||||
if (radio.rds.stationName != programServicePrevious) {
|
||||
if (advancedRDS) {
|
||||
tftReplace(-1, PSold, radio.rds.stationName, 38, 76, PrimaryColor, PrimaryColorSmooth, FONT28);
|
||||
@@ -3250,48 +3292,60 @@ void showPS() {
|
||||
}
|
||||
programServicePrevious = radio.rds.stationName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void showRadioText() {
|
||||
void showRadioText() {
|
||||
if (radio.rds.hasRT && RDSstatus) {
|
||||
if (millis() - rtticker >= 100) { // 350
|
||||
if (xPos == 6) {
|
||||
if (millis() - rttickerhold >= 2000) {
|
||||
xPos -= 1;//= charWidth;
|
||||
rttickerhold = millis();
|
||||
}
|
||||
} else {
|
||||
xPos -= 1;//= charWidth;
|
||||
rttickerhold = millis();
|
||||
}
|
||||
|
||||
if (advancedRDS) {
|
||||
if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 21)) xPos = 6;
|
||||
if (advancedRDS && radio.rds.stationText.length() < 20) {
|
||||
xPos = 0;
|
||||
sprite2.fillSprite(BackgroundColor);
|
||||
sprite2.setTextDatum(TL_DATUM);
|
||||
sprite2.loadFont(FONT16);
|
||||
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||
sprite2.fillSprite(BackgroundColor);
|
||||
sprite2.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 0, 1);
|
||||
sprite2.pushSprite(35, 222);
|
||||
} else {
|
||||
if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 24)) xPos = 6;
|
||||
sprite.fillSprite(BackgroundColor);
|
||||
sprite.setTextDatum(TL_DATUM);
|
||||
} else if (!advancedRDS && radio.rds.stationText.length() < 29) {
|
||||
if (RTold != radio.rds.stationText + " " + radio.rds.stationText32) {
|
||||
xPos = 0;
|
||||
sprite.fillSprite(BackgroundColor);
|
||||
sprite.loadFont(FONT16);
|
||||
sprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||
sprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 0, 1);
|
||||
sprite.pushSprite(1, 222);
|
||||
sprite.pushSprite(38, 222);
|
||||
}
|
||||
} else {
|
||||
if (millis() - rtticker >= 50) {
|
||||
if (xPos == 0) {
|
||||
if (millis() - rttickerhold >= 2000) {
|
||||
xPos --;
|
||||
rttickerhold = millis();
|
||||
}
|
||||
} else {
|
||||
xPos --;
|
||||
rttickerhold = millis();
|
||||
}
|
||||
if (advancedRDS) {
|
||||
if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 16)) xPos = 0;
|
||||
sprite2.fillSprite(BackgroundColor);
|
||||
sprite2.loadFont(FONT16);
|
||||
sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||
sprite2.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 0, 1);
|
||||
sprite2.pushSprite(35, 222);
|
||||
} else {
|
||||
if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 26)) xPos = 0;
|
||||
sprite.fillSprite(BackgroundColor);
|
||||
sprite.loadFont(FONT16);
|
||||
sprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||
sprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 0, 1);
|
||||
sprite.pushSprite(38, 222);
|
||||
}
|
||||
rtticker = millis();
|
||||
RTold = radio.rds.stationText + " " + radio.rds.stationText32;
|
||||
cleanup = true;
|
||||
}
|
||||
}
|
||||
} else if (cleanup == true) {
|
||||
sprite.fillSprite(BackgroundColor);
|
||||
sprite2.fillSprite(BackgroundColor);
|
||||
if (advancedRDS) sprite2.pushSprite(35, 222); else sprite.pushSprite(1, 222);
|
||||
if (advancedRDS) sprite2.pushSprite(35, 222); else sprite.pushSprite(38, 222);
|
||||
cleanup = false;
|
||||
}
|
||||
|
||||
@@ -3309,9 +3363,10 @@ void showRadioText() {
|
||||
Udp.endPacket();
|
||||
}
|
||||
tft.drawLine(0, 239, 320, 239, FrameColor);
|
||||
}
|
||||
RTold = radio.rds.stationText + " " + radio.rds.stationText32;
|
||||
}
|
||||
|
||||
void BuildMenu() {
|
||||
void BuildMenu() {
|
||||
advancedRDS = false;
|
||||
tft.fillScreen(BackgroundColor);
|
||||
tft.drawRect(0, 0, 320, 240, FrameColor);
|
||||
@@ -3362,7 +3417,7 @@ void BuildMenu() {
|
||||
tftPrint(-1, myLanguage[language][45], 14, 116, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, myLanguage[language][46], 14, 136, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, myLanguage[language][49], 14, 156, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, myLanguage[language][49], 14, 176, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, myLanguage[language][50], 14, 176, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
if (wifi) tftPrint(-1, String(myLanguage[language][51]) + " IP: " + String(WiFi.localIP().toString()), 14, 196, ActiveColor, ActiveColorSmooth, FONT16); else tftPrint(-1, myLanguage[language][51], 14, 196, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, myLanguage[language][52], 14, 216, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
|
||||
@@ -3376,7 +3431,7 @@ void BuildMenu() {
|
||||
if (radio.rds.underscore) tftPrint(1, myLanguage[language][42], 305, 156, PrimaryColor, PrimaryColorSmooth, FONT16); else tftPrint(1, myLanguage[language][30], 305, 156, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
if (USBmode) tftPrint(1, "RDS Spy", 305, 176, PrimaryColor, PrimaryColorSmooth, FONT16); else tftPrint(1, "XDRGTK", 305, 176, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
if (wifi) tftPrint(1, myLanguage[language][42], 305, 196, PrimaryColor, PrimaryColorSmooth, FONT16); else tftPrint(1, myLanguage[language][30], 305, 196, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
tftPrint(1, "->", 305, 196, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
tftPrint(1, ">", 305, 216, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
@@ -3436,9 +3491,9 @@ void BuildMenu() {
|
||||
break;
|
||||
}
|
||||
analogWrite(SMETERPIN, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void MuteScreen(bool setting) {
|
||||
void MuteScreen(bool setting) {
|
||||
if (!setting && screenmute) {
|
||||
screenmute = false;
|
||||
setupmode = true;
|
||||
@@ -3452,9 +3507,9 @@ void MuteScreen(bool setting) {
|
||||
analogWrite(CONTRASTPIN, 0);
|
||||
tft.writecommand(0x10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ShowAFEON() {
|
||||
void ShowAFEON() {
|
||||
if (radio.rds.hasAF) {
|
||||
if (hasafold == false) {
|
||||
tftPrint(-1, myLanguage[language][87], 6, 54, BackgroundColor, BackgroundColor, FONT16);
|
||||
@@ -3504,7 +3559,7 @@ void ShowAFEON() {
|
||||
tftPrint(-1, String(eonpsold[i]), 218, 54 + (15 * i), BackgroundColor, BackgroundColor, FONT16);
|
||||
eonpsold[i] = radio.eon[i].ps;
|
||||
}
|
||||
tftPrint(-1, String(radio.eon[i].ps), 218, 54 + (15 * i), PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
tftPrint(-1, String(radio.eon[i].ps), 218, 54 + (15 * i), SecondaryColor, SecondaryColorSmooth, FONT16);
|
||||
}
|
||||
|
||||
if (radio.eon[i].mappedfreq > 0) {
|
||||
@@ -3518,9 +3573,9 @@ void ShowAFEON() {
|
||||
if (i == 10) i = 254;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BuildAFScreen() {
|
||||
void BuildAFScreen() {
|
||||
if (!afscreen && RDSstatus) {
|
||||
tft.drawRoundRect(20, 30, 274, 170, 5, ActiveColor);
|
||||
tft.fillRoundRect(22, 32, 270, 166, 5, BackgroundColor);
|
||||
@@ -3558,9 +3613,9 @@ void BuildAFScreen() {
|
||||
programServicePrevious = "0";
|
||||
for (byte i = 0; i < 11; i++) eonpsold[i] = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BuildAdvancedRDS() {
|
||||
void BuildAdvancedRDS() {
|
||||
afscreen = false;
|
||||
afpage = false;
|
||||
afpagenr = 0;
|
||||
@@ -3626,7 +3681,7 @@ void BuildAdvancedRDS() {
|
||||
tft.drawCircle(81, 15, 9, GreyoutColor);
|
||||
tft.drawCircle(91, 15, 10, GreyoutColor);
|
||||
tft.drawCircle(91, 15, 9, GreyoutColor);
|
||||
tft.drawBitmap(110, 5, RDSLogo, 67, 22, GreyoutColor);
|
||||
tft.drawBitmap(139, 5, RDSLogo, 35, 22, GreyoutColor);
|
||||
|
||||
if (StereoToggle == false) {
|
||||
tft.drawCircle(86, 15, 10, SecondaryColor);
|
||||
@@ -3678,9 +3733,9 @@ void BuildAdvancedRDS() {
|
||||
BWreset = true;
|
||||
pinstringold = "";
|
||||
ShowMemoryPos();
|
||||
}
|
||||
}
|
||||
|
||||
void BuildDisplay() {
|
||||
void BuildDisplay() {
|
||||
afscreen = false;
|
||||
advancedRDS = false;
|
||||
if (theme == 0) {
|
||||
@@ -3696,6 +3751,7 @@ void BuildDisplay() {
|
||||
tft.drawLine(0, 187, 320, 187, FrameColor);
|
||||
tft.drawLine(0, 218, 320, 218, FrameColor);
|
||||
tft.drawLine(108, 30, 108, 0, FrameColor);
|
||||
tft.drawLine(137, 30, 137, 0, FrameColor);
|
||||
tft.drawLine(174, 30, 174, 0, FrameColor);
|
||||
tft.drawLine(20, 120, 204, 120, TFT_DARKGREY);
|
||||
if (!showmodulation) tft.drawLine(20, 150, 204, 150, GreyoutColor); else tft.drawLine(20, 150, 204, 150, TFT_DARKGREY);
|
||||
@@ -3718,6 +3774,7 @@ void BuildDisplay() {
|
||||
if (region == 0) tftPrint(-1, "PI:", 216, 197, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
if (region == 1) tftPrint(-1, "ID:", 216, 197, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, "PS:", 6, 197, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, "RT:", 6, 222, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, "PTY:", 6, 170, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
|
||||
tftPrint(0, "S", 7, 107, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
@@ -3756,7 +3813,7 @@ void BuildDisplay() {
|
||||
tft.drawCircle(81, 15, 9, GreyoutColor);
|
||||
tft.drawCircle(91, 15, 10, GreyoutColor);
|
||||
tft.drawCircle(91, 15, 9, GreyoutColor);
|
||||
tft.drawBitmap(110, 5, RDSLogo, 67, 22, GreyoutColor);
|
||||
tft.drawBitmap(139, 5, RDSLogo, 35, 22, GreyoutColor);
|
||||
if (StereoToggle == false) {
|
||||
tft.drawCircle(86, 15, 10, SecondaryColor);
|
||||
tft.drawCircle(86, 15, 9, SecondaryColor);
|
||||
@@ -3789,9 +3846,9 @@ void BuildDisplay() {
|
||||
strcpy(radioIdPrevious, "0");
|
||||
programServicePrevious = "0";
|
||||
BWreset = true;
|
||||
}
|
||||
}
|
||||
|
||||
void ShowFreq(int mode) {
|
||||
void ShowFreq(int mode) {
|
||||
if (screenmute == false) {
|
||||
if (setupmode == false) {
|
||||
if (band == 1) { // Fix Me :take care of 9K/10K Step
|
||||
@@ -3884,9 +3941,9 @@ void ShowFreq(int mode) {
|
||||
Udp.endPacket();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ShowSignalLevel() {
|
||||
void ShowSignalLevel() {
|
||||
if (screenmute == false) {
|
||||
if (millis() >= snrupdatetimer + TIMER_SNR_TIMER) {
|
||||
snrupdatetimer = millis();
|
||||
@@ -3953,18 +4010,18 @@ void ShowSignalLevel() {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ShowRDSLogo(bool RDSstatus) {
|
||||
void ShowRDSLogo(bool RDSstatus) {
|
||||
if (screenmute == false) {
|
||||
if (RDSstatus != RDSstatusold) {
|
||||
if (RDSstatus) tft.drawBitmap(110, 5, RDSLogo, 67, 22, SecondaryColor); else tft.drawBitmap(110, 5, RDSLogo, 67, 22, GreyoutColor);
|
||||
if (RDSstatus) tft.drawBitmap(139, 5, RDSLogo, 35, 22, InsignificantColor); else tft.drawBitmap(139, 5, RDSLogo, 35, 22, GreyoutColor);
|
||||
RDSstatusold = RDSstatus;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ShowStereoStatus() {
|
||||
void ShowStereoStatus() {
|
||||
if (StereoToggle == true) {
|
||||
if (band == BAND_FM) Stereostatus = radio.getStereoStatus(); else Stereostatus = 0;
|
||||
if (Stereostatus != Stereostatusold) {
|
||||
@@ -3984,9 +4041,9 @@ void ShowStereoStatus() {
|
||||
Stereostatusold = Stereostatus;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ShowOffset() {
|
||||
void ShowOffset() {
|
||||
if (OStatus != OStatusold) {
|
||||
if (millis() >= offsetupdatetimer + TIMER_OFFSET_TIMER) {
|
||||
offsetupdatetimer = millis();
|
||||
@@ -4085,9 +4142,9 @@ void ShowOffset() {
|
||||
}
|
||||
OStatusold = OStatus;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ShowBW() {
|
||||
void ShowBW() {
|
||||
if (millis() >= bwupdatetimer + TIMER_BW_TIMER) {
|
||||
bwupdatetimer = millis();
|
||||
} else {
|
||||
@@ -4105,9 +4162,9 @@ void ShowBW() {
|
||||
Udp.endPacket();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ShowModLevel() {
|
||||
void ShowModLevel() {
|
||||
if (showmodulation) {
|
||||
int segments;
|
||||
|
||||
@@ -4135,9 +4192,9 @@ void ShowModLevel() {
|
||||
peakholdmillis = millis();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void doSquelch() {
|
||||
void doSquelch() {
|
||||
if (XDRGTKUSB == false && XDRGTKTCP == false) {
|
||||
Squelch = analogRead(PIN_POT) / 4 - 100;
|
||||
if (Squelch > 920) Squelch = 920;
|
||||
@@ -4166,17 +4223,21 @@ void doSquelch() {
|
||||
if (Squelch != -1) {
|
||||
if (Squelch < SStatus || Squelch == -100 || Squelch == 0) {
|
||||
radio.setUnMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
|
||||
SQ = false;
|
||||
} else {
|
||||
radio.setMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
|
||||
SQ = true;
|
||||
}
|
||||
} else {
|
||||
if (Stereostatus == true) {
|
||||
radio.setUnMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
|
||||
SQ = false;
|
||||
} else {
|
||||
radio.setMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
|
||||
SQ = true;
|
||||
}
|
||||
}
|
||||
@@ -4204,24 +4265,28 @@ void doSquelch() {
|
||||
if (seek == false && Squelch != 920) {
|
||||
if (Squelch < SStatus || Squelch == -100 || Squelch == 0) {
|
||||
radio.setUnMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
|
||||
SQ = false;
|
||||
} else {
|
||||
radio.setMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
|
||||
SQ = true;
|
||||
}
|
||||
} else {
|
||||
if (seek == false && Stereostatus == true) {
|
||||
radio.setUnMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
|
||||
SQ = false;
|
||||
} else {
|
||||
radio.setMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
|
||||
SQ = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void updateBW() {
|
||||
void updateBW() {
|
||||
if (BWset == 0) {
|
||||
if (screenmute == false && advancedRDS == false && afscreen == false) {
|
||||
tft.drawRoundRect(248, 35, 70, 20, 5, ActiveColor);
|
||||
@@ -4234,9 +4299,9 @@ void updateBW() {
|
||||
tftPrint(0, "AUTO BW", 282, 38, GreyoutColor, BackgroundColor, FONT16);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void updateiMS() {
|
||||
void updateiMS() {
|
||||
if (band == BAND_FM) {
|
||||
if (iMSset == 0) {
|
||||
if (screenmute == false) {
|
||||
@@ -4252,9 +4317,9 @@ void updateiMS() {
|
||||
radio.setiMS(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void updateEQ() {
|
||||
void updateEQ() {
|
||||
if (band == BAND_FM) {
|
||||
if (EQset == 0) {
|
||||
if (screenmute == false) {
|
||||
@@ -4270,9 +4335,9 @@ void updateEQ() {
|
||||
radio.setEQ(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void updateSWMIBand() {
|
||||
void updateSWMIBand() {
|
||||
switch (SWMIBandPos) {
|
||||
case SW_MI_BAND_11M:
|
||||
case SW_MI_BAND_13M:
|
||||
@@ -4296,9 +4361,9 @@ void updateSWMIBand() {
|
||||
tftPrint(-1, SWMIBandstringold, 50, 51, BackgroundColor, BackgroundColor, FONT16);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void doBW() {
|
||||
void doBW() {
|
||||
if (band == BAND_FM) {
|
||||
if (BWset > 16) BWset = 0;
|
||||
|
||||
@@ -4390,9 +4455,9 @@ void doBW() {
|
||||
}
|
||||
updateBW();
|
||||
BWreset = true;
|
||||
}
|
||||
}
|
||||
|
||||
void doTuneMode() {
|
||||
void doTuneMode() {
|
||||
switch (tunemode) {
|
||||
case TUNE_MAN:
|
||||
if (band == BAND_FM) {
|
||||
@@ -4422,9 +4487,9 @@ void doTuneMode() {
|
||||
ShowFreq(0);
|
||||
EEPROM.writeByte(EE_BYTE_TUNEMODE, tunemode);
|
||||
EEPROM.commit();
|
||||
}
|
||||
}
|
||||
|
||||
void ShowTuneMode() {
|
||||
void ShowTuneMode() {
|
||||
switch (tunemode) {
|
||||
case TUNE_MAN:
|
||||
if (band == BAND_SW) {
|
||||
@@ -4486,9 +4551,9 @@ void ShowTuneMode() {
|
||||
tftPrint(0, "MEM", 22, 82, GreyoutColor, BackgroundColor, FONT16);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ShowRSSI() {
|
||||
void ShowRSSI() {
|
||||
if (wifi) rssi = WiFi.RSSI(); else rssi = 0;
|
||||
if (rssiold != rssi) {
|
||||
rssiold = rssi;
|
||||
@@ -4507,9 +4572,9 @@ void ShowRSSI() {
|
||||
tft.drawBitmap(272, 4, WiFi1, 25, 25, PrimaryColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ShowBattery() {
|
||||
void ShowBattery() {
|
||||
if (millis() >= batupdatetimer + TIMER_BAT_TIMER) {
|
||||
batupdatetimer = millis();
|
||||
} else {
|
||||
@@ -4537,9 +4602,9 @@ void ShowBattery() {
|
||||
}
|
||||
batteryold = battery;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Communication() {
|
||||
void Communication() {
|
||||
if (menu == false) {
|
||||
if (wifi) {
|
||||
int packetSize = Udp.parsePacket();
|
||||
@@ -4689,15 +4754,15 @@ void Communication() {
|
||||
}
|
||||
if (XDRGTKUSB || XDRGTKTCP) XDRGTKRoutine();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DataPrint(String string) {
|
||||
void DataPrint(String string) {
|
||||
if (XDRGTKUSB) Serial.print(string);
|
||||
if (XDRGTKTCP) RemoteClient.print(string);
|
||||
}
|
||||
}
|
||||
|
||||
void XDRGTKRoutine() {
|
||||
void XDRGTKRoutine() {
|
||||
if (XDRGTKUSB) {
|
||||
if (Serial.available())
|
||||
{
|
||||
@@ -4992,10 +5057,12 @@ void XDRGTKRoutine() {
|
||||
VolSet = atoi(buff + 1);
|
||||
if (VolSet == 0) {
|
||||
radio.setMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
|
||||
XDRMute = true;
|
||||
SQ = true;
|
||||
} else {
|
||||
radio.setUnMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
|
||||
radio.setVolume((VolSet - 40) / 10);
|
||||
XDRMute = false;
|
||||
}
|
||||
@@ -5013,6 +5080,7 @@ void XDRGTKRoutine() {
|
||||
store = true;
|
||||
XDRMute = false;
|
||||
radio.setUnMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
|
||||
VolSet = EEPROM.readInt(EE_BYTE_VOLSET);
|
||||
LowLevelSet = EEPROM.readInt(EE_BYTE_LOWLEVELSET);
|
||||
softmuteam = EEPROM.readByte(EE_BYTE_SOFTMUTEAM);
|
||||
@@ -5071,9 +5139,9 @@ void XDRGTKRoutine() {
|
||||
}
|
||||
}
|
||||
DataPrint(String(((SStatus * 100) + 10875) / 1000) + "." + String(((SStatus * 100) + 10875) / 100 % 10) + ", " + String(WAM / 10) + ", " + String(SNR) + "\n");
|
||||
}
|
||||
}
|
||||
|
||||
void TuneUp() {
|
||||
void TuneUp() {
|
||||
aftest = true;
|
||||
aftimer = millis();
|
||||
unsigned int temp = 0;
|
||||
@@ -5152,9 +5220,9 @@ void TuneUp() {
|
||||
radio.clearRDS(fullsearchrds);
|
||||
if (RDSSPYUSB == true) Serial.print("G:\r\nRESET-------\r\n\r\n");
|
||||
if (RDSSPYTCP == true) RemoteClient.print("G:\r\nRESET-------\r\n\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
void TuneDown() {
|
||||
void TuneDown() {
|
||||
aftest = true;
|
||||
aftimer = millis();
|
||||
unsigned int temp = 0;
|
||||
@@ -5233,17 +5301,24 @@ void TuneDown() {
|
||||
radio.clearRDS(fullsearchrds);
|
||||
if (RDSSPYUSB == true) Serial.print("G:\r\nRESET-------\r\n\r\n");
|
||||
if (RDSSPYTCP == true) RemoteClient.print("G:\r\nRESET-------\r\n\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
void EdgeBeeper() {
|
||||
void EdgeBeeper() {
|
||||
bool x = radio.mute;
|
||||
radio.tone(50, -5, 2000);
|
||||
if (x) radio.setMute(); else radio.setUnMute();
|
||||
}
|
||||
if (x) {
|
||||
radio.setMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
|
||||
} else {
|
||||
radio.setUnMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
|
||||
}
|
||||
}
|
||||
|
||||
void Seek(bool mode) {
|
||||
void Seek(bool mode) {
|
||||
if (band == BAND_FM) {
|
||||
radio.setMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
|
||||
if (mode == false) TuneDown(); else TuneUp();
|
||||
delay(50);
|
||||
ShowFreq(0);
|
||||
@@ -5255,6 +5330,7 @@ void Seek(bool mode) {
|
||||
if ((USN < 200) && (WAM < 230) && (OStatus < 80 && OStatus > -80) && (Squelch < SStatus || Squelch == 920)) {
|
||||
seek = false;
|
||||
radio.setUnMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, GreyoutColor);
|
||||
store = true;
|
||||
} else {
|
||||
seek = true;
|
||||
@@ -5262,9 +5338,9 @@ void Seek(bool mode) {
|
||||
if (RDSSPYTCP == true) RemoteClient.print("G:\r\nRESET-------\r\n\r\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SetTunerPatch() {
|
||||
void SetTunerPatch() {
|
||||
if (TEF != 101 && TEF != 102 && TEF != 205) {
|
||||
radio.init(102);
|
||||
uint16_t device;
|
||||
@@ -5275,16 +5351,16 @@ void SetTunerPatch() {
|
||||
tft.fillScreen(BackgroundColor);
|
||||
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
|
||||
|
||||
if (TEF == 0) tftPrint(0, myLanguage[language][35], 150, 78, ActiveColor, ActiveColorSmooth, FONT28); else tftPrint(0, myLanguage[language][36], 150, 78, ActiveColor, ActiveColorSmooth, FONT28);
|
||||
if (TEF == 0) tftPrint(0, myLanguage[language][35], 150, 78, ActiveColor, ActiveColorSmooth, FONT28); else tftPrint(0, myLanguage[language][36] + String(TEF), 150, 78, ActiveColor, ActiveColorSmooth, FONT28);
|
||||
tftPrint(0, myLanguage[language][37], 150, 108, ActiveColor, ActiveColorSmooth, FONT28);
|
||||
EEPROM.writeByte(EE_BYTE_TEF, TEF);
|
||||
EEPROM.commit();
|
||||
while (true);
|
||||
for (;;);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de/online/rgb565-color-picker/
|
||||
void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de/online/rgb565-color-picker/
|
||||
switch (CurrentTheme) {
|
||||
case 0: // Default PE5PVB theme
|
||||
PrimaryColor = 0xFFE0;
|
||||
@@ -5296,7 +5372,7 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
|
||||
GreyoutColor = 0x38E7;
|
||||
BackgroundColor = TFT_BLACK;
|
||||
ActiveColor = 0xFFFF;
|
||||
ActiveColorSmooth = 0x4208;
|
||||
ActiveColorSmooth = 0x39E7;
|
||||
SignificantColor = 0xF800;
|
||||
SignificantColorSmooth = 0x7C00;
|
||||
InsignificantColor = 0x07E0;
|
||||
@@ -5423,9 +5499,9 @@ void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de
|
||||
CurrentThemeString = myLanguage[language][85];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void read_encoder() {
|
||||
void read_encoder() {
|
||||
static uint8_t old_AB = 3;
|
||||
static int8_t encval = 0;
|
||||
static const int8_t enc_states[] = {0, -1, 1, 0, 1, 0, 0, -1, -1, 0, 0, 1, 0, 1, -1, 0};
|
||||
@@ -5453,9 +5529,9 @@ void read_encoder() {
|
||||
encval = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void tryWiFi() {
|
||||
void tryWiFi() {
|
||||
if (!setupmode) {
|
||||
tft.drawRoundRect(1, 60, 319, 140, 5, ActiveColor);
|
||||
tft.fillRoundRect(3, 62, 315, 136, 5, BackgroundColor);
|
||||
@@ -5468,16 +5544,14 @@ void tryWiFi() {
|
||||
if (!setupmode) tftPrint(0, myLanguage[language][57], 155, 128, InsignificantColor, InsignificantColorSmooth, FONT28);
|
||||
wifi = true;
|
||||
} else {
|
||||
Server.end();
|
||||
Udp.stop();
|
||||
if (!setupmode) tftPrint(0, myLanguage[language][56], 155, 128, SignificantColor, SignificantColorSmooth, FONT28);
|
||||
wifi = false;
|
||||
XDRGTKTCP = false;
|
||||
RDSSPYTCP = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void passwordcrypt() {
|
||||
void passwordcrypt() {
|
||||
int generated = 0;
|
||||
while (generated < 16)
|
||||
{
|
||||
@@ -5489,9 +5563,9 @@ void passwordcrypt() {
|
||||
}
|
||||
salt = saltkey + XDRGTK_key;
|
||||
cryptedpassword = String(sha1(salt));
|
||||
}
|
||||
}
|
||||
|
||||
void DefaultSettings() {
|
||||
void DefaultSettings() {
|
||||
EEPROM.writeByte(EE_BYTE_CHECKBYTE, EE_CHECKBYTE_VALUE);
|
||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, 10000);
|
||||
EEPROM.writeInt(EE_BYTE_VOLSET, 0);
|
||||
@@ -5552,9 +5626,9 @@ void DefaultSettings() {
|
||||
EEPROM.writeByte(EE_BYTE_AF, 0);
|
||||
EEPROM.writeByte(EE_BYTE_STEREO, 1);
|
||||
EEPROM.commit();
|
||||
}
|
||||
}
|
||||
|
||||
void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int color, int smoothcolor, const uint8_t* font) {
|
||||
void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int color, int smoothcolor, const uint8_t* font) {
|
||||
tft.loadFont(font);
|
||||
tft.setTextColor(color, smoothcolor, false);
|
||||
switch (offset) {
|
||||
@@ -5564,9 +5638,9 @@ void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int colo
|
||||
}
|
||||
tft.drawString(text, x, y, 1);
|
||||
tft.unloadFont();
|
||||
}
|
||||
}
|
||||
|
||||
void tftReplace(int8_t offset, const String & textold, const String & text, int16_t x, int16_t y, int color, int smoothcolor, const uint8_t* font) {
|
||||
void tftReplace(int8_t offset, const String & textold, const String & text, int16_t x, int16_t y, int color, int smoothcolor, const uint8_t* font) {
|
||||
tft.loadFont(font);
|
||||
tft.setTextColor(BackgroundColor, BackgroundColor, false);
|
||||
switch (offset) {
|
||||
@@ -5583,4 +5657,4 @@ void tftReplace(int8_t offset, const String & textold, const String & text, int1
|
||||
}
|
||||
tft.drawString(text, x, y);
|
||||
tft.unloadFont();
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
+5755
-6030
File diff suppressed because it is too large
Load Diff
+14094
-14704
File diff suppressed because it is too large
Load Diff
@@ -618,7 +618,6 @@ void TEF6686::readRDS(bool showrdserrors)
|
||||
RDScharConverter(rt_buffer, RTtext, sizeof(RTtext) / sizeof(wchar_t), true); // Convert 8 bit ASCII to 16 bit ASCII
|
||||
rds.stationText = convertToUTF8(RTtext); // Convert RDS characterset to ASCII
|
||||
rds.stationText = extractUTF8Substring(rds.stationText, 0, 64, true); // Make sure RT does not exceed 64 characters
|
||||
rds.stationText += " "; // Add extra spaces
|
||||
|
||||
for (int i = 0; i < 64; i++) rt_buffer2[i] = rt_buffer[i];
|
||||
}
|
||||
@@ -646,7 +645,6 @@ void TEF6686::readRDS(bool showrdserrors)
|
||||
RDScharConverter(rt_buffer32, RTtext, sizeof(RTtext) / sizeof(wchar_t), true); // Convert 8 bit ASCII to 16 bit ASCII
|
||||
rds.stationText32 = convertToUTF8(RTtext); // Convert RDS characterset to ASCII
|
||||
rds.stationText32 = extractUTF8Substring(rds.stationText32, 0, 32, true); // Make sure RT does not exceed 32 characters
|
||||
rds.stationText32 += " "; // Add extra spaces
|
||||
}
|
||||
} break;
|
||||
|
||||
|
||||
+147
-122
@@ -179,138 +179,163 @@ static const uint8_t TEFLogo[] PROGMEM = {
|
||||
};
|
||||
|
||||
static const uint8_t RDSLogo[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00,
|
||||
0x07, 0xfc, 0x00, 0x1f, 0xe8, 0x00, 0x03, 0xf8, 0x00,
|
||||
0x07, 0xff, 0x00, 0x1f, 0xfc, 0x00, 0x0f, 0xfe, 0x00,
|
||||
0x0f, 0xff, 0x80, 0x3f, 0xff, 0x00, 0x1f, 0xfc, 0x00,
|
||||
0x0f, 0xff, 0xc0, 0x1f, 0xff, 0x00, 0x3f, 0xf8, 0x00,
|
||||
0x0f, 0x8f, 0xc0, 0x3e, 0x3f, 0x80, 0x3e, 0x10, 0x00,
|
||||
0x0f, 0x0f, 0x80, 0x3e, 0x0f, 0xc0, 0x3e, 0x00, 0x00,
|
||||
0x1f, 0x0f, 0x80, 0x3c, 0x0f, 0x80, 0x7e, 0x00, 0x00,
|
||||
0x1f, 0x0f, 0x9c, 0x7e, 0x0f, 0xce, 0x7f, 0x80, 0x00,
|
||||
0x1f, 0xbf, 0x1e, 0x7c, 0x07, 0xce, 0x3f, 0xf0, 0x00,
|
||||
0x1f, 0xfe, 0x1c, 0x7c, 0x0f, 0x9e, 0x3f, 0xf8, 0x00,
|
||||
0x1f, 0xfc, 0x1c, 0x7c, 0x0f, 0x9c, 0x1f, 0xf8, 0x00,
|
||||
0x3f, 0xf0, 0x3c, 0x78, 0x0f, 0x9c, 0x03, 0xf8, 0x00,
|
||||
0x3e, 0xf8, 0x10, 0xf8, 0x1f, 0x14, 0x00, 0xf8, 0x00,
|
||||
0x3e, 0xf8, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x00,
|
||||
0x3e, 0x7c, 0x00, 0xf8, 0xfe, 0x00, 0xe1, 0xf8, 0x00,
|
||||
0x3c, 0x7e, 0x00, 0xff, 0xfc, 0x00, 0xf7, 0xf0, 0x00,
|
||||
0x7c, 0x7e, 0x01, 0xff, 0xf8, 0x01, 0xff, 0xe0, 0x00,
|
||||
0x7c, 0x3f, 0x01, 0xff, 0xe0, 0x03, 0xff, 0xe0, 0x00,
|
||||
0x7c, 0x3f, 0x01, 0xff, 0x80, 0x00, 0xff, 0x80, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
0x01, 0xfe, 0x0f, 0xf0, 0x00,
|
||||
0x07, 0x03, 0xb8, 0x1c, 0x00,
|
||||
0x0c, 0xfc, 0xe7, 0xe6, 0x00,
|
||||
0x1b, 0x86, 0xdc, 0x3b, 0x00,
|
||||
0x36, 0x79, 0xb3, 0xcd, 0x80,
|
||||
0x6d, 0xff, 0x6f, 0xf6, 0xc0,
|
||||
0x5b, 0xfe, 0xdf, 0xfb, 0x40,
|
||||
0x57, 0xfe, 0xbf, 0xfd, 0x60,
|
||||
0xd7, 0xfd, 0xbf, 0xfd, 0x60,
|
||||
0xb7, 0xcd, 0x7e, 0x7d, 0xa0,
|
||||
0xff, 0x85, 0x7c, 0x3f, 0xe0,
|
||||
0xff, 0x85, 0x7c, 0x3f, 0xe0,
|
||||
0xfa, 0x4d, 0x7e, 0x4b, 0xe0,
|
||||
0xf9, 0x3b, 0x7f, 0xd3, 0xe0,
|
||||
0x7d, 0x86, 0xfc, 0x37, 0xc0,
|
||||
0x7e, 0x7d, 0xfb, 0xcf, 0xc0,
|
||||
0x7f, 0x03, 0xf8, 0x1f, 0xc0,
|
||||
0x3f, 0xff, 0xff, 0xff, 0x80,
|
||||
0x1f, 0xff, 0xff, 0xff, 0x00,
|
||||
0x0f, 0xff, 0xff, 0xfe, 0x00,
|
||||
0x07, 0xff, 0xbf, 0xfc, 0x00,
|
||||
0x01, 0xfe, 0x0f, 0xf0, 0x00
|
||||
};
|
||||
|
||||
static const uint8_t Speaker[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x18, 0x00, 0x00,
|
||||
0x00, 0x38, 0x00, 0x00,
|
||||
0x00, 0xf8, 0x00, 0x00,
|
||||
0x01, 0xf8, 0x00, 0x00,
|
||||
0xff, 0xf8, 0x00, 0x00,
|
||||
0xff, 0xf8, 0x40, 0x80,
|
||||
0xff, 0xf8, 0xe1, 0xc0,
|
||||
0xff, 0xf8, 0x73, 0x80,
|
||||
0xff, 0xf8, 0x3f, 0x00,
|
||||
0xff, 0xf8, 0x1e, 0x00,
|
||||
0xff, 0xf8, 0x1e, 0x00,
|
||||
0xff, 0xf8, 0x3f, 0x00,
|
||||
0xff, 0xf8, 0x73, 0x80,
|
||||
0xff, 0xf8, 0xe1, 0xc0,
|
||||
0xff, 0xf8, 0x40, 0x80,
|
||||
0xff, 0xf8, 0x00, 0x00,
|
||||
0x01, 0xf8, 0x00, 0x00,
|
||||
0x00, 0xf8, 0x00, 0x00,
|
||||
0x00, 0x38, 0x00, 0x00,
|
||||
0x00, 0x18, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
static const uint8_t WiFi1[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x08, 0x00, 0x00,
|
||||
0x00, 0x3c, 0x00, 0x00,
|
||||
0x00, 0x1c, 0x00, 0x00,
|
||||
0x00, 0x18, 0x00, 0x00
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x08, 0x00, 0x00,
|
||||
0x00, 0x3c, 0x00, 0x00,
|
||||
0x00, 0x1c, 0x00, 0x00,
|
||||
0x00, 0x18, 0x00, 0x00
|
||||
};
|
||||
|
||||
static const uint8_t WiFi2[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x38, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00,
|
||||
0x01, 0xff, 0x80, 0x00,
|
||||
0x03, 0xff, 0x80, 0x00,
|
||||
0x03, 0xe7, 0x80, 0x00,
|
||||
0x01, 0x83, 0x80, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x18, 0x00, 0x00,
|
||||
0x00, 0x3c, 0x00, 0x00,
|
||||
0x00, 0x3c, 0x00, 0x00,
|
||||
0x00, 0x18, 0x00, 0x00
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x38, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00,
|
||||
0x01, 0xff, 0x80, 0x00,
|
||||
0x03, 0xff, 0x80, 0x00,
|
||||
0x03, 0xe7, 0x80, 0x00,
|
||||
0x01, 0x83, 0x80, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x18, 0x00, 0x00,
|
||||
0x00, 0x3c, 0x00, 0x00,
|
||||
0x00, 0x3c, 0x00, 0x00,
|
||||
0x00, 0x18, 0x00, 0x00
|
||||
};
|
||||
|
||||
static const uint8_t WiFi3[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x7f, 0x00, 0x00,
|
||||
0x01, 0x80, 0xc0, 0x00,
|
||||
0x02, 0x00, 0x20, 0x00,
|
||||
0x04, 0x7e, 0x10, 0x00,
|
||||
0x09, 0x80, 0x88, 0x00,
|
||||
0x03, 0x00, 0x48, 0x00,
|
||||
0x0c, 0x00, 0x20, 0x00,
|
||||
0x04, 0x3e, 0x10, 0x00,
|
||||
0x00, 0xc1, 0x00, 0x00,
|
||||
0x01, 0x00, 0xc0, 0x00,
|
||||
0x01, 0x36, 0x40, 0x00,
|
||||
0x01, 0x43, 0x80, 0x00,
|
||||
0x00, 0x80, 0x80, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x1c, 0x00, 0x00,
|
||||
0x00, 0x04, 0x00, 0x00,
|
||||
0x00, 0x10, 0x00, 0x00,
|
||||
0x00, 0x08, 0x00, 0x00
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x7f, 0x00, 0x00,
|
||||
0x01, 0x80, 0xc0, 0x00,
|
||||
0x02, 0x00, 0x20, 0x00,
|
||||
0x04, 0x7e, 0x10, 0x00,
|
||||
0x09, 0x80, 0x88, 0x00,
|
||||
0x03, 0x00, 0x48, 0x00,
|
||||
0x0c, 0x00, 0x20, 0x00,
|
||||
0x04, 0x3e, 0x10, 0x00,
|
||||
0x00, 0xc1, 0x00, 0x00,
|
||||
0x01, 0x00, 0xc0, 0x00,
|
||||
0x01, 0x36, 0x40, 0x00,
|
||||
0x01, 0x43, 0x80, 0x00,
|
||||
0x00, 0x80, 0x80, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x1c, 0x00, 0x00,
|
||||
0x00, 0x04, 0x00, 0x00,
|
||||
0x00, 0x10, 0x00, 0x00,
|
||||
0x00, 0x08, 0x00, 0x00
|
||||
};
|
||||
|
||||
static const uint8_t WiFi4[] PROGMEM = {
|
||||
0x00, 0xff, 0x80, 0x00,
|
||||
0x03, 0xff, 0xe0, 0x00,
|
||||
0x0f, 0xff, 0xf8, 0x00,
|
||||
0x1f, 0xff, 0xfc, 0x00,
|
||||
0x3f, 0xc1, 0xfe, 0x00,
|
||||
0x7e, 0x00, 0x3f, 0x80,
|
||||
0xfc, 0x00, 0x0f, 0x80,
|
||||
0xf0, 0x7f, 0x07, 0x80,
|
||||
0x61, 0xff, 0xc3, 0x80,
|
||||
0x63, 0xff, 0xe1, 0x00,
|
||||
0x07, 0xff, 0xf0, 0x00,
|
||||
0x0f, 0xc0, 0xf8, 0x00,
|
||||
0x0f, 0x00, 0x7c, 0x00,
|
||||
0x0e, 0x00, 0x38, 0x00,
|
||||
0x04, 0x3e, 0x08, 0x00,
|
||||
0x00, 0x7f, 0x80, 0x00,
|
||||
0x01, 0xff, 0xc0, 0x00,
|
||||
0x01, 0xff, 0xc0, 0x00,
|
||||
0x00, 0xe1, 0xc0, 0x00,
|
||||
0x00, 0x80, 0x80, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x1c, 0x00, 0x00,
|
||||
0x00, 0x1e, 0x00, 0x00,
|
||||
0x00, 0x1c, 0x00, 0x00,
|
||||
0x00, 0x08, 0x00, 0x00
|
||||
0x00, 0xff, 0x80, 0x00,
|
||||
0x03, 0xff, 0xe0, 0x00,
|
||||
0x0f, 0xff, 0xf8, 0x00,
|
||||
0x1f, 0xff, 0xfc, 0x00,
|
||||
0x3f, 0xc1, 0xfe, 0x00,
|
||||
0x7e, 0x00, 0x3f, 0x80,
|
||||
0xfc, 0x00, 0x0f, 0x80,
|
||||
0xf0, 0x7f, 0x07, 0x80,
|
||||
0x61, 0xff, 0xc3, 0x80,
|
||||
0x63, 0xff, 0xe1, 0x00,
|
||||
0x07, 0xff, 0xf0, 0x00,
|
||||
0x0f, 0xc0, 0xf8, 0x00,
|
||||
0x0f, 0x00, 0x7c, 0x00,
|
||||
0x0e, 0x00, 0x38, 0x00,
|
||||
0x04, 0x3e, 0x08, 0x00,
|
||||
0x00, 0x7f, 0x80, 0x00,
|
||||
0x01, 0xff, 0xc0, 0x00,
|
||||
0x01, 0xff, 0xc0, 0x00,
|
||||
0x00, 0xe1, 0xc0, 0x00,
|
||||
0x00, 0x80, 0x80, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x1c, 0x00, 0x00,
|
||||
0x00, 0x1e, 0x00, 0x00,
|
||||
0x00, 0x1c, 0x00, 0x00,
|
||||
0x00, 0x08, 0x00, 0x00
|
||||
};
|
||||
Reference in New Issue
Block a user