Merge branch 'main' of https://github.com/PE5PVB/TEF6686_ESP32
This commit is contained in:
+43
-34
@@ -779,6 +779,7 @@ void setup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
tft.setTouch(TouchCalData);
|
tft.setTouch(TouchCalData);
|
||||||
|
|
||||||
tft.fillScreen(BackgroundColor);
|
tft.fillScreen(BackgroundColor);
|
||||||
tftPrint(0, myLanguage[language][8], 160, 3, PrimaryColor, PrimaryColorSmooth, 28);
|
tftPrint(0, myLanguage[language][8], 160, 3, PrimaryColor, PrimaryColorSmooth, 28);
|
||||||
tftPrint(0, "Software " + String(VERSION), 160, 152, PrimaryColor, PrimaryColorSmooth, 16);
|
tftPrint(0, "Software " + String(VERSION), 160, 152, PrimaryColor, PrimaryColorSmooth, 16);
|
||||||
@@ -1011,7 +1012,7 @@ void loop() {
|
|||||||
rdsflagreset = false;
|
rdsflagreset = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!menu && !afscreen && !scandxmode) {
|
if (!BWtune && !menu && !afscreen && !scandxmode) {
|
||||||
if (af != 0 && dropout && millis() >= aftimer + 1000) {
|
if (af != 0 && dropout && millis() >= aftimer + 1000) {
|
||||||
aftimer = millis();
|
aftimer = millis();
|
||||||
if (radio.af_counter == 0) {
|
if (radio.af_counter == 0) {
|
||||||
@@ -1128,7 +1129,7 @@ void loop() {
|
|||||||
|
|
||||||
if (seek) Seek(direction);
|
if (seek) Seek(direction);
|
||||||
|
|
||||||
if ((SStatus / 10 > LowLevelSet) && !LowLevelInit && !menu && band < BAND_GAP) {
|
if ((SStatus / 10 > LowLevelSet) && !LowLevelInit && !BWtune && !menu && band < BAND_GAP) {
|
||||||
if (!screenmute && !advancedRDS && !afscreen) {
|
if (!screenmute && !advancedRDS && !afscreen) {
|
||||||
if (showmodulation) {
|
if (showmodulation) {
|
||||||
tftPrint(-1, "10", 27, 144, ActiveColor, ActiveColorSmooth, 16);
|
tftPrint(-1, "10", 27, 144, ActiveColor, ActiveColorSmooth, 16);
|
||||||
@@ -1159,7 +1160,7 @@ void loop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((SStatus / 10 <= LowLevelSet) && band < BAND_GAP) {
|
if ((SStatus / 10 <= LowLevelSet) && band < BAND_GAP) {
|
||||||
if (LowLevelInit && !menu) {
|
if (LowLevelInit && !BWtune && !menu) {
|
||||||
if (!screenmute && !afscreen && !advancedRDS) {
|
if (!screenmute && !afscreen && !advancedRDS) {
|
||||||
for (byte segments = 0; segments < 94; segments++) {
|
for (byte segments = 0; segments < 94; segments++) {
|
||||||
if (segments > 54) {
|
if (segments > 54) {
|
||||||
@@ -1191,7 +1192,7 @@ void loop() {
|
|||||||
LowLevelInit = false;
|
LowLevelInit = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!menu && (screenmute || radio.rds.correctPI != 0)) readRds();
|
if (!BWtune && !menu && (screenmute || radio.rds.correctPI != 0)) readRds();
|
||||||
if (millis() >= lowsignaltimer + 300) {
|
if (millis() >= lowsignaltimer + 300) {
|
||||||
lowsignaltimer = millis();
|
lowsignaltimer = millis();
|
||||||
if (af || (!screenmute || (screenmute && (XDRGTKTCP || XDRGTKUSB)))) {
|
if (af || (!screenmute || (screenmute && (XDRGTKTCP || XDRGTKUSB)))) {
|
||||||
@@ -1201,7 +1202,7 @@ void loop() {
|
|||||||
radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, CN);
|
radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, CN);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!menu) {
|
if (!BWtune && !menu) {
|
||||||
doSquelch();
|
doSquelch();
|
||||||
GetData();
|
GetData();
|
||||||
}
|
}
|
||||||
@@ -1215,7 +1216,7 @@ void loop() {
|
|||||||
radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, CN);
|
radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, CN);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!menu) {
|
if (!BWtune && !menu) {
|
||||||
doSquelch();
|
doSquelch();
|
||||||
if (millis() >= tuningtimer + 200) readRds();
|
if (millis() >= tuningtimer + 200) readRds();
|
||||||
GetData();
|
GetData();
|
||||||
@@ -1258,7 +1259,7 @@ void loop() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (BWtune) doBWtuneUp(); else KeyUp();
|
if (BWtune) doBWtuneUp(); else KeyUp();
|
||||||
if (screensaverset && !menu && !screensavertriggered) ScreensaverTimerRestart();
|
if (screensaverset && !BWtune && !menu && !screensavertriggered) ScreensaverTimerRestart();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1273,7 +1274,7 @@ void loop() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (BWtune) doBWtuneDown(); else KeyDown();
|
if (BWtune) doBWtuneDown(); else KeyDown();
|
||||||
if (screensaverset && !menu && !screensavertriggered) ScreensaverTimerRestart();
|
if (screensaverset && !BWtune && !menu && !screensavertriggered) ScreensaverTimerRestart();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1307,8 +1308,6 @@ void loop() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (digitalRead(BWBUTTON) == HIGH && BWtune) BWtune = false;
|
|
||||||
|
|
||||||
if (digitalRead(BWBUTTON) == LOW && !BWtune) {
|
if (digitalRead(BWBUTTON) == LOW && !BWtune) {
|
||||||
tottimer = millis();
|
tottimer = millis();
|
||||||
if (screensavertriggered) {
|
if (screensavertriggered) {
|
||||||
@@ -1324,7 +1323,7 @@ void loop() {
|
|||||||
num = GetNum();
|
num = GetNum();
|
||||||
if (num != -1)
|
if (num != -1)
|
||||||
{
|
{
|
||||||
if (!screenmute && !menu && !advancedRDS && !afscreen)
|
if (!screenmute && !BWtune && !menu && !advancedRDS && !afscreen)
|
||||||
{
|
{
|
||||||
NumpadProcess(num);
|
NumpadProcess(num);
|
||||||
}
|
}
|
||||||
@@ -1335,7 +1334,7 @@ void loop() {
|
|||||||
if (screensaver_IRQ)
|
if (screensaver_IRQ)
|
||||||
{
|
{
|
||||||
screensaver_IRQ = OFF;
|
screensaver_IRQ = OFF;
|
||||||
if (!screensavertriggered && !menu) {
|
if (!screensavertriggered && !BWtune && !menu) {
|
||||||
WakeToSleep(true);
|
WakeToSleep(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1348,9 +1347,9 @@ void GetData() {
|
|||||||
ShowSignalLevel();
|
ShowSignalLevel();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!menu) showPS();
|
if (!BWtune && !menu) showPS();
|
||||||
|
|
||||||
if (band < BAND_GAP && !menu) {
|
if (band < BAND_GAP && !BWtune && !menu) {
|
||||||
if (advancedRDS && !afscreen && !screenmute) ShowAdvancedRDS();
|
if (advancedRDS && !afscreen && !screenmute) ShowAdvancedRDS();
|
||||||
if (afscreen && !screenmute) ShowAFEON();
|
if (afscreen && !screenmute) ShowAFEON();
|
||||||
if (!afscreen) {
|
if (!afscreen) {
|
||||||
@@ -1839,7 +1838,7 @@ void BANDBUTTONPress() {
|
|||||||
if (!usesquelch) radio.setUnMute();
|
if (!usesquelch) radio.setUnMute();
|
||||||
unsigned long counterold = millis();
|
unsigned long counterold = millis();
|
||||||
unsigned long counter = millis();
|
unsigned long counter = millis();
|
||||||
if (!menu) {
|
if (!BWtune && !menu) {
|
||||||
while (digitalRead(BANDBUTTON) == LOW && counter - counterold <= 1000) counter = millis();
|
while (digitalRead(BANDBUTTON) == LOW && counter - counterold <= 1000) counter = millis();
|
||||||
|
|
||||||
if (counter - counterold < 1000) {
|
if (counter - counterold < 1000) {
|
||||||
@@ -2394,7 +2393,7 @@ void BWButtonPress() {
|
|||||||
cancelDXScan();
|
cancelDXScan();
|
||||||
} else {
|
} else {
|
||||||
if (!usesquelch) radio.setUnMute();
|
if (!usesquelch) radio.setUnMute();
|
||||||
if (!menu) {
|
if (!BWtune && !menu) {
|
||||||
if (!screenmute) tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
|
if (!screenmute) tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
|
||||||
unsigned long counterold = millis();
|
unsigned long counterold = millis();
|
||||||
unsigned long counter = millis();
|
unsigned long counter = millis();
|
||||||
@@ -2404,13 +2403,11 @@ void BWButtonPress() {
|
|||||||
if (band == BAND_FM || band == BAND_OIRT) {
|
if (band == BAND_FM || band == BAND_OIRT) {
|
||||||
doStereoToggle();
|
doStereoToggle();
|
||||||
} else {
|
} else {
|
||||||
BWset++;
|
BuildBWSelector();
|
||||||
doBW();
|
|
||||||
BWtune = true;
|
BWtune = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
BWset++;
|
BuildBWSelector();
|
||||||
doBW();
|
|
||||||
BWtune = true;
|
BWtune = true;
|
||||||
}
|
}
|
||||||
delay(100);
|
delay(100);
|
||||||
@@ -2462,7 +2459,7 @@ void ModeButtonPress() {
|
|||||||
if (afpagenr == 1) afpagenr = 2; else if (afpagenr == 2 && afpage) afpagenr = 3; else afpagenr = 1;
|
if (afpagenr == 1) afpagenr = 2; else if (afpagenr == 2 && afpage) afpagenr = 3; else afpagenr = 1;
|
||||||
BuildAFScreen();
|
BuildAFScreen();
|
||||||
} else {
|
} else {
|
||||||
if (!menu) {
|
if (!BWtune && !menu) {
|
||||||
if (!screenmute) {
|
if (!screenmute) {
|
||||||
tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
|
tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor);
|
||||||
}
|
}
|
||||||
@@ -2474,7 +2471,7 @@ void ModeButtonPress() {
|
|||||||
if (counter - counterold <= 1000) {
|
if (counter - counterold <= 1000) {
|
||||||
doTuneMode();
|
doTuneMode();
|
||||||
} else {
|
} else {
|
||||||
if (!menu) {
|
if (!BWtune && !menu) {
|
||||||
menuoption = ITEM1;
|
menuoption = ITEM1;
|
||||||
menupage = INDEX;
|
menupage = INDEX;
|
||||||
menuitem = 0;
|
menuitem = 0;
|
||||||
@@ -2642,7 +2639,7 @@ void ButtonPress() {
|
|||||||
BuildDisplay();
|
BuildDisplay();
|
||||||
SelectBand();
|
SelectBand();
|
||||||
}
|
}
|
||||||
if (!menu) {
|
if (!BWtune && !menu) {
|
||||||
if (tunemode == TUNE_MEM) {
|
if (tunemode == TUNE_MEM) {
|
||||||
if (!memorystore) {
|
if (!memorystore) {
|
||||||
memorystore = true;
|
memorystore = true;
|
||||||
@@ -2741,7 +2738,11 @@ void ButtonPress() {
|
|||||||
ScreensaverTimerRestart();
|
ScreensaverTimerRestart();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
DoMenu();
|
if (menu) DoMenu();
|
||||||
|
if (BWtune) {
|
||||||
|
BuildDisplay();
|
||||||
|
SelectBand();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (digitalRead(ROTARY_BUTTON) == LOW) delay(50);
|
while (digitalRead(ROTARY_BUTTON) == LOW) delay(50);
|
||||||
@@ -2753,7 +2754,7 @@ void KeyUp() {
|
|||||||
cancelDXScan();
|
cancelDXScan();
|
||||||
} else {
|
} else {
|
||||||
if (!afscreen) {
|
if (!afscreen) {
|
||||||
if (!menu) {
|
if (!BWtune && !menu) {
|
||||||
switch (tunemode) {
|
switch (tunemode) {
|
||||||
case TUNE_MAN:
|
case TUNE_MAN:
|
||||||
TuneUp();
|
TuneUp();
|
||||||
@@ -2820,7 +2821,7 @@ void KeyDown() {
|
|||||||
cancelDXScan();
|
cancelDXScan();
|
||||||
} else {
|
} else {
|
||||||
if (!afscreen) {
|
if (!afscreen) {
|
||||||
if (!menu) {
|
if (!BWtune && !menu) {
|
||||||
switch (tunemode) {
|
switch (tunemode) {
|
||||||
case TUNE_MAN:
|
case TUNE_MAN:
|
||||||
TuneDown();
|
TuneDown();
|
||||||
@@ -3035,7 +3036,6 @@ void DoMemoryPosTune() {
|
|||||||
|
|
||||||
BWset = presets[memorypos].bw;
|
BWset = presets[memorypos].bw;
|
||||||
doBW();
|
doBW();
|
||||||
BWtune = true;
|
|
||||||
memtune = true;
|
memtune = true;
|
||||||
memreset = true;
|
memreset = true;
|
||||||
rdsflagreset = false;
|
rdsflagreset = false;
|
||||||
@@ -3511,7 +3511,7 @@ void doSquelch() {
|
|||||||
|
|
||||||
if (!XDRGTKUSB && !XDRGTKTCP && usesquelch && (!scandxmode || (scandxmode && !scanmute))) {
|
if (!XDRGTKUSB && !XDRGTKTCP && usesquelch && (!scandxmode || (scandxmode && !scanmute))) {
|
||||||
if (!screenmute && usesquelch && !advancedRDS && !afscreen) {
|
if (!screenmute && usesquelch && !advancedRDS && !afscreen) {
|
||||||
if (!menu && (Squelch > Squelchold + 2 || Squelch < Squelchold - 2)) {
|
if (!BWtune && !menu && (Squelch > Squelchold + 2 || Squelch < Squelchold - 2)) {
|
||||||
SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
SquelchSprite.fillSprite(BackgroundColor);
|
SquelchSprite.fillSprite(BackgroundColor);
|
||||||
if (Squelch == -100) {
|
if (Squelch == -100) {
|
||||||
@@ -3616,13 +3616,13 @@ void doSquelch() {
|
|||||||
|
|
||||||
void updateBW() {//todo air
|
void updateBW() {//todo air
|
||||||
if (BWset == 0) {
|
if (BWset == 0) {
|
||||||
if (!screenmute && !advancedRDS && !afscreen) {
|
if (!BWtune && !screenmute && !advancedRDS && !afscreen) {
|
||||||
tft.fillRoundRect(248, 36, 69, 18, 2, SecondaryColor);
|
tft.fillRoundRect(248, 36, 69, 18, 2, SecondaryColor);
|
||||||
tftPrint(0, "AUTO BW", 282, 38, BackgroundColor, SecondaryColor, 16);
|
tftPrint(0, "AUTO BW", 282, 38, BackgroundColor, SecondaryColor, 16);
|
||||||
}
|
}
|
||||||
radio.setFMABandw();
|
radio.setFMABandw();
|
||||||
} else {
|
} else {
|
||||||
if (!screenmute && !advancedRDS && !afscreen) {
|
if (!BWtune && !screenmute && !advancedRDS && !afscreen) {
|
||||||
tft.fillRoundRect(248, 36, 69, 18, 2, GreyoutColor);
|
tft.fillRoundRect(248, 36, 69, 18, 2, GreyoutColor);
|
||||||
tftPrint(0, "AUTO BW", 282, 38, BackgroundColor, GreyoutColor, 16);
|
tftPrint(0, "AUTO BW", 282, 38, BackgroundColor, GreyoutColor, 16);
|
||||||
}
|
}
|
||||||
@@ -3776,26 +3776,35 @@ void doBW() {
|
|||||||
|
|
||||||
void doBWtuneDown() {
|
void doBWtuneDown() {
|
||||||
rotary = 0;
|
rotary = 0;
|
||||||
BWset--;
|
|
||||||
if (band < BAND_GAP) {
|
if (band < BAND_GAP) {
|
||||||
|
if (BWset == 0) drawButton(BWButtonLabelsFM[16], 16, false); else drawButton(BWButtonLabelsFM[BWset - 1], BWset - 1, false);
|
||||||
|
BWset--;
|
||||||
if (BWset > 16) BWset = 16;
|
if (BWset > 16) BWset = 16;
|
||||||
|
if (BWset == 0) drawButton(BWButtonLabelsFM[16], 16, true); else drawButton(BWButtonLabelsFM[BWset - 1], BWset - 1, true);
|
||||||
} else {
|
} else {
|
||||||
|
drawButton(BWButtonLabelsAM[BWset - 1], BWset - 1, false);
|
||||||
|
BWset--;
|
||||||
if (BWset == 0) BWset = 4;
|
if (BWset == 0) BWset = 4;
|
||||||
|
drawButton(BWButtonLabelsAM[BWset - 1], BWset - 1, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
doBW();
|
doBW();
|
||||||
ShowBW();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void doBWtuneUp() {
|
void doBWtuneUp() {
|
||||||
rotary = 0;
|
rotary = 0;
|
||||||
BWset++;
|
|
||||||
if (band < BAND_GAP) {
|
if (band < BAND_GAP) {
|
||||||
|
if (BWset == 0) drawButton(BWButtonLabelsFM[16], 16, false); else drawButton(BWButtonLabelsFM[BWset - 1], BWset - 1, false);
|
||||||
|
BWset++;
|
||||||
if (BWset > 16) BWset = 0;
|
if (BWset > 16) BWset = 0;
|
||||||
|
if (BWset == 0) drawButton(BWButtonLabelsFM[16], 16, true); else drawButton(BWButtonLabelsFM[BWset - 1], BWset - 1, true);
|
||||||
} else {
|
} else {
|
||||||
|
drawButton(BWButtonLabelsAM[BWset - 1], BWset - 1, false);
|
||||||
|
BWset++;
|
||||||
if (BWset > 4) BWset = 1;
|
if (BWset > 4) BWset = 1;
|
||||||
|
drawButton(BWButtonLabelsAM[BWset - 1], BWset - 1, true);
|
||||||
}
|
}
|
||||||
doBW();
|
doBW();
|
||||||
ShowBW();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void doTuneMode() {
|
void doTuneMode() {
|
||||||
|
|||||||
@@ -72,7 +72,6 @@ bool Tuner_WriteBuffer(unsigned char *buf, uint16_t len) {
|
|||||||
Wire.beginTransmission(0x64);
|
Wire.beginTransmission(0x64);
|
||||||
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();
|
||||||
delay(2);
|
|
||||||
return (r == 0) ? 1 : 0;
|
return (r == 0) ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,6 +172,7 @@ void Tuner_Patch(byte TEF) {
|
|||||||
|
|
||||||
void Tuner_I2C_Init() {
|
void Tuner_I2C_Init() {
|
||||||
Wire.begin();
|
Wire.begin();
|
||||||
|
Wire.setClock(400000);
|
||||||
delay(5);
|
delay(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -343,6 +343,8 @@ static const char* const unitString[] = {"dBμV", "dBf", "dBm"};
|
|||||||
static const char* const FreqFont[] = {"Classic", "Roubenstil", "Motoya", "Aura2", "Comic", "Modern"};
|
static const char* const FreqFont[] = {"Classic", "Roubenstil", "Motoya", "Aura2", "Comic", "Modern"};
|
||||||
static const char* const Theme[] = {"Essence", "Cyan", "Crimson", "Monochrome", "Volcano", "Dendro", "Sakura", "Whiteout", "Tangerine", "Ocean", "Indigo", "Queer", "GoldBrite", "Bubblegum"};
|
static const char* const Theme[] = {"Essence", "Cyan", "Crimson", "Monochrome", "Volcano", "Dendro", "Sakura", "Whiteout", "Tangerine", "Ocean", "Indigo", "Queer", "GoldBrite", "Bubblegum"};
|
||||||
static const char* const Skin[] = {"Essential"};
|
static const char* const Skin[] = {"Essential"};
|
||||||
|
static const char* BWButtonLabelsFM[] = {"56 kHz", "64 kHz", "72 kHz", "84 kHz", "97 kHz", "114 kHz", "133 kHz", "151 kHz", "168 kHz", "184 kHz", "200 kHz", "217 kHz", "236 kHz", "254 kHz", "287 kHz", "311 kHz", "Auto"};
|
||||||
|
static const char* BWButtonLabelsAM[] = {"3 kHz", "4 kHz", "6 kHz", "8 kHz"};
|
||||||
|
|
||||||
// Memory channel database
|
// Memory channel database
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
+51
-6
@@ -587,7 +587,6 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
|||||||
case 0: FullLineSprite.drawString(myLanguage[language][30], 298, 2); break;
|
case 0: FullLineSprite.drawString(myLanguage[language][30], 298, 2); break;
|
||||||
case 1: FullLineSprite.drawString(myLanguage[language][200], 298, 2); break;
|
case 1: FullLineSprite.drawString(myLanguage[language][200], 298, 2); break;
|
||||||
case 2: FullLineSprite.drawString(myLanguage[language][201], 298, 2); break;
|
case 2: FullLineSprite.drawString(myLanguage[language][201], 298, 2); break;
|
||||||
case 3: FullLineSprite.drawString(myLanguage[language][202], 298, 2); break;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1564,8 +1563,30 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
|||||||
FullLineSprite.pushSprite(8, 2 + position);
|
FullLineSprite.pushSprite(8, 2 + position);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BuildBWSelector() {
|
||||||
|
switch (CurrentTheme) {
|
||||||
|
case 7: tft.pushImage (0, 0, 320, 240, configurationbackground_wo); break;
|
||||||
|
default: tft.pushImage (0, 0, 320, 240, configurationbackground); break;
|
||||||
|
}
|
||||||
|
tftPrint(0, myLanguage[language][285], 160, 6, PrimaryColor, PrimaryColorSmooth, 16);
|
||||||
|
|
||||||
|
if (band < BAND_GAP) {
|
||||||
|
for (int x = 0; x < 16; x++) {
|
||||||
|
drawButton(BWButtonLabelsFM[x], x, (BWset == x + 1 ? true : false));
|
||||||
|
}
|
||||||
|
drawButton(BWButtonLabelsFM[16], 16, (BWset == 0 ? true : false));
|
||||||
|
drawButton("OK", 19, false);
|
||||||
|
} else {
|
||||||
|
for (int x = 0; x < 4; x++) {
|
||||||
|
drawButton(BWButtonLabelsAM[x], x, (BWset == x + 1 ? true : false));
|
||||||
|
}
|
||||||
|
drawButton("OK", 19, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void BuildMenu() {
|
void BuildMenu() {
|
||||||
advancedRDS = false;
|
advancedRDS = false;
|
||||||
|
BWtune = false;
|
||||||
|
|
||||||
switch (CurrentTheme) {
|
switch (CurrentTheme) {
|
||||||
case 7: tft.pushImage (0, 0, 320, 240, configurationbackground_wo); break;
|
case 7: tft.pushImage (0, 0, 320, 240, configurationbackground_wo); break;
|
||||||
@@ -1730,6 +1751,7 @@ void BuildAdvancedRDS() {
|
|||||||
void BuildDisplay() {
|
void BuildDisplay() {
|
||||||
afscreen = false;
|
afscreen = false;
|
||||||
advancedRDS = false;
|
advancedRDS = false;
|
||||||
|
BWtune = false;
|
||||||
|
|
||||||
tft.fillScreen(BackgroundColor);
|
tft.fillScreen(BackgroundColor);
|
||||||
tft.drawRect(0, 0, 320, 240, FrameColor);
|
tft.drawRect(0, 0, 320, 240, FrameColor);
|
||||||
@@ -2267,13 +2289,12 @@ void MenuUp() {
|
|||||||
switch (menuoption) {
|
switch (menuoption) {
|
||||||
case ITEM1:
|
case ITEM1:
|
||||||
showrdserrors++;
|
showrdserrors++;
|
||||||
if (showrdserrors > 3) showrdserrors = 0;
|
if (showrdserrors > 2) showrdserrors = 0;
|
||||||
|
|
||||||
switch (showrdserrors) {
|
switch (showrdserrors) {
|
||||||
case 0: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
case 0: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
||||||
case 1: OneBigLineSprite.drawString(myLanguage[language][200], 135, 0); break;
|
case 1: OneBigLineSprite.drawString(myLanguage[language][200], 135, 0); break;
|
||||||
case 2: OneBigLineSprite.drawString(myLanguage[language][201], 135, 0); break;
|
case 2: OneBigLineSprite.drawString(myLanguage[language][201], 135, 0); break;
|
||||||
case 3: OneBigLineSprite.drawString(myLanguage[language][202], 135, 0); break;
|
|
||||||
}
|
}
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
break;
|
break;
|
||||||
@@ -3214,13 +3235,12 @@ void MenuDown() {
|
|||||||
switch (menuoption) {
|
switch (menuoption) {
|
||||||
case ITEM1:
|
case ITEM1:
|
||||||
showrdserrors--;
|
showrdserrors--;
|
||||||
if (showrdserrors > 3) showrdserrors = 3;
|
if (showrdserrors > 2) showrdserrors = 2;
|
||||||
|
|
||||||
switch (showrdserrors) {
|
switch (showrdserrors) {
|
||||||
case 0: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
case 0: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
||||||
case 1: OneBigLineSprite.drawString(myLanguage[language][200], 135, 0); break;
|
case 1: OneBigLineSprite.drawString(myLanguage[language][200], 135, 0); break;
|
||||||
case 2: OneBigLineSprite.drawString(myLanguage[language][201], 135, 0); break;
|
case 2: OneBigLineSprite.drawString(myLanguage[language][201], 135, 0); break;
|
||||||
case 3: OneBigLineSprite.drawString(myLanguage[language][202], 135, 0); break;
|
|
||||||
}
|
}
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
break;
|
break;
|
||||||
@@ -4193,7 +4213,6 @@ void DoMenu() {
|
|||||||
case 0: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
case 0: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
||||||
case 1: OneBigLineSprite.drawString(myLanguage[language][200], 135, 0); break;
|
case 1: OneBigLineSprite.drawString(myLanguage[language][200], 135, 0); break;
|
||||||
case 2: OneBigLineSprite.drawString(myLanguage[language][201], 135, 0); break;
|
case 2: OneBigLineSprite.drawString(myLanguage[language][201], 135, 0); break;
|
||||||
case 3: OneBigLineSprite.drawString(myLanguage[language][202], 135, 0); break;
|
|
||||||
}
|
}
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
break;
|
break;
|
||||||
@@ -4808,3 +4827,29 @@ String removeNewline(String inputString) {
|
|||||||
}
|
}
|
||||||
return outputString;
|
return outputString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void drawButton(const char* text, byte button_number, bool active) {
|
||||||
|
const int buttonWidth = 70;
|
||||||
|
const int buttonHeight = 30;
|
||||||
|
const int cornerRadius = 6;
|
||||||
|
const int spacingX = 10;
|
||||||
|
const int spacingY = 10;
|
||||||
|
const int numColumns = 4;
|
||||||
|
const int numRows = 5;
|
||||||
|
|
||||||
|
const int startX = 6;
|
||||||
|
const int startY = 35;
|
||||||
|
|
||||||
|
if (button_number >= numColumns * numRows) return;
|
||||||
|
|
||||||
|
int row = button_number / numColumns;
|
||||||
|
int col = button_number % numColumns;
|
||||||
|
|
||||||
|
int x = startX + col * (buttonWidth + spacingX);
|
||||||
|
int y = startY + row * (buttonHeight + spacingY);
|
||||||
|
|
||||||
|
tft.fillRoundRect(x, y, buttonWidth, buttonHeight, cornerRadius, (active ? InsignificantColor : FrameColor));
|
||||||
|
tft.drawRoundRect(x, y, buttonWidth, buttonHeight, cornerRadius, ActiveColor);
|
||||||
|
|
||||||
|
tftPrint(0, text, x + buttonWidth / 2, y + buttonHeight / 4, (active ? FrameColor : PrimaryColor), (active ? InsignificantColor : PrimaryColorSmooth), 16);
|
||||||
|
}
|
||||||
@@ -35,6 +35,7 @@ extern bool afscreen;
|
|||||||
extern bool artheadold;
|
extern bool artheadold;
|
||||||
extern bool autosquelch;
|
extern bool autosquelch;
|
||||||
extern bool BWreset;
|
extern bool BWreset;
|
||||||
|
extern bool BWtune;
|
||||||
extern bool change;
|
extern bool change;
|
||||||
extern bool compressedold;
|
extern bool compressedold;
|
||||||
extern bool dropout;
|
extern bool dropout;
|
||||||
@@ -84,6 +85,7 @@ extern byte bandFM;
|
|||||||
extern byte bandforbidden;
|
extern byte bandforbidden;
|
||||||
extern byte batteryold;
|
extern byte batteryold;
|
||||||
extern byte batteryoptions;
|
extern byte batteryoptions;
|
||||||
|
extern byte BWset;
|
||||||
extern byte ContrastSet;
|
extern byte ContrastSet;
|
||||||
extern byte CurrentSkin;
|
extern byte CurrentSkin;
|
||||||
extern byte CurrentTheme;
|
extern byte CurrentTheme;
|
||||||
@@ -220,11 +222,13 @@ void BuildAFScreen();
|
|||||||
void BuildMenu();
|
void BuildMenu();
|
||||||
void BuildAdvancedRDS();
|
void BuildAdvancedRDS();
|
||||||
void BuildDisplay();
|
void BuildDisplay();
|
||||||
|
void BuildBWSelector();
|
||||||
void MenuUp();
|
void MenuUp();
|
||||||
void MenuDown();
|
void MenuDown();
|
||||||
void DoMenu();
|
void DoMenu();
|
||||||
void doTheme();
|
void doTheme();
|
||||||
void Infoboxprint(const char* input);
|
void Infoboxprint(const char* input);
|
||||||
|
void drawButton(const char* text, byte button_number, bool active);
|
||||||
String removeNewline(String inputString);
|
String removeNewline(String inputString);
|
||||||
|
|
||||||
extern void ShowFreq(int mode);
|
extern void ShowFreq(int mode);
|
||||||
|
|||||||
+72
-56
@@ -1,11 +1,11 @@
|
|||||||
#ifndef LANGUAGE_H
|
#ifndef LANGUAGE_H
|
||||||
#define LANGUAGE_H
|
#define LANGUAGE_H
|
||||||
|
|
||||||
#define VERSION "v2.11.8"
|
#define VERSION "v2.11.10"
|
||||||
|
|
||||||
// [number of languages][number of texts]
|
// [number of languages][number of texts]
|
||||||
|
|
||||||
static const char* const myLanguage[18][285] PROGMEM = {
|
static const char* const myLanguage[18][286] PROGMEM = {
|
||||||
{ "English", // English
|
{ "English", // English
|
||||||
"Rotary direction changed", // 1
|
"Rotary direction changed", // 1
|
||||||
"Please release button", // 2
|
"Please release button", // 2
|
||||||
@@ -290,7 +290,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Wait time on\nsignal only", // 281
|
"Wait time on\nsignal only", // 281
|
||||||
"Press highlighted corner", // 282
|
"Press highlighted corner", // 282
|
||||||
"To calibrate touchscreen", // 283
|
"To calibrate touchscreen", // 283
|
||||||
"Screen inversion toggles" // 284
|
"Screen inversion toggles", // 284
|
||||||
|
"Select Bandwidth" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Nederlands", // Dutch
|
{ "Nederlands", // Dutch
|
||||||
@@ -577,7 +578,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Wachttijd alleen\nbij signaal", // 281
|
"Wachttijd alleen\nbij signaal", // 281
|
||||||
"Druk op aangegeven hoeken", // 282
|
"Druk op aangegeven hoeken", // 282
|
||||||
"om scherm te calibreren", // 283
|
"om scherm te calibreren", // 283
|
||||||
"Scherm inversie gewijzigd" // 284
|
"Scherm inversie gewijzigd", // 284
|
||||||
|
"Selecteer bandbreedte" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Polski", // Polish
|
{ "Polski", // Polish
|
||||||
@@ -864,7 +866,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Czekaj tylko gdy\nwykryto stację", // 281
|
"Czekaj tylko gdy\nwykryto stację", // 281
|
||||||
"Naciśnij zaznaczony róg", // 282
|
"Naciśnij zaznaczony róg", // 282
|
||||||
"Aby skalibrować ekran", // 283
|
"Aby skalibrować ekran", // 283
|
||||||
"Inwersja kolorów wyświetlacza" // 284
|
"Inwersja kolorów wyświetlacza", // 284
|
||||||
|
"Wybierz szer. pasma" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Hrvatski", // Croatian
|
{ "Hrvatski", // Croatian
|
||||||
@@ -1151,7 +1154,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Wait time on\nsignal only", // 281
|
"Wait time on\nsignal only", // 281
|
||||||
"Press highlighted corner", // 282
|
"Press highlighted corner", // 282
|
||||||
"To calibrate touchscreen", // 283
|
"To calibrate touchscreen", // 283
|
||||||
"Screen inversion toggles" // 284
|
"Screen inversion toggles", // 284
|
||||||
|
"Select Bandwidth" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Ελληνικά", // Greek
|
{ "Ελληνικά", // Greek
|
||||||
@@ -1438,7 +1442,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Αναμονή μόνο σε\nυπάρξη σήματος", // 281
|
"Αναμονή μόνο σε\nυπάρξη σήματος", // 281
|
||||||
"Πιέστε την\nεπισημασμένη γωνία", // 282
|
"Πιέστε την\nεπισημασμένη γωνία", // 282
|
||||||
"Για βαθμονόμηση\nτης οθόνης αφής", // 283
|
"Για βαθμονόμηση\nτης οθόνης αφής", // 283
|
||||||
"Εναλλαγή αναστροφής οθόνης" // 284
|
"Εναλλαγή αναστροφής οθόνης", // 284
|
||||||
|
"Επιλογή εύρους μπάντας" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Română", // Romanian
|
{ "Română", // Romanian
|
||||||
@@ -1725,7 +1730,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Wait time on\nsignal only", // 281
|
"Wait time on\nsignal only", // 281
|
||||||
"Press highlighted corner", // 282
|
"Press highlighted corner", // 282
|
||||||
"To calibrate touchscreen", // 283
|
"To calibrate touchscreen", // 283
|
||||||
"Screen inversion toggles" // 284
|
"Screen inversion toggles", // 284
|
||||||
|
"Select Bandwidth" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Deutsch", // German
|
{ "Deutsch", // German
|
||||||
@@ -2012,7 +2018,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Wartezeit nur wenn\nSignal vorhanden", // 281
|
"Wartezeit nur wenn\nSignal vorhanden", // 281
|
||||||
"Markierte Ecke drücken", // 282
|
"Markierte Ecke drücken", // 282
|
||||||
"zum Kalibrieren des Touchscrees", // 283
|
"zum Kalibrieren des Touchscrees", // 283
|
||||||
"Bildschirmumkehrung umschalten" // 284
|
"Bildschirmumkehrung umschalten", // 284
|
||||||
|
"Bandbreite wählen" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Český", // Czech
|
{ "Český", // Czech
|
||||||
@@ -2299,7 +2306,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Wait time on\nsignal only", // 281
|
"Wait time on\nsignal only", // 281
|
||||||
"Press highlighted corner", // 282
|
"Press highlighted corner", // 282
|
||||||
"To calibrate touchscreen", // 283
|
"To calibrate touchscreen", // 283
|
||||||
"Screen inversion toggles" // 284
|
"Screen inversion toggles", // 284
|
||||||
|
"Select Bandwidth" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Magyar", // Hungarian
|
{ "Magyar", // Hungarian
|
||||||
@@ -2586,7 +2594,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Wait time on\nsignal only", // 281
|
"Wait time on\nsignal only", // 281
|
||||||
"Press highlighted corner", // 282
|
"Press highlighted corner", // 282
|
||||||
"To calibrate touchscreen", // 283
|
"To calibrate touchscreen", // 283
|
||||||
"Screen inversion toggles" // 284
|
"Screen inversion toggles", // 284
|
||||||
|
"Select Bandwidth" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Français", // French
|
{ "Français", // French
|
||||||
@@ -2873,8 +2882,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Attendre que lorsque\nle signal existe", // 281
|
"Attendre que lorsque\nle signal existe", // 281
|
||||||
"Appuyez sur l'angle\nmis en évidence", // 282
|
"Appuyez sur l'angle\nmis en évidence", // 282
|
||||||
"Pour calibrer l'écran tactile", // 283
|
"Pour calibrer l'écran tactile", // 283
|
||||||
"Inversion d'affichage bascules" // 284
|
"Inversion d'affichage bascules", // 284
|
||||||
|
"Sélectionner la bande passante" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Български", // Bulgarian
|
{ "Български", // Bulgarian
|
||||||
@@ -3161,7 +3170,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Wait time on\nsignal only", // 281
|
"Wait time on\nsignal only", // 281
|
||||||
"Press highlighted corner", // 282
|
"Press highlighted corner", // 282
|
||||||
"To calibrate touchscreen", // 283
|
"To calibrate touchscreen", // 283
|
||||||
"Screen inversion toggles" // 284
|
"Screen inversion toggles", // 284
|
||||||
|
"Select Bandwidth" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Русский", // Russian
|
{ "Русский", // Russian
|
||||||
@@ -3200,7 +3210,7 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"ВЫКЛ.", // 33
|
"ВЫКЛ.", // 33
|
||||||
"СКАНИРОВАНИЕ", // 34
|
"СКАНИРОВАНИЕ", // 34
|
||||||
"Тюнер не обнаружен", // 35
|
"Тюнер не обнаружен", // 35
|
||||||
"AM Antenna gain", // 36
|
"Аттеньюатор AM-антенны", // 36
|
||||||
"FM AGC", // 37
|
"FM AGC", // 37
|
||||||
"Уровень ошибок RDS", // 38
|
"Уровень ошибок RDS", // 38
|
||||||
"Язык меню", // 39
|
"Язык меню", // 39
|
||||||
@@ -3226,7 +3236,7 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Отображать длину волны", // 59
|
"Отображать длину волны", // 59
|
||||||
"Фильтр RDS-данных", // 60
|
"Фильтр RDS-данных", // 60
|
||||||
"Ошибки PI-кода", // 61
|
"Ошибки PI-кода", // 61
|
||||||
"Отображать шумодав", // 62 NEEDS NEW TRANSLATION, ENGLISH: USE SQUELCH
|
"Отображать шумодав", // 62
|
||||||
"Уровень модуляции", // 63
|
"Уровень модуляции", // 63
|
||||||
"AM Noise blanker", // 64
|
"AM Noise blanker", // 64
|
||||||
"FM Noise blanker", // 65
|
"FM Noise blanker", // 65
|
||||||
@@ -3247,7 +3257,7 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"мин.", // 80
|
"мин.", // 80
|
||||||
"Частота шины дисплея SPI", // 81
|
"Частота шины дисплея SPI", // 81
|
||||||
"Чувствительность сканирования", // 82
|
"Чувствительность сканирования", // 82
|
||||||
"Не использовать AM", // 83
|
"Не использовать", // 83
|
||||||
"Версия прошивки -", // 84
|
"Версия прошивки -", // 84
|
||||||
"Шрифт индикации частоты", // 85
|
"Шрифт индикации частоты", // 85
|
||||||
"Auto", // 86
|
"Auto", // 86
|
||||||
@@ -3264,8 +3274,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Калибровка уровня:", // 97
|
"Калибровка уровня:", // 97
|
||||||
"Измерять сигнал в:", // 98
|
"Измерять сигнал в:", // 98
|
||||||
"Переключаться по AF:", // 99
|
"Переключаться по AF:", // 99
|
||||||
"Активные диапазоны:", // 100
|
"Активные диапазоны FM:", // 100
|
||||||
"Активные диапазоны:", // 101
|
"Активные диапазоны AM:", // 101
|
||||||
" ДВ", // 102
|
" ДВ", // 102
|
||||||
" СВ", // 103
|
" СВ", // 103
|
||||||
" КВ", // 104
|
" КВ", // 104
|
||||||
@@ -3388,10 +3398,10 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"При наличии сигнала", // 221
|
"При наличии сигнала", // 221
|
||||||
"Отключать аудио\nпри сканировании", // 222
|
"Отключать аудио\nпри сканировании", // 222
|
||||||
"Эфир", // 223
|
"Эфир", // 223
|
||||||
"5 сек. зажатия кнопки диапазона", // 224
|
"5 сек. нажатие Band", // 224
|
||||||
"Приёмник выключен", // 225
|
"Отключить тюнер", // 225
|
||||||
"Экран выключен", // 226
|
"Отключить экран", // 226
|
||||||
"Выключено", // 227
|
"Выключить всё", // 227
|
||||||
"00 Не определено", // 228
|
"00 Не определено", // 228
|
||||||
"01 Новости", // 229
|
"01 Новости", // 229
|
||||||
"02 Аналитика", // 230
|
"02 Аналитика", // 230
|
||||||
@@ -3402,15 +3412,15 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"07 Культура", // 235
|
"07 Культура", // 235
|
||||||
"08 Наука", // 236
|
"08 Наука", // 236
|
||||||
"09 Разное", // 237
|
"09 Разное", // 237
|
||||||
"10 Поп", // 238
|
"10 Поп М", // 238
|
||||||
"11 Рок", // 239
|
"11 Рок М", // 239
|
||||||
"12 Лёгкая музыка", // 240
|
"12 Лёгкая музыка", // 240
|
||||||
"13 Лёгкая классика", // 241
|
"13 Лёгкая классика", // 241
|
||||||
"14 Классика", // 242
|
"14 Классика", // 242
|
||||||
"15 Другая музыка", // 243
|
"15 Другая музыка", // 243
|
||||||
"16 Погода", // 244
|
"16 Погода", // 244
|
||||||
"17 Финансы", // 245
|
"17 Финансы", // 245
|
||||||
"18 Детские программы", // 246
|
"18 Детские прогр", // 246
|
||||||
"19 Общество", // 247
|
"19 Общество", // 247
|
||||||
"20 Религия", // 248
|
"20 Религия", // 248
|
||||||
"21 Открытая линия", // 249
|
"21 Открытая линия", // 249
|
||||||
@@ -3418,11 +3428,11 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"23 Досуг", // 251
|
"23 Досуг", // 251
|
||||||
"24 Джаз", // 252
|
"24 Джаз", // 252
|
||||||
"25 Музыка кантри", // 253
|
"25 Музыка кантри", // 253
|
||||||
"26 Национальная музыка", // 254
|
"26 Национальная М", // 254
|
||||||
"27 Олдис", // 255
|
"27 Олдис", // 255
|
||||||
"28 Народная музыка", // 256
|
"28 Народная музыка", // 256
|
||||||
"29 Документалистика", // 257
|
"29 Документальное", // 257
|
||||||
"30 Внимание тест", // 258
|
"30 Тревога тест", // 258
|
||||||
"31 Тревога!", // 259
|
"31 Тревога!", // 259
|
||||||
"Начальный", // 260
|
"Начальный", // 260
|
||||||
"Всегда", // 261
|
"Всегда", // 261
|
||||||
@@ -3448,7 +3458,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Время ожидания \nпри сигнале", // 281
|
"Время ожидания \nпри сигнале", // 281
|
||||||
"Нажмите на подсвеченный угол", // 282
|
"Нажмите на подсвеченный угол", // 282
|
||||||
"Калибровка тачскрина", // 283
|
"Калибровка тачскрина", // 283
|
||||||
"Переключение инверсии экрана" // 284
|
"Переключение инверсии экрана", // 284
|
||||||
|
"Выбрать ширину полосы" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Українська", // Ukranian
|
{ "Українська", // Ukranian
|
||||||
@@ -3735,7 +3746,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Wait time on\nsignal only", // 281
|
"Wait time on\nsignal only", // 281
|
||||||
"Press highlighted corner", // 282
|
"Press highlighted corner", // 282
|
||||||
"To calibrate touchscreen", // 283
|
"To calibrate touchscreen", // 283
|
||||||
"Screen inversion toggles" // 284
|
"Screen inversion toggles", // 284
|
||||||
|
"Select Bandwidth" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Italiano", // Italian
|
{ "Italiano", // Italian
|
||||||
@@ -4022,7 +4034,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Tempo di attesa\nsolo con segnale", // 281
|
"Tempo di attesa\nsolo con segnale", // 281
|
||||||
"Premi l'angolo evidenziato", // 282
|
"Premi l'angolo evidenziato", // 282
|
||||||
"Per calibrare lo schermo touch", // 283
|
"Per calibrare lo schermo touch", // 283
|
||||||
"Inversione colore schermo" // 284
|
"Inversione colore schermo", // 284
|
||||||
|
"Select Bandwidth" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Simplified Chinese", // Simplified Chinese
|
{ "Simplified Chinese", // Simplified Chinese
|
||||||
@@ -4309,7 +4322,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Wait time on\nsignal only", // 281
|
"Wait time on\nsignal only", // 281
|
||||||
"Press highlighted corner", // 282
|
"Press highlighted corner", // 282
|
||||||
"To calibrate touchscreen", // 283
|
"To calibrate touchscreen", // 283
|
||||||
"Screen inversion toggles" // 284
|
"Screen inversion toggles", // 284
|
||||||
|
"Select Bandwidth" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Norsk", // Norwegian
|
{ "Norsk", // Norwegian
|
||||||
@@ -4575,28 +4589,29 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Innledende", // 260
|
"Innledende", // 260
|
||||||
"Alltid", // 261
|
"Alltid", // 261
|
||||||
"Vis klokka", // 262
|
"Vis klokka", // 262
|
||||||
"Show long PS", // 263
|
"Vis lang PS", // 263
|
||||||
"Start frequency", // 264
|
"Startfrekvens", // 264
|
||||||
"Stop frequency", // 265
|
"Stoppfrekvens", // 265
|
||||||
"Start memory channel", // 266
|
"Start minne kanal", // 266
|
||||||
"Stop memory channel", // 267
|
"Stopp minne kanal", // 267
|
||||||
"Only store with RDS", // 268
|
"Lagre kun med RDS", // 268
|
||||||
"Start auto memory", // 269
|
"Start automatisk minne", // 269
|
||||||
"Auto memory", // 270
|
"Autominne", // 270
|
||||||
"Stationlist ID", // 271
|
"Stationlist ID", // 271
|
||||||
"Found", // 272
|
"Funnet", // 272
|
||||||
"Abort! Out of memorychannels", // 273
|
"Avbrutt! Tom for minnekanaler", // 273
|
||||||
"Abort! User pressed button", // 274
|
"Avbrutt! Bruker trykket på knappen", // 274
|
||||||
"Scan finished without errors", // 275
|
"Skanning fullført uten feil", // 275
|
||||||
"Clear memory channels", // 276
|
"Slett minnekanaler", // 276
|
||||||
"cleared", // 277
|
"ryddet", // 277
|
||||||
"Prevent double PI", // 278
|
"Forhindre dobbel PI", // 278
|
||||||
"Range", // 279
|
"Spekter", // 279
|
||||||
"Full", // 280
|
"Full", // 280
|
||||||
"Wait time on\nsignal only", // 281
|
"Kun ventetid\npå signal", // 281
|
||||||
"Press highlighted corner", // 282
|
"Trykk på det uthevede hjørnet", // 282
|
||||||
"To calibrate touchscreen", // 283
|
"For å kalibrere berøringsskjerm", // 283
|
||||||
"Screen inversion toggles" // 284
|
"Veksle Skjerminversjon", // 284
|
||||||
|
"Velg Båndbredde" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Español", // Spanish
|
{ "Español", // Spanish
|
||||||
@@ -4883,8 +4898,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Tiempo de espera\ncuando la señal", // 281
|
"Tiempo de espera\ncuando la señal", // 281
|
||||||
"Presione en el\nángulo resaltado", // 282
|
"Presione en el\nángulo resaltado", // 282
|
||||||
"Para calibrar\nla pantalla táctil", // 283
|
"Para calibrar\nla pantalla táctil", // 283
|
||||||
"Cambio de reverso\nde la pantalla" // 284
|
"Cambio de reverso\nde la pantalla", // 284
|
||||||
|
"Seleccionar ancho de banda" // 285
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Português", // Portuguese
|
{ "Português", // Portuguese
|
||||||
@@ -5171,7 +5186,8 @@ static const char* const myLanguage[18][285] PROGMEM = {
|
|||||||
"Espera tempo apenas\nquando sinal", // 281
|
"Espera tempo apenas\nquando sinal", // 281
|
||||||
"Pressione o\ncanto inscrito", // 282
|
"Pressione o\ncanto inscrito", // 282
|
||||||
"Para calibração\nda tela de toque", // 283
|
"Para calibração\nda tela de toque", // 283
|
||||||
"Alternar a inversão da tela" // 284
|
"Alternar a inversão da tela", // 284
|
||||||
|
"Selecione largura de banda" // 285
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+61
-4
@@ -9,15 +9,72 @@ void doTouchEvent(uint16_t x, uint16_t y) {
|
|||||||
if (scandxmode) {
|
if (scandxmode) {
|
||||||
cancelDXScan();
|
cancelDXScan();
|
||||||
} else {
|
} else {
|
||||||
if (!menu) { // All pages except menu
|
if (!menu && !BWtune) { // All pages except menu
|
||||||
if (x > 50 && x < 90 && y > 0 && y < 30 && band < BAND_GAP) { // ---------------------
|
if (x > 50 && x < 90 && y > 0 && y < 30 && band < BAND_GAP) { // ---------------------
|
||||||
doStereoToggle(); // Stereo toggle
|
doStereoToggle(); // Stereo toggle
|
||||||
|
return;
|
||||||
} else if (x > 155 && x < 250 && y > 0 && y < 30) {
|
} else if (x > 155 && x < 250 && y > 0 && y < 30) {
|
||||||
//
|
BuildBWSelector(); // Set bandwidth
|
||||||
|
BWtune = true;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!menu && !advancedRDS && !seek && !afscreen) { // Normal radio mode
|
if (BWtune) { // BW menu
|
||||||
|
byte BWtemp = 255;
|
||||||
|
if (y > 35 && y < 65) {
|
||||||
|
if (x > 7 && x < 77) BWtemp = 1;
|
||||||
|
if (x > 87 && x < 157) BWtemp = 2;
|
||||||
|
if (x > 167 && x < 237) BWtemp = 3;
|
||||||
|
if (x > 247 && x < 317) BWtemp = 4;
|
||||||
|
}
|
||||||
|
if (band < BAND_GAP) {
|
||||||
|
if (y > 75 && y < 105) {
|
||||||
|
if (x > 7 && x < 77) BWtemp = 5;
|
||||||
|
if (x > 87 && x < 157) BWtemp = 6;
|
||||||
|
if (x > 167 && x < 237) BWtemp = 7;
|
||||||
|
if (x > 247 && x < 317) BWtemp = 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (y > 115 && y < 145) {
|
||||||
|
if (x > 7 && x < 77) BWtemp = 9;
|
||||||
|
if (x > 87 && x < 157) BWtemp = 10;
|
||||||
|
if (x > 167 && x < 237) BWtemp = 11;
|
||||||
|
if (x > 247 && x < 317) BWtemp = 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (y > 155 && y < 185) {
|
||||||
|
if (x > 7 && x < 77) BWtemp = 13;
|
||||||
|
if (x > 87 && x < 157) BWtemp = 14;
|
||||||
|
if (x > 167 && x < 237) BWtemp = 15;
|
||||||
|
if (x > 247 && x < 317) BWtemp = 16;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (y > 195 && y < 225) {
|
||||||
|
if (x > 7 && x < 77) BWtemp = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (y > 195 && y < 225 && x > 247 && x < 317) {
|
||||||
|
leave = true;
|
||||||
|
BuildDisplay();
|
||||||
|
SelectBand();
|
||||||
|
} else {
|
||||||
|
if (band < BAND_GAP) {
|
||||||
|
if (BWset == 0) drawButton(BWButtonLabelsFM[16], 16, false); else drawButton(BWButtonLabelsFM[BWset - 1], BWset - 1, false);
|
||||||
|
BWset = BWtemp;
|
||||||
|
if (BWset == 0) drawButton(BWButtonLabelsFM[16], 16, true); else drawButton(BWButtonLabelsFM[BWset - 1], BWset - 1, true);
|
||||||
|
} else {
|
||||||
|
drawButton(BWButtonLabelsAM[BWset - 1], BWset - 1, false);
|
||||||
|
BWset = BWtemp;
|
||||||
|
drawButton(BWButtonLabelsAM[BWset - 1], BWset - 1, true);
|
||||||
|
}
|
||||||
|
doBW();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!BWtune && !menu && !advancedRDS && !seek && !afscreen) { // Normal radio mode
|
||||||
if (x > 0 && x < 320 && y > 180 && y < 240 && band < BAND_GAP) { // -----------------
|
if (x > 0 && x < 320 && y > 180 && y < 240 && band < BAND_GAP) { // -----------------
|
||||||
leave = true;
|
leave = true;
|
||||||
BuildAdvancedRDS(); // Switch to Advanced RDS View
|
BuildAdvancedRDS(); // Switch to Advanced RDS View
|
||||||
@@ -31,7 +88,7 @@ void doTouchEvent(uint16_t x, uint16_t y) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!menu && advancedRDS && !seek && !afscreen) { // Advanced RDS mode
|
if (!BWtune && !menu && advancedRDS && !seek && !afscreen) { // Advanced RDS mode
|
||||||
if (x > 0 && x < 320 && y > 180 && y < 240) { // -----------------
|
if (x > 0 && x < 320 && y > 180 && y < 240) { // -----------------
|
||||||
leave = true;
|
leave = true;
|
||||||
BuildDisplay();
|
BuildDisplay();
|
||||||
|
|||||||
@@ -10,20 +10,25 @@ extern TEF6686 radio;
|
|||||||
|
|
||||||
extern bool advancedRDS;
|
extern bool advancedRDS;
|
||||||
extern bool afscreen;
|
extern bool afscreen;
|
||||||
|
extern bool BWtune;
|
||||||
extern bool leave;
|
extern bool leave;
|
||||||
extern bool menu;
|
extern bool menu;
|
||||||
extern bool scandxmode;
|
extern bool scandxmode;
|
||||||
extern bool seek;
|
extern bool seek;
|
||||||
extern byte band;
|
extern byte band;
|
||||||
|
extern byte BWset;
|
||||||
|
|
||||||
void doTouchEvent(uint16_t x, uint16_t y);
|
void doTouchEvent(uint16_t x, uint16_t y);
|
||||||
|
|
||||||
extern void ScreensaverTimerReopen();
|
extern void ScreensaverTimerReopen();
|
||||||
extern void BuildDisplay();
|
extern void BuildDisplay();
|
||||||
|
extern void BuildBWSelector();
|
||||||
extern void SelectBand();
|
extern void SelectBand();
|
||||||
extern void BuildAdvancedRDS();
|
extern void BuildAdvancedRDS();
|
||||||
extern void doBandToggle();
|
extern void doBandToggle();
|
||||||
extern void doTuneMode();
|
extern void doTuneMode();
|
||||||
extern void doStereoToggle();
|
extern void doStereoToggle();
|
||||||
extern void cancelDXScan();
|
extern void cancelDXScan();
|
||||||
|
extern void doBW();
|
||||||
|
extern void drawButton(const char* text, byte button_number, bool active);
|
||||||
#endif
|
#endif
|
||||||
Reference in New Issue
Block a user