From d1853c2340be7f8a5cdbeb03a547a178c1c48acd Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Wed, 8 May 2024 23:03:18 +0200 Subject: [PATCH] Added auto squelch --- TEF6686_ESP32.ino | 203 +++++++++++++++++++++++++++++----------------- src/comms.cpp | 24 ++++++ src/comms.h | 2 + src/constants.h | 11 +-- src/gui.cpp | 48 +++++++---- src/gui.h | 2 + 6 files changed, 195 insertions(+), 95 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 2b39e0a..b7812db 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -55,6 +55,7 @@ bool afpage; bool afscreen; bool aftest; bool artheadold; +bool autosquelch = true; bool batterydetect = true; bool beepresetstart; bool beepresetstop; @@ -363,6 +364,7 @@ unsigned int SWLowEdgeSet; unsigned long afticker; unsigned long aftickerhold; unsigned long aftimer; +unsigned long autosquelchtimer; unsigned long eonticker; unsigned long eontickerhold; unsigned long flashingtimer; @@ -504,6 +506,7 @@ void setup() { scanmem = EEPROM.readByte(EE_BYTE_SCANMEM); scancancel = EEPROM.readByte(EE_BYTE_SCANCANCEL); scanmute = EEPROM.readByte(EE_BYTE_SCANMUTE); + autosquelch = EEPROM.readByte(EE_BYTE_AUTOSQUELCH); if (spispeed == SPI_SPEED_DEFAULT) { tft.setSPISpeed(SPI_FREQUENCY / 1000000); @@ -2038,8 +2041,8 @@ void SelectBand() { case BAND_LW: freqold = frequency_LW; frequency_AM = frequency_LW; break; case BAND_MW: freqold = frequency_MW; frequency_AM = frequency_MW; break; case BAND_SW: freqold = frequency_SW; frequency_AM = frequency_SW; break; -#ifdef HAS_AIR_BAND - case BAND_AIR: freqold = frequency_AIR; frequency_AM = frequency_AIR;break; +#ifdef HAS_AIR_BAND + case BAND_AIR: freqold = frequency_AIR; frequency_AM = frequency_AIR; break; #endif } LimitAMFrequency(); @@ -3178,38 +3181,136 @@ void ShowModLevel() { } } +void showAutoSquelch(bool mode) { + if (language == LANGUAGE_CHS) SquelchSprite.loadFont(FONT16_CHS); else SquelchSprite.loadFont(FONT16); + if (mode) { + SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + } else { + SquelchSprite.setTextColor(BackgroundColor, BackgroundColor, false); + } + SquelchSprite.fillSprite(BackgroundColor); + SquelchSprite.drawString(String(myLanguage[language][86]), 0, 0); + SquelchSprite.pushSprite(235, 145); +} + void doSquelch() { - if (!XDRGTKUSB && !XDRGTKTCP && usesquelch) Squelch = analogRead(PIN_POT) / 4 - 100; + if (!XDRGTKUSB && !XDRGTKTCP && usesquelch && !autosquelch) Squelch = analogRead(PIN_POT) / 4 - 100; if (unit == 0) SquelchShow = Squelch / 10; if (unit == 1) SquelchShow = ((Squelch * 100) + 10875) / 1000; if (unit == 2) SquelchShow = round((float(Squelch) / 10.0 - 10.0 * log10(75) - 90.0) * 10.0) / 10; if (Squelch > 920) Squelch = 920; - if (language == LANGUAGE_CHS) SquelchSprite.loadFont(FONT16_CHS); else SquelchSprite.loadFont(FONT16); - - if (!XDRGTKUSB && !XDRGTKTCP && usesquelch && (!scandxmode || (scandxmode && !scanmute))) { - if (!screenmute && usesquelch && !advancedRDS && !afscreen) { - if (!menu && (Squelch > Squelchold + 2 || Squelch < Squelchold - 2)) { - SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - SquelchSprite.fillSprite(BackgroundColor); - if (Squelch == -100) { - SquelchSprite.drawString(String(myLanguage[language][33]), 0, 0); - } else if (Squelch == 920) { - SquelchSprite.drawString("ST", 0, 0); - } else { - SquelchSprite.drawString(String(SquelchShow), 0, 0); + if (autosquelch) { + if (band < BAND_GAP) { + if ((USN < fmscansens * 30) && (WAM < 230) && (OStatus < 100 && OStatus > -100) && (!scandxmode || (scandxmode && !scanmute))) { + if (SQ || BWreset) { + if (!seek) radio.setUnMute(); + if (!screenmute && !seek) { + tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor); + } + autosquelchtimer = millis(); + SQ = false; } - if (Squelch != Squelchold) { - SquelchSprite.pushSprite(235, 145); + } else { + if ((!SQ || BWreset) && (millis() >= autosquelchtimer + 1000)) { + radio.setMute(); + if (!screenmute && !seek) { + tft.drawBitmap(92, 4, Speaker, 26, 22, PrimaryColor); + } + autosquelchtimer = millis(); + SQ = true; } } - Squelchold = Squelch; + } else { + if ((USN < amscansens * 30) && (OStatus < 2 && OStatus > -2) && (!scandxmode || (scandxmode && !scanmute))) { + if (!seek) radio.setUnMute(); + if (!screenmute && !seek) { + tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor); + } + SQ = false; + } else { + radio.setMute(); + if (!screenmute && !seek) { + tft.drawBitmap(92, 4, Speaker, 26, 22, PrimaryColor); + } + SQ = true; + } } - } + } else { + if (language == LANGUAGE_CHS) SquelchSprite.loadFont(FONT16_CHS); else SquelchSprite.loadFont(FONT16); - if ((XDRGTKUSB || XDRGTKTCP) && (!scandxmode || (scandxmode && !scanmute))) { - if (!XDRMute) { - if (Squelch != -1) { + if (!XDRGTKUSB && !XDRGTKTCP && usesquelch && (!scandxmode || (scandxmode && !scanmute))) { + if (!screenmute && usesquelch && !advancedRDS && !afscreen) { + if (!menu && (Squelch > Squelchold + 2 || Squelch < Squelchold - 2)) { + SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + SquelchSprite.fillSprite(BackgroundColor); + if (Squelch == -100) { + SquelchSprite.drawString(String(myLanguage[language][33]), 0, 0); + } else if (Squelch == 920) { + SquelchSprite.drawString("ST", 0, 0); + } else { + SquelchSprite.drawString(String(SquelchShow), 0, 0); + } + if (Squelch != Squelchold) { + SquelchSprite.pushSprite(235, 145); + } + } + Squelchold = Squelch; + } + } + + if ((XDRGTKUSB || XDRGTKTCP) && (!scandxmode || (scandxmode && !scanmute))) { + if (!XDRMute) { + if (Squelch != -1) { + if (Squelch < SStatus || Squelch == -100 || Squelch == 0) { + if (!seek) radio.setUnMute(); + if (!screenmute && !seek) { + tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor); + } + SQ = false; + } else { + radio.setMute(); + if (!screenmute && !seek) { + tft.drawBitmap(92, 4, Speaker, 26, 22, PrimaryColor); + } + SQ = true; + } + } else { + if (Stereostatus) { + radio.setUnMute(); + if (!screenmute && !seek) { + tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor); + } + SQ = false; + } else { + radio.setMute(); + if (!screenmute && !seek) { + tft.drawBitmap(92, 4, Speaker, 26, 22, PrimaryColor); + } + SQ = true; + } + } + if (!screenmute && usesquelch && !advancedRDS && !afscreen) { + if (Squelch != Squelchold) { + SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + SquelchSprite.fillSprite(BackgroundColor); + + if (Squelch == -1) { + SquelchSprite.drawString("ST", 0, 0); + } else if (Squelch == 0) { + SquelchSprite.drawString(String(myLanguage[language][33]), 0, 0); + } else { + SquelchSprite.drawString(String(SquelchShow), 0, 0); + } + if (Squelch != Squelchold) { + SquelchSprite.pushSprite(235, 145); + } + Squelchold = Squelch; + } + } + } + } else if (usesquelch && (!scandxmode || (scandxmode && !scanmute))) { + if (Squelch != 920) { if (Squelch < SStatus || Squelch == -100 || Squelch == 0) { if (!seek) radio.setUnMute(); if (!screenmute && !seek) { @@ -3225,7 +3326,7 @@ void doSquelch() { } } else { if (Stereostatus) { - radio.setUnMute(); + if (!seek) radio.setUnMute(); if (!screenmute && !seek) { tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor); } @@ -3238,54 +3339,6 @@ void doSquelch() { SQ = true; } } - if (!screenmute && usesquelch && !advancedRDS && !afscreen) { - if (Squelch != Squelchold) { - SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - SquelchSprite.fillSprite(BackgroundColor); - - if (Squelch == -1) { - SquelchSprite.drawString("ST", 0, 0); - } else if (Squelch == 0) { - SquelchSprite.drawString(String(myLanguage[language][33]), 0, 0); - } else { - SquelchSprite.drawString(String(SquelchShow), 0, 0); - } - if (Squelch != Squelchold) { - SquelchSprite.pushSprite(235, 145); - } - Squelchold = Squelch; - } - } - } - } else if (usesquelch && (!scandxmode || (scandxmode && !scanmute))) { - if (Squelch != 920) { - if (Squelch < SStatus || Squelch == -100 || Squelch == 0) { - if (!seek) radio.setUnMute(); - if (!screenmute && !seek) { - tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor); - } - SQ = false; - } else { - radio.setMute(); - if (!screenmute && !seek) { - tft.drawBitmap(92, 4, Speaker, 26, 22, PrimaryColor); - } - SQ = true; - } - } else { - if (Stereostatus) { - if (!seek) radio.setUnMute(); - if (!screenmute && !seek) { - tft.drawBitmap(92, 4, Speaker, 26, 22, GreyoutColor); - } - SQ = false; - } else { - radio.setMute(); - if (!screenmute && !seek) { - tft.drawBitmap(92, 4, Speaker, 26, 22, PrimaryColor); - } - SQ = true; - } } } SquelchSprite.unloadFont(); @@ -3660,7 +3713,7 @@ void TuneUp() { } #ifdef HAS_AIR_BAND else if (frequency_AM < AIRHighEdgeSet && frequency_AM > AIRLowEdgeSet) { - + if (airstepsize == 0) temp = FREQ_AIR_STEP_25K; else temp = FREQ_AIR_STEP_8K33; } @@ -3946,7 +3999,7 @@ void MuteScreen(bool setting) { tft.writecommand(0x11); analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); if (band < BAND_GAP) { - if (afscreen) BuildAFScreen(); + if (afscreen) BuildAFScreen(); else if (advancedRDS) BuildAdvancedRDS(); else BuildDisplay(); } else { @@ -4056,6 +4109,7 @@ void DefaultSettings(byte userhardwaremodel) { EEPROM.writeByte(EE_BYTE_SCANMEM, 1); EEPROM.writeByte(EE_BYTE_SCANCANCEL, 0); EEPROM.writeByte(EE_BYTE_SCANMUTE, 0); + EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, 0); for (int i = 0; i < EE_PRESETS_CNT; i++) { EEPROM.writeByte(i + EE_PRESETS_BAND_START, BAND_FM); @@ -4285,6 +4339,7 @@ void endMenu() { EEPROM.writeByte(EE_BYTE_SCANMEM, scanmem); EEPROM.writeByte(EE_BYTE_SCANCANCEL, scancancel); EEPROM.writeByte(EE_BYTE_SCANMUTE, scanmute); + EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, autosquelch); EEPROM.commit(); if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false; Serial.end(); diff --git a/src/comms.cpp b/src/comms.cpp index bbb4508..12b078e 100644 --- a/src/comms.cpp +++ b/src/comms.cpp @@ -444,6 +444,30 @@ void XDRGTKRoutine() { updateEQ(); break; + case 'H': + byte autosq_read; + autosq_read = atol(buff + 1); + if (autosq_read == 0) { + autosquelch = false; + DataPrint("H0\n"); + if (!screenmute) { + if (!usesquelch) { + tftPrint(-1, "SQ:", 212, 145, BackgroundColor, BackgroundColor, 16); + showAutoSquelch(0); + } else { + Squelch = -150; + } + } + } else { + autosquelch = true; + DataPrint("H1\n"); + if (!screenmute) { + tftPrint(-1, "SQ:", 212, 145, ActiveColor, ActiveColorSmooth, 16); + showAutoSquelch(1); + } + } + break; + case 'M': byte XDRband; XDRband = atol(buff + 1); diff --git a/src/comms.h b/src/comms.h index 68cffef..54cc87a 100644 --- a/src/comms.h +++ b/src/comms.h @@ -13,6 +13,7 @@ extern bool advancedRDS; extern bool afscreen; extern bool aftest; +extern bool autosquelch; extern bool BWreset; extern bool direction; extern bool externaltune; @@ -132,5 +133,6 @@ extern void MuteScreen(bool setting); extern void updateiMS(); extern void updateEQ(); extern void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int color, int smoothcolor, uint8_t fontsize); +extern void showAutoSquelch(bool mode); #endif \ No newline at end of file diff --git a/src/constants.h b/src/constants.h index cfd6202..69ea81b 100644 --- a/src/constants.h +++ b/src/constants.h @@ -209,9 +209,9 @@ #define EE_CHECKBYTE_VALUE 10 // 0 ~ 255,add new entry, change for new value #define EE_PRESETS_FREQUENCY 0 // Default value when memory channel should be skipped! #ifdef HAS_AIR_BAND -#define EE_TOTAL_CNT 2219 // Total occupied eeprom bytes +#define EE_TOTAL_CNT 2220 // Total occupied eeprom bytes #else -#define EE_TOTAL_CNT 2214 // Total occupied eeprom bytes +#define EE_TOTAL_CNT 2215 // Total occupied eeprom bytes #endif #define EE_PRESETS_BAND_START 0 // 99 * 1 byte @@ -310,9 +310,10 @@ #define EE_BYTE_SCANMEM 2211 #define EE_BYTE_SCANCANCEL 2212 #define EE_BYTE_SCANMUTE 2213 +#define EE_BYTE_AUTOSQUELCH 2214 #ifdef HAS_AIR_BAND -#define EE_BYTE_AIRSTEPSIZE 2114 -#define EE_UINT16_FREQUENCY_AIR 2215 +#define EE_BYTE_AIRSTEPSIZE 2115 +#define EE_UINT16_FREQUENCY_AIR 2216 #endif // End of EEPROM index defines @@ -352,7 +353,7 @@ enum RADIO_AM_BAND_SELECTION { enum RADIO_AM_BAND_SELECTION { AM_BAND_ALL = 0, AM_BAND_LW_MW_SW, AM_BAND_LW_MW_AIR, AM_BAND_LW_SW_AIR, AM_BAND_MW_SW_AIR, - AM_BAND_LW_MW, AM_BAND_LW_SW, AM_BAND_LW_AIR, + AM_BAND_LW_MW, AM_BAND_LW_SW, AM_BAND_LW_AIR, AM_BAND_MW_SW, AM_BAND_MW_AIR, AM_BAND_SW_AIR, AM_BAND_LW, AM_BAND_MW, AM_BAND_SW, AM_BAND_AIR, AM_BAND_NONE, diff --git a/src/gui.cpp b/src/gui.cpp index f9cc294..92ea8e0 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -792,7 +792,7 @@ void ShowOneLine(byte position, byte item, bool selected) { FullLineSprite.setTextDatum(TR_DATUM); FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - FullLineSprite.drawString((usesquelch ? myLanguage[language][42] : myLanguage[language][30]), 298, 3); + if (autosquelch) FullLineSprite.drawString(myLanguage[language][86], 298, 3); else FullLineSprite.drawString((usesquelch ? myLanguage[language][42] : myLanguage[language][30]), 298, 3); break; case AUDIOSETTINGS: @@ -1225,7 +1225,7 @@ void ShowOneLine(byte position, byte item, bool selected) { case AM_BAND_SW: FullLineSprite.drawString(myLanguage[language][104], 298, 3); break; case AM_BAND_NONE: FullLineSprite.drawString(myLanguage[language][83], 298, 3); break; } - break; + break; #endif case DISPLAYSETTINGS: @@ -1576,7 +1576,7 @@ void BuildDisplay() { } } } - if (usesquelch) tftPrint(-1, "SQ:", 212, 145, ActiveColor, ActiveColorSmooth, 16); + if (usesquelch || autosquelch) tftPrint(-1, "SQ:", 212, 145, ActiveColor, ActiveColorSmooth, 16); tftPrint(1, "C/N", 270, 163, ActiveColor, ActiveColorSmooth, 16); tftPrint(-1, "dB", 300, 163, ActiveColor, ActiveColorSmooth, 16); if (region == REGION_EU) tftPrint(-1, "PI:", 212, 193, ActiveColor, ActiveColorSmooth, 16); @@ -1645,17 +1645,19 @@ void BuildDisplay() { case BAND_FM: tftPrint(-1, myLanguage[language][105], 70, 32, bandColor, PrimaryColorSmooth, 16); break; case BAND_OIRT: tftPrint(-1, myLanguage[language][106], 70, 32, bandColor, PrimaryColorSmooth, 16); break; } - if (band < BAND_GAP) tftPrint(-1, "MHz", 258, 76, ActiveColor, ActiveColorSmooth, 28); + if (band < BAND_GAP) tftPrint(-1, "MHz", 258, 76, ActiveColor, ActiveColorSmooth, 28); else { #ifdef HAS_AIR_BAND - if (band == AM_BAND_AIR) + if (band == AM_BAND_AIR) tftPrint(-1, "MHz", 258, 76, ActiveColor, ActiveColorSmooth, 28); else tftPrint(-1, "KHz", 258, 76, ActiveColor, ActiveColorSmooth, 28); #else - tftPrint(-1, "KHz", 258, 76, ActiveColor, ActiveColorSmooth, 28); + tftPrint(-1, "KHz", 258, 76, ActiveColor, ActiveColorSmooth, 28); #endif } + if (autosquelch) showAutoSquelch(1); + RDSstatusold = false; Stereostatusold = false; LowLevelInit = true; @@ -1771,8 +1773,16 @@ void MenuUp() { break; case ITEM4: - usesquelch = !usesquelch; - OneBigLineSprite.drawString((usesquelch ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); + if (autosquelch && !usesquelch) { + usesquelch = true; + autosquelch = false; + } else if (usesquelch && !autosquelch) { + usesquelch = false; + } else { + autosquelch = true; + } + + if (autosquelch) OneBigLineSprite.drawString(myLanguage[language][86], 135, 0); else OneBigLineSprite.drawString((usesquelch ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; @@ -1820,7 +1830,7 @@ void MenuUp() { if (bandAM > AM_BAND_CNT - 1) bandAM = AM_BAND_ALL; #ifdef HAS_AIR_BAND switch (bandAM) { - case AM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104]+ String(",") + myLanguage[language][223], 135, 0); break; + case AM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104] + String(",") + myLanguage[language][223], 135, 0); break; case AM_BAND_LW_MW_SW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; case AM_BAND_LW_MW_AIR: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][223], 135, 0); break; case AM_BAND_LW_SW_AIR: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][104] + String(",") + myLanguage[language][223], 135, 0); break; @@ -2592,9 +2602,16 @@ void MenuDown() { break; case ITEM4: - usesquelch = !usesquelch; + if (autosquelch && !usesquelch) { + usesquelch = true; + autosquelch = false; + } else if (usesquelch && !autosquelch) { + usesquelch = false; + } else { + autosquelch = true; + } - OneBigLineSprite.drawString((usesquelch ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); + if (autosquelch) OneBigLineSprite.drawString(myLanguage[language][86], 135, 0); else OneBigLineSprite.drawString((usesquelch ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; @@ -2643,7 +2660,7 @@ void MenuDown() { #ifdef HAS_AIR_BAND switch (bandAM) { - case AM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104]+ String(",") + myLanguage[language][223], 135, 0); break; + case AM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104] + String(",") + myLanguage[language][223], 135, 0); break; case AM_BAND_LW_MW_SW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; case AM_BAND_LW_MW_AIR: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][223], 135, 0); break; case AM_BAND_LW_SW_AIR: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][104] + String(",") + myLanguage[language][223], 135, 0); break; @@ -3175,7 +3192,7 @@ void MenuDown() { OneBigLineSprite.drawString((showSWMIBand ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); - + break; case ITEM5: @@ -3486,8 +3503,7 @@ void DoMenu() { case ITEM4: Infoboxprint(myLanguage[language][62]); - - OneBigLineSprite.drawString((usesquelch ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); + if (autosquelch) OneBigLineSprite.drawString(myLanguage[language][86], 135, 0); else OneBigLineSprite.drawString((usesquelch ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; @@ -3532,7 +3548,7 @@ void DoMenu() { #ifdef HAS_AIR_BAND switch (bandAM) { - case AM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104]+ String(",") + myLanguage[language][223], 135, 0); break; + case AM_BAND_ALL: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104] + String(",") + myLanguage[language][223], 135, 0); break; case AM_BAND_LW_MW_SW: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], 135, 0); break; case AM_BAND_LW_MW_AIR: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][223], 135, 0); break; case AM_BAND_LW_SW_AIR: OneBigLineSprite.drawString(myLanguage[language][102] + String(",") + myLanguage[language][104] + String(",") + myLanguage[language][223], 135, 0); break; diff --git a/src/gui.h b/src/gui.h index 1a9e7e8..efab857 100644 --- a/src/gui.h +++ b/src/gui.h @@ -32,6 +32,7 @@ extern bool afmethodBold; extern bool afpage; extern bool afscreen; extern bool artheadold; +extern bool autosquelch; extern bool BWreset; extern bool change; extern bool compressedold; @@ -230,4 +231,5 @@ extern void DoMemoryPosTune(); extern void UpdateFonts(bool mode); extern void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int color, int smoothcolor, uint8_t fontsize); extern void setAutoSpeedSPI(); +extern void showAutoSquelch(bool mode); #endif \ No newline at end of file