Add separate OIRT band & user band selection
This commit is contained in:
+415
-134
@@ -101,6 +101,9 @@ byte afpagenr;
|
||||
byte amnb;
|
||||
byte audiomode;
|
||||
byte band;
|
||||
byte bandAM;
|
||||
byte bandFM;
|
||||
byte bandforbidden;
|
||||
byte battery;
|
||||
byte batteryold;
|
||||
byte BWset;
|
||||
@@ -241,6 +244,7 @@ unsigned int change;
|
||||
unsigned int ConverterSet;
|
||||
unsigned int freq_scan;
|
||||
unsigned int frequency;
|
||||
unsigned int frequency_OIRT;
|
||||
unsigned int frequency_AM;
|
||||
unsigned int frequency_LW;
|
||||
unsigned int frequency_MIBand_11M; // Surive before tuner restart
|
||||
@@ -308,12 +312,15 @@ void setup() {
|
||||
if (EEPROM.readByte(EE_BYTE_CHECKBYTE) != EE_CHECKBYTE_VALUE) DefaultSettings();
|
||||
|
||||
frequency = EEPROM.readUInt(EE_UINT16_FREQUENCY_FM);
|
||||
frequency_OIRT = EEPROM.readUInt(EE_UINT16_FREQUENCY_OIRT);
|
||||
VolSet = EEPROM.readInt(EE_BYTE_VOLSET);
|
||||
ConverterSet = EEPROM.readUInt(EE_UINT16_CONVERTERSET);
|
||||
LowEdgeSet = EEPROM.readUInt(EE_UINT16_FMLOWEDGESET);
|
||||
HighEdgeSet = EEPROM.readUInt(EE_UINT16_FMHIGHEDGESET);
|
||||
ContrastSet = EEPROM.readByte(EE_BYTE_CONTRASTSET);
|
||||
StereoLevel = EEPROM.readByte(EE_BYTE_STEREOLEVEL);
|
||||
bandFM = EEPROM.readByte(EE_BYTE_BANDFM);
|
||||
bandAM = EEPROM.readByte(EE_BYTE_BANDAM);
|
||||
HighCutLevel = EEPROM.readByte(EE_BYTE_HIGHCUTLEVEL);
|
||||
HighCutOffset = EEPROM.readByte(EE_BYTE_HIGHCUTOFFSET);
|
||||
LevelOffset = EEPROM.readByte(EE_BYTE_LEVELOFFSET);
|
||||
@@ -352,8 +359,8 @@ void setup() {
|
||||
fmnb = EEPROM.readByte(EE_BYTE_FM_NB);
|
||||
audiomode = EEPROM.readByte(EE_BYTE_AUDIOMODE);
|
||||
specialstepOIRT = EEPROM.readByte(EE_BYTE_OIRT);
|
||||
LowEdgeOIRTSet = EEPROM.readUInt(EE_UINT16_LOWEDGEOIRTSET);
|
||||
HighEdgeOIRTSet = EEPROM.readUInt(EE_UINT16_HIGHEDGEOIRTSET);
|
||||
// LowEdgeOIRTSet = EEPROM.readUInt(EE_UINT16_LOWEDGEOIRTSET);
|
||||
// HighEdgeOIRTSet = EEPROM.readUInt(EE_UINT16_HIGHEDGEOIRTSET);
|
||||
colorinvert = EEPROM.readByte(EE_BYTE_COLORINVERT);
|
||||
poweroptions = EEPROM.readByte(EE_BYTE_POWEROPTIONS);
|
||||
CurrentTheme = EEPROM.readByte(EE_BYTE_CURRENTTHEME);
|
||||
@@ -370,6 +377,11 @@ void setup() {
|
||||
MWHighEdgeSet = region == 0 ? FREQ_MW_HIGH_EDGE_MAX_9K : FREQ_MW_HIGH_EDGE_MAX_10K; // later will read from flash
|
||||
SWLowEdgeSet = FREQ_SW_LOW_EDGE_MIN;
|
||||
SWHighEdgeSet = FREQ_SW_HIGH_EDGE_MAX;
|
||||
if (LowEdgeOIRTSet < FREQ_FM_OIRT_START || LowEdgeOIRTSet > FREQ_FM_OIRT_END) LowEdgeOIRTSet = FREQ_FM_OIRT_START;
|
||||
if (HighEdgeOIRTSet < FREQ_FM_OIRT_START || HighEdgeOIRTSet > FREQ_FM_OIRT_END) HighEdgeOIRTSet = FREQ_FM_OIRT_END;
|
||||
|
||||
LowEdgeOIRTSet = LowEdgeOIRTSet;
|
||||
HighEdgeOIRTSet = FREQ_FM_OIRT_END;
|
||||
|
||||
for (int i = 0; i < EE_PRESETS_CNT; i++) memoryband[i] = EEPROM.readByte(i + EE_PRESETS_BAND_START);
|
||||
for (int i = 0; i < EE_PRESETS_CNT; i++) memory[i] = EEPROM.readUInt((i * 4) + EE_PRESETS_START);
|
||||
@@ -393,16 +405,13 @@ void setup() {
|
||||
break;
|
||||
case BAND_SW: frequency_SW = frequency_AM; break;
|
||||
case BAND_FM:
|
||||
if (specialstepOIRT) {
|
||||
if (frequency >= (FREQ_FM_OIRT_START) && frequency <= (FREQ_FM_OIRT_END)) {
|
||||
if (frequency % 3 != 0) {
|
||||
Round30K(frequency);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (frequency % 10 != 0) {
|
||||
if (fmdefaultstepsize == 1) Round100K(frequency); else Round50K(frequency);
|
||||
}
|
||||
if (frequency % 10 != 0) {
|
||||
if (fmdefaultstepsize == 1) Round100K(frequency); else Round50K(frequency);
|
||||
}
|
||||
break;
|
||||
case BAND_OIRT:
|
||||
if (frequency % FREQ_OIRT_STEP_30K != 0) {
|
||||
Round30K(frequency_OIRT);
|
||||
}
|
||||
break;
|
||||
default: break;
|
||||
@@ -641,7 +650,7 @@ void loop() {
|
||||
|
||||
if (seek == true) Seek(direction);
|
||||
|
||||
if ((SStatus / 10 > LowLevelSet) && LowLevelInit == false && menu == false && band == BAND_FM) {
|
||||
if ((SStatus / 10 > LowLevelSet) && LowLevelInit == false && menu == false && band < BAND_GAP) {
|
||||
if (screenmute == false && !advancedRDS && !afscreen) {
|
||||
if (showmodulation) {
|
||||
tftPrint(-1, "10", 27, 144, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
@@ -668,7 +677,7 @@ void loop() {
|
||||
LowLevelInit = true;
|
||||
}
|
||||
|
||||
if ((SStatus / 10 <= LowLevelSet) && band == BAND_FM) {
|
||||
if ((SStatus / 10 <= LowLevelSet) && band < BAND_GAP) {
|
||||
if (LowLevelInit == true && menu == false) {
|
||||
if (screenmute == false && !afscreen && !advancedRDS) {
|
||||
for (byte segments = 0; segments < 94; segments++) {
|
||||
@@ -700,7 +709,7 @@ void loop() {
|
||||
|
||||
if (millis() >= lowsignaltimer + 300) {
|
||||
lowsignaltimer = millis();
|
||||
if (band == BAND_FM) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||
if (band < BAND_GAP) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||
if (screenmute == true) readRds();
|
||||
if (menu == false) {
|
||||
doSquelch();
|
||||
@@ -709,7 +718,7 @@ void loop() {
|
||||
}
|
||||
|
||||
} else {
|
||||
if (band == BAND_FM) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||
if (band < BAND_GAP) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||
if (menu == false) {
|
||||
doSquelch();
|
||||
readRds();
|
||||
@@ -719,7 +728,7 @@ void loop() {
|
||||
}
|
||||
|
||||
if (menu == true && menuopen == true && menupage == 1 && menuoption == 110) {
|
||||
if (band == BAND_FM) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||
if (band < BAND_GAP) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||
if (millis() >= lowsignaltimer + 500 || change2 == true) {
|
||||
lowsignaltimer = millis();
|
||||
change2 = false;
|
||||
@@ -760,6 +769,7 @@ void loop() {
|
||||
detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A));
|
||||
detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B));
|
||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency);
|
||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_OIRT, frequency_OIRT);
|
||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_AM, frequency_AM);
|
||||
EEPROM.writeByte(EE_BYTE_BAND, band);
|
||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_LW, frequency_LW);
|
||||
@@ -789,9 +799,9 @@ void loop() {
|
||||
}
|
||||
|
||||
void GetData() {
|
||||
if (band == BAND_FM) ShowStereoStatus();
|
||||
if (band < BAND_GAP) ShowStereoStatus();
|
||||
if (screenmute == false) {
|
||||
if (band == BAND_FM) {
|
||||
if (band < BAND_GAP) {
|
||||
if (advancedRDS && !afscreen) ShowAdvancedRDS();
|
||||
if (afscreen) ShowAFEON();
|
||||
if (!afscreen)
|
||||
@@ -912,6 +922,257 @@ void ScreensaverInterrupt()
|
||||
screensaver_IRQ = ON;
|
||||
}
|
||||
|
||||
void CheckBandForbiddenFM () {
|
||||
switch (band) {
|
||||
case BAND_FM:
|
||||
if (bandFM == FM_BAND_OIRT) bandforbidden = 1;
|
||||
else bandforbidden = 0;
|
||||
break;
|
||||
case BAND_OIRT:
|
||||
if (bandFM == FM_BAND_FM) bandforbidden = 1;
|
||||
else bandforbidden = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void doBandSelectionFM() {
|
||||
if (band > BAND_GAP) return;
|
||||
|
||||
switch (bandFM) {
|
||||
case FM_BAND_ALL:
|
||||
break;
|
||||
case FM_BAND_OIRT:
|
||||
if (band == BAND_FM) {
|
||||
band = BAND_OIRT;
|
||||
if (frequency_OIRT > FREQ_FM_OIRT_END) {
|
||||
frequency_OIRT = FREQ_FM_OIRT_START;
|
||||
if (edgebeep) EdgeBeeper();
|
||||
}
|
||||
else if (frequency_OIRT < FREQ_FM_OIRT_START) {
|
||||
frequency_OIRT = FREQ_FM_OIRT_END;
|
||||
if (edgebeep) EdgeBeeper();
|
||||
}
|
||||
SelectBand();
|
||||
}
|
||||
break;
|
||||
case FM_BAND_FM:
|
||||
if (band == BAND_OIRT) {
|
||||
band = BAND_FM;
|
||||
if (frequency > HighEdgeSet * 10) {
|
||||
frequency = LowEdgeSet * 10;
|
||||
if (edgebeep) EdgeBeeper();
|
||||
} else if (frequency < LowEdgeSet * 10) {
|
||||
frequency = HighEdgeSet * 10;
|
||||
if (edgebeep) EdgeBeeper();
|
||||
}
|
||||
SelectBand();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ShowBandSelectionFM(bool notglanceview, bool normaldisplay) {
|
||||
|
||||
uint16_t bandFMx, bandFMy;
|
||||
int color, colorSmooth;
|
||||
|
||||
if (notglanceview) {
|
||||
bandFMx = 155;
|
||||
bandFMy = 118;
|
||||
} else {
|
||||
bandFMx = 305;
|
||||
bandFMy = 196;
|
||||
}
|
||||
|
||||
if (normaldisplay) {
|
||||
color = PrimaryColor;
|
||||
colorSmooth = PrimaryColorSmooth;
|
||||
} else {
|
||||
color = BackgroundColor;
|
||||
colorSmooth = BackgroundColor;
|
||||
}
|
||||
|
||||
switch (bandFM) {
|
||||
case FM_BAND_ALL:
|
||||
if (notglanceview) tftPrint(0, myLanguage[language][105] + String(",") + myLanguage[language][106], bandFMx, bandFMy, color, colorSmooth, FONT28);
|
||||
else tftPrint(1, myLanguage[language][105] + String(",") + myLanguage[language][106], bandFMx, bandFMy, color, colorSmooth, FONT16);
|
||||
break;
|
||||
case FM_BAND_OIRT:
|
||||
if (notglanceview) tftPrint(0, myLanguage[language][106], bandFMx, bandFMy, color, colorSmooth, FONT28);
|
||||
else tftPrint(1, myLanguage[language][106], bandFMx, bandFMy, color, colorSmooth, FONT16);
|
||||
break;
|
||||
case FM_BAND_FM:
|
||||
if (notglanceview) tftPrint(0, myLanguage[language][105], bandFMx, bandFMy, color, colorSmooth, FONT28);
|
||||
else tftPrint(1, myLanguage[language][105], bandFMx, bandFMy, color, colorSmooth, FONT16);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CheckBandForbiddenAM () {
|
||||
switch (band) {
|
||||
case BAND_LW:
|
||||
if (bandAM == AM_BAND_MW_SW || bandAM == AM_BAND_MW || bandAM == AM_BAND_SW) bandforbidden = 1;
|
||||
else bandforbidden = 0;
|
||||
break;
|
||||
case BAND_MW:
|
||||
if (bandAM == AM_BAND_LW_SW || bandAM == AM_BAND_LW || bandAM == AM_BAND_SW) bandforbidden = 1;
|
||||
else bandforbidden = 0;
|
||||
break;
|
||||
case BAND_SW:
|
||||
if (bandAM == AM_BAND_LW_MW || bandAM == AM_BAND_LW || bandAM == AM_BAND_MW) bandforbidden = 1;
|
||||
else bandforbidden = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void doBandSelectionAM() {
|
||||
if (band < BAND_GAP) return;
|
||||
|
||||
switch (bandAM) {
|
||||
case AM_BAND_ALL:
|
||||
break;
|
||||
case AM_BAND_LW_MW:
|
||||
if (band == BAND_SW) {
|
||||
band = BAND_LW;
|
||||
SelectBand();
|
||||
}
|
||||
break;
|
||||
case AM_BAND_LW_SW:
|
||||
if (band == BAND_MW) {
|
||||
band = BAND_LW;
|
||||
SelectBand();
|
||||
}
|
||||
break;
|
||||
case AM_BAND_MW_SW:
|
||||
if (band == BAND_LW) {
|
||||
band = BAND_MW;
|
||||
SelectBand();
|
||||
}
|
||||
break;
|
||||
case AM_BAND_LW:
|
||||
if (band != BAND_LW) {
|
||||
band = BAND_LW;
|
||||
SelectBand();
|
||||
}
|
||||
break;
|
||||
case AM_BAND_MW:
|
||||
if (band != BAND_MW) {
|
||||
band = BAND_MW;
|
||||
SelectBand();
|
||||
}
|
||||
break;
|
||||
case AM_BAND_SW:
|
||||
if (band != BAND_SW) {
|
||||
band = BAND_SW;
|
||||
SelectBand();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ShowBandSelectionAM(bool notglanceview, bool normaldisplay) {
|
||||
|
||||
uint16_t bandAMx, bandAMy;
|
||||
int color, colorSmooth;
|
||||
|
||||
if (notglanceview) {
|
||||
bandAMx = 155;
|
||||
bandAMy = 118;
|
||||
} else {
|
||||
bandAMx = 305;
|
||||
bandAMy = 216;
|
||||
}
|
||||
|
||||
if (normaldisplay) {
|
||||
color = PrimaryColor;
|
||||
colorSmooth = PrimaryColorSmooth;
|
||||
} else {
|
||||
color = BackgroundColor;
|
||||
colorSmooth = BackgroundColor;
|
||||
}
|
||||
|
||||
switch (bandAM) {
|
||||
case AM_BAND_ALL:
|
||||
if (notglanceview) tftPrint(0, myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], bandAMx, bandAMy, color, colorSmooth, FONT28);
|
||||
else tftPrint(1, myLanguage[language][102] + String(",") + myLanguage[language][103] + String(",") + myLanguage[language][104], bandAMx, bandAMy, color, colorSmooth, FONT16);
|
||||
break;
|
||||
case AM_BAND_LW_MW:
|
||||
if (notglanceview) tftPrint(0, myLanguage[language][102] + String(",") + myLanguage[language][103], bandAMx, bandAMy, color, colorSmooth, FONT28);
|
||||
else tftPrint(1, myLanguage[language][102] + String(",") + myLanguage[language][103], bandAMx, bandAMy, color, colorSmooth, FONT16);
|
||||
break;
|
||||
case AM_BAND_LW_SW:
|
||||
if (notglanceview) tftPrint(0, myLanguage[language][102] + String(",") + myLanguage[language][104], bandAMx, bandAMy, color, colorSmooth, FONT28);
|
||||
else tftPrint(1, myLanguage[language][102] + String(",") + myLanguage[language][104], bandAMx, bandAMy, color, colorSmooth, FONT16);
|
||||
break;
|
||||
case AM_BAND_MW_SW:
|
||||
if (notglanceview) tftPrint(0, myLanguage[language][103] + String(",") + myLanguage[language][104], bandAMx, bandAMy, color, colorSmooth, FONT28);
|
||||
else tftPrint(1, myLanguage[language][103] + String(",") + myLanguage[language][104], bandAMx, bandAMy, color, colorSmooth, FONT16);
|
||||
break;
|
||||
case AM_BAND_LW:
|
||||
if (notglanceview) tftPrint(0, myLanguage[language][102], bandAMx, bandAMy, color, colorSmooth, FONT28);
|
||||
else tftPrint(1, myLanguage[language][102], bandAMx, bandAMy, color, colorSmooth, FONT16);
|
||||
break;
|
||||
case AM_BAND_MW:
|
||||
if (notglanceview) tftPrint(0, myLanguage[language][103], bandAMx, bandAMy, color, colorSmooth, FONT28);
|
||||
else tftPrint(1, myLanguage[language][103], bandAMx, bandAMy, color, colorSmooth, FONT16);
|
||||
break;
|
||||
case AM_BAND_SW:
|
||||
if (notglanceview) tftPrint(0, myLanguage[language][104], bandAMx, bandAMy, color, colorSmooth, FONT28);
|
||||
else tftPrint(1, myLanguage[language][104], bandAMx, bandAMy, color, colorSmooth, FONT16);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ToggleBand(byte nowBand) {
|
||||
switch (nowBand) {
|
||||
case BAND_LW:
|
||||
if (bandAM == AM_BAND_LW_MW || bandAM == AM_BAND_ALL) band = BAND_MW;
|
||||
else if (bandAM == AM_BAND_LW_SW) band = BAND_SW;
|
||||
else if (bandAM == AM_BAND_LW) {
|
||||
if (bandFM == FM_BAND_FM) band = BAND_FM;
|
||||
else band = BAND_OIRT;
|
||||
}
|
||||
break;
|
||||
case BAND_MW:
|
||||
if (bandAM == AM_BAND_MW_SW || bandAM == AM_BAND_ALL) band = BAND_SW;
|
||||
else if (bandAM == AM_BAND_LW_MW || bandAM == AM_BAND_MW) {
|
||||
if (bandFM == FM_BAND_FM) band = BAND_FM;
|
||||
else band = BAND_OIRT;
|
||||
}
|
||||
break;
|
||||
case BAND_SW:
|
||||
if (bandFM == FM_BAND_FM) band = BAND_FM;
|
||||
else band = BAND_OIRT;
|
||||
break;
|
||||
case BAND_OIRT:
|
||||
if (bandFM == FM_BAND_ALL) band = BAND_FM;
|
||||
else if (bandFM == FM_BAND_OIRT) {
|
||||
if (bandAM == AM_BAND_ALL || bandAM == AM_BAND_LW_MW || bandAM == AM_BAND_LW_SW || bandAM == AM_BAND_LW) {
|
||||
band = BAND_LW;
|
||||
if (stepsize > 3) stepsize = 3;
|
||||
}
|
||||
else if (bandAM == AM_BAND_MW_SW || bandAM == AM_BAND_MW) band = BAND_MW;
|
||||
else if (bandAM == AM_BAND_SW) band = BAND_SW;
|
||||
} else if (bandFM == FM_BAND_FM) {
|
||||
if (bandAM == AM_BAND_ALL || bandAM == AM_BAND_LW_MW || bandAM == AM_BAND_LW_SW || bandAM == AM_BAND_LW) {
|
||||
band = BAND_LW;
|
||||
if (stepsize > 3) stepsize = 3;
|
||||
}
|
||||
else if (bandAM == AM_BAND_MW_SW || bandAM == AM_BAND_MW) band = BAND_MW;
|
||||
else if (bandAM == AM_BAND_SW) band = BAND_SW;
|
||||
}
|
||||
break;
|
||||
case BAND_FM:
|
||||
if (bandAM == AM_BAND_ALL || bandAM == AM_BAND_LW_MW || bandAM == AM_BAND_LW_SW || bandAM == AM_BAND_LW) {
|
||||
band = BAND_LW;
|
||||
if (stepsize > 3) stepsize = 3;
|
||||
}
|
||||
else if (bandAM == AM_BAND_MW_SW || bandAM == AM_BAND_MW) band = BAND_MW;
|
||||
else if (bandAM == AM_BAND_SW) band = BAND_SW;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void BANDBUTTONPress() {
|
||||
if (!power) {
|
||||
if (screensavertriggered) WakeToSleep(REVERSE);
|
||||
@@ -935,13 +1196,7 @@ void BANDBUTTONPress() {
|
||||
ScreensaverTimerReopen();
|
||||
} else {
|
||||
if (tunemode != TUNE_MEM) {
|
||||
if (band == BAND_FM) {
|
||||
band = BAND_LW;
|
||||
if (stepsize > 3) stepsize = 3;
|
||||
}
|
||||
else if (band == BAND_LW) band = BAND_MW;
|
||||
else if (band == BAND_MW) band = BAND_SW;
|
||||
else if (band == BAND_SW) band = BAND_FM;
|
||||
ToggleBand(band);
|
||||
StoreFrequency();
|
||||
SelectBand();
|
||||
}
|
||||
@@ -953,7 +1208,7 @@ void BANDBUTTONPress() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (band == BAND_FM) {
|
||||
if (band < BAND_GAP) {
|
||||
if (advancedRDS && !seek) BuildAFScreen(); else BuildAdvancedRDS();
|
||||
} else {
|
||||
WakeToSleep(true);
|
||||
@@ -968,6 +1223,7 @@ void BANDBUTTONPress() {
|
||||
|
||||
void StoreFrequency() {
|
||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency);
|
||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_OIRT, frequency_OIRT);
|
||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_AM, frequency_AM);
|
||||
EEPROM.writeByte(EE_BYTE_BAND, band);
|
||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_LW, frequency_LW);
|
||||
@@ -1067,6 +1323,7 @@ void DivdeSWMIBand() {
|
||||
}
|
||||
SWMIBandPos = SW_MI_BAND_GAP;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void ToggleSWMIBand(bool frequencyup) {
|
||||
@@ -1343,7 +1600,7 @@ void ToggleSWMIBand(bool frequencyup) {
|
||||
}
|
||||
|
||||
void SelectBand() {
|
||||
if (band != BAND_FM) {
|
||||
if (band > BAND_GAP) {
|
||||
seek = false;
|
||||
if (tunemode == TUNE_AUTO) tunemode = TUNE_MAN;
|
||||
if (tunemode == TUNE_MI_BAND && band != BAND_SW) tunemode = TUNE_MAN;
|
||||
@@ -1351,6 +1608,7 @@ void SelectBand() {
|
||||
BWset = 2;
|
||||
freqold = frequency_AM;
|
||||
LimitAMFrequency();
|
||||
CheckBandForbiddenAM();
|
||||
radio.SetFreqAM(frequency_AM);
|
||||
doBW();
|
||||
radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||
@@ -1372,8 +1630,10 @@ void SelectBand() {
|
||||
if (tunemode == TUNE_MI_BAND) tunemode = TUNE_MAN;
|
||||
radio.power(0);
|
||||
delay(50);
|
||||
radio.SetFreq(frequency);
|
||||
if (band == BAND_FM) radio.SetFreq(frequency);
|
||||
else if (band == BAND_OIRT) radio.SetFreq(frequency_OIRT);
|
||||
freqold = frequency_AM;
|
||||
CheckBandForbiddenFM();
|
||||
doBW();
|
||||
radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||
if (screenmute == false) radio.clearRDS(fullsearchrds); BuildDisplay();
|
||||
@@ -1468,20 +1728,9 @@ void ModeButtonPress() {
|
||||
BWOld = 0;
|
||||
radio.clearRDS(fullsearchrds);
|
||||
RDSstatus = false;
|
||||
if (specialstepOIRT) {
|
||||
if (frequency >= (FREQ_FM_OIRT_START) && frequency <= (FREQ_FM_OIRT_END)) {
|
||||
if (frequency % 3 != 0) {
|
||||
Round30K(frequency);
|
||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency);
|
||||
}
|
||||
} else {
|
||||
if (fmdefaultstepsize == 1) Round100K(frequency); else Round50K(frequency);
|
||||
}
|
||||
} else {
|
||||
if (frequency % 10 != 0) {
|
||||
if (fmdefaultstepsize == 1) Round100K(frequency); else Round50K(frequency);
|
||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency);
|
||||
}
|
||||
if (frequency % 10 != 0) {
|
||||
if (fmdefaultstepsize == 1) Round100K(frequency); else Round50K(frequency);
|
||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency);
|
||||
}
|
||||
radio.clearRDS(fullsearchrds);
|
||||
BuildDisplay();
|
||||
@@ -1496,6 +1745,8 @@ void ModeButtonPress() {
|
||||
EEPROM.writeUInt(EE_UINT16_FMHIGHEDGESET, HighEdgeSet);
|
||||
EEPROM.writeByte(EE_BYTE_CONTRASTSET, ContrastSet);
|
||||
EEPROM.writeByte(EE_BYTE_STEREOLEVEL, StereoLevel);
|
||||
EEPROM.writeByte(EE_BYTE_BANDFM, bandFM);
|
||||
EEPROM.writeByte(EE_BYTE_BANDAM, bandAM);
|
||||
EEPROM.writeByte(EE_BYTE_HIGHCUTLEVEL, HighCutLevel);
|
||||
EEPROM.writeByte(EE_BYTE_HIGHCUTOFFSET, HighCutOffset);
|
||||
EEPROM.writeInt(EE_BYTE_LEVELOFFSET, LevelOffset);
|
||||
@@ -1536,6 +1787,8 @@ void ModeButtonPress() {
|
||||
if (USBmode) Serial.begin(19200); else Serial.begin(115200);
|
||||
ScreensaverTimerSet(screensaverOptions[screensaverset]);
|
||||
if (screensaverset) ScreensaverTimerRestart();
|
||||
doBandSelectionFM();
|
||||
doBandSelectionAM();
|
||||
}
|
||||
}
|
||||
while (digitalRead(MODEBUTTON) == LOW) delay(50);
|
||||
@@ -1546,22 +1799,22 @@ void ShowStepSize() {
|
||||
if (!advancedRDS) {
|
||||
tft.fillRect(224, 38, 15, 4, GreyoutColor);
|
||||
tft.fillRect(193, 38, 15, 4, GreyoutColor);
|
||||
if (band == BAND_FM) tft.fillRect(148, 38, 15, 4, GreyoutColor); else tft.fillRect(162, 38, 15, 4, GreyoutColor);
|
||||
if (band == BAND_FM) tft.fillRect(116, 38, 15, 4, GreyoutColor); else tft.fillRect(128, 38, 15, 4, GreyoutColor);
|
||||
if (band < BAND_GAP) tft.fillRect(148, 38, 15, 4, GreyoutColor); else tft.fillRect(162, 38, 15, 4, GreyoutColor);
|
||||
if (band < BAND_GAP) tft.fillRect(116, 38, 15, 4, GreyoutColor); else tft.fillRect(128, 38, 15, 4, GreyoutColor);
|
||||
if (stepsize == 1) tft.fillRect(224, 38, 15, 4, InsignificantColor);
|
||||
if (stepsize == 2) tft.fillRect(193, 38, 15, 4, InsignificantColor);
|
||||
if (stepsize == 3) {
|
||||
if (band == BAND_FM) tft.fillRect(148, 38, 15, 4, InsignificantColor); else tft.fillRect(162, 38, 15, 4, InsignificantColor);
|
||||
if (band < BAND_GAP) tft.fillRect(148, 38, 15, 4, InsignificantColor); else tft.fillRect(162, 38, 15, 4, InsignificantColor);
|
||||
}
|
||||
if (stepsize == 4) {
|
||||
if (band == BAND_FM) tft.fillRect(116, 38, 15, 4, InsignificantColor); else tft.fillRect(128, 38, 15, 4, InsignificantColor);
|
||||
if (band < BAND_GAP) tft.fillRect(116, 38, 15, 4, InsignificantColor); else tft.fillRect(128, 38, 15, 4, InsignificantColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FindhighStopOIRT() {
|
||||
if (HighEdgeSet >= (FREQ_FM_OIRT_START / 10) && HighEdgeSet <= (FREQ_FM_OIRT_END / 10)) {
|
||||
HighEdgeOIRTSet = (HighEdgeSet * 10 - (HighEdgeSet * 10) % 3);
|
||||
HighEdgeOIRTSet = (HighEdgeSet * 10 - (HighEdgeSet * 10) % FREQ_OIRT_STEP_30K);
|
||||
} else {
|
||||
HighEdgeOIRTSet = 0;
|
||||
}
|
||||
@@ -1569,15 +1822,15 @@ void FindhighStopOIRT() {
|
||||
|
||||
void FindlowStopOIRT() {
|
||||
if (LowEdgeSet >= (FREQ_FM_OIRT_START / 10) && LowEdgeSet <= (FREQ_FM_OIRT_END / 10)) {
|
||||
LowEdgeOIRTSet = (LowEdgeSet * 10 - (LowEdgeSet * 10) % 3);
|
||||
LowEdgeOIRTSet = (LowEdgeSet * 10 - (LowEdgeSet * 10) % FREQ_OIRT_STEP_30K);
|
||||
} else {
|
||||
LowEdgeOIRTSet = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void Round30K(unsigned int freq) {
|
||||
if (freq % 3 < 3) {
|
||||
frequency = (freq - freq % 3);
|
||||
if (freq % FREQ_OIRT_STEP_30K < FREQ_OIRT_STEP_30K) {
|
||||
frequency_OIRT = (freq - freq % FREQ_OIRT_STEP_30K);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1616,16 +1869,11 @@ void Round5K(unsigned int freqAM) {
|
||||
void RoundStep() {
|
||||
if (band == BAND_FM) {
|
||||
unsigned int freq = frequency;
|
||||
if (specialstepOIRT) {
|
||||
if (frequency >= FREQ_FM_OIRT_START && frequency <= FREQ_FM_OIRT_END) {
|
||||
Round30K(freq);
|
||||
} else {
|
||||
if (fmdefaultstepsize == 1) Round100K(freq); else Round50K(freq);
|
||||
}
|
||||
} else {
|
||||
if (fmdefaultstepsize == 1) Round100K(freq); else Round50K(freq);
|
||||
}
|
||||
if (fmdefaultstepsize == 1) Round100K(freq); else Round50K(freq);
|
||||
radio.SetFreq(frequency);
|
||||
} else if (band == BAND_OIRT) {
|
||||
Round30K(frequency_OIRT);
|
||||
radio.SetFreq(frequency_OIRT);
|
||||
} else {
|
||||
if (band == BAND_MW) {
|
||||
unsigned int freq = frequency_AM / (region == 0 ? FREQ_MW_STEP_9K : FREQ_MW_STEP_10K);
|
||||
@@ -1639,7 +1887,9 @@ void RoundStep() {
|
||||
|
||||
while (digitalRead(ROTARY_BUTTON) == LOW) delay(50);
|
||||
|
||||
if (band == BAND_FM) EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency); else EEPROM.writeUInt(EE_UINT16_FREQUENCY_AM, frequency_AM);
|
||||
if (band == BAND_FM) EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency);
|
||||
else if (band == BAND_OIRT) EEPROM.writeUInt(EE_UINT16_FREQUENCY_OIRT, frequency_OIRT);
|
||||
else EEPROM.writeUInt(EE_UINT16_FREQUENCY_AM, frequency_AM);
|
||||
EEPROM.commit();
|
||||
}
|
||||
|
||||
@@ -1668,7 +1918,7 @@ void ButtonPress() {
|
||||
if (counter - counterold < 1000) {
|
||||
if (tunemode == TUNE_MAN) {
|
||||
stepsize++;
|
||||
if (band == BAND_SW || band == BAND_FM) {
|
||||
if (band == BAND_SW || band < BAND_GAP) {
|
||||
if (stepsize > 4) stepsize = 0;
|
||||
}
|
||||
else {
|
||||
@@ -1983,6 +2233,14 @@ void ButtonPress() {
|
||||
tftPrint(0, myLanguage[language][99], 155, 78, ActiveColor, ActiveColorSmooth, FONT28);
|
||||
if (af) tftPrint(0, myLanguage[language][42], 155, 118, PrimaryColor, PrimaryColorSmooth, FONT28); else tftPrint(0, myLanguage[language][30], 155, 118, PrimaryColor, PrimaryColorSmooth, FONT28);
|
||||
break;
|
||||
case 190:
|
||||
tftPrint(0, myLanguage[language][100], 155, 78, ActiveColor, ActiveColorSmooth, FONT28);
|
||||
ShowBandSelectionFM(true, true);
|
||||
break;
|
||||
case 210:
|
||||
tftPrint(0, myLanguage[language][101], 155, 78, ActiveColor, ActiveColorSmooth, FONT28);
|
||||
ShowBandSelectionAM(true, true);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -2376,6 +2634,21 @@ void KeyUp() {
|
||||
if (af) af = false; else af = true;
|
||||
if (af) tftPrint(0, myLanguage[language][42], 155, 118, PrimaryColor, PrimaryColorSmooth, FONT28); else tftPrint(0, myLanguage[language][30], 155, 118, PrimaryColor, PrimaryColorSmooth, FONT28);
|
||||
break;
|
||||
|
||||
case 190:
|
||||
ShowBandSelectionFM(true, REVERSE);
|
||||
bandFM++;
|
||||
if (bandFM > FM_BAND_CNT - 1) bandFM = FM_BAND_ALL;
|
||||
ShowBandSelectionFM(true, true);
|
||||
break;
|
||||
|
||||
case 210:
|
||||
ShowBandSelectionAM(true, REVERSE);
|
||||
bandAM++;
|
||||
if (bandAM > AM_BAND_CNT - 1) bandAM = AM_BAND_ALL;
|
||||
ShowBandSelectionAM(true, true);
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -2467,10 +2740,6 @@ void KeyDown() {
|
||||
tftPrint(1, String(LowEdgeSet / 10 + ConverterSet, DEC) + "." + String(LowEdgeSet % 10 + ConverterSet, DEC), 155, 118, BackgroundColor, BackgroundColor, FONT28);
|
||||
LowEdgeSet -= 10;
|
||||
if (LowEdgeSet < 650) LowEdgeSet = 1079;
|
||||
if (specialstepOIRT) {
|
||||
FindlowStopOIRT();
|
||||
FindhighStopOIRT();
|
||||
}
|
||||
tftPrint(1, String(LowEdgeSet / 10 + ConverterSet, DEC) + "." + String(LowEdgeSet % 10 + ConverterSet, DEC), 155, 118, PrimaryColor, PrimaryColorSmooth, FONT28);
|
||||
break;
|
||||
|
||||
@@ -2478,10 +2747,6 @@ void KeyDown() {
|
||||
tftPrint(1, String(HighEdgeSet / 10 + ConverterSet, DEC) + "." + String(HighEdgeSet % 10 + ConverterSet, DEC), 155, 118, BackgroundColor, BackgroundColor, FONT28);
|
||||
HighEdgeSet -= 10;
|
||||
if (HighEdgeSet < 660) HighEdgeSet = 1080;
|
||||
if (specialstepOIRT) {
|
||||
FindlowStopOIRT();
|
||||
FindhighStopOIRT();
|
||||
}
|
||||
tftPrint(1, String(HighEdgeSet / 10 + ConverterSet, DEC) + "." + String(HighEdgeSet % 10 + ConverterSet, DEC), 155, 118, PrimaryColor, PrimaryColorSmooth, FONT28); break;
|
||||
|
||||
case 110:
|
||||
@@ -2760,6 +3025,21 @@ void KeyDown() {
|
||||
if (af) af = false; else af = true;
|
||||
if (af) tftPrint(0, myLanguage[language][42], 155, 118, PrimaryColor, PrimaryColorSmooth, FONT28); else tftPrint(0, myLanguage[language][30], 155, 118, PrimaryColor, PrimaryColorSmooth, FONT28);
|
||||
break;
|
||||
|
||||
case 190:
|
||||
ShowBandSelectionFM(true, REVERSE);
|
||||
bandFM--;
|
||||
if (bandFM > FM_BAND_CNT) bandFM = FM_BAND_FM;
|
||||
ShowBandSelectionFM(true, true);
|
||||
break;
|
||||
|
||||
case 210:
|
||||
ShowBandSelectionAM(true, REVERSE);
|
||||
bandAM--;
|
||||
if (bandAM > AM_BAND_CNT) bandAM = AM_BAND_SW;
|
||||
ShowBandSelectionAM(true, true);
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -2797,7 +3077,7 @@ void DoMemoryPosTune() {
|
||||
|
||||
void readRds() {
|
||||
radio.readRDS(showrdserrors);
|
||||
if (band == BAND_FM) {
|
||||
if (band < BAND_GAP) {
|
||||
RDSstatus = radio.rds.hasRDS;
|
||||
ShowRDSLogo(RDSstatus);
|
||||
if (!afscreen) {
|
||||
@@ -3487,6 +3767,8 @@ void BuildMenu() {
|
||||
tftPrint(-1, myLanguage[language][97], 14, 136, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, myLanguage[language][98], 14, 156, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, myLanguage[language][99], 14, 176, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, myLanguage[language][100], 14, 196, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(-1, myLanguage[language][101], 14, 216, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
|
||||
tftPrint(1, "KHz", 305, 96, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
tftPrint(1, "dB", 305, 136, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
@@ -3506,6 +3788,8 @@ void BuildMenu() {
|
||||
if (AMLevelOffset > 0) tftPrint(1, "+" + String(AMLevelOffset, DEC), 265, 136, PrimaryColor, PrimaryColorSmooth, FONT16); else tftPrint(1, String(AMLevelOffset, DEC), 265, 136, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
if (af) tftPrint(1, myLanguage[language][42], 305, 176, PrimaryColor, PrimaryColorSmooth, FONT16); else tftPrint(1, myLanguage[language][30], 305, 176, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
tftPrint(1, unitString[unit], 305, 156, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
ShowBandSelectionFM(false, true);
|
||||
ShowBandSelectionAM(false, true);
|
||||
break;
|
||||
}
|
||||
analogWrite(SMETERPIN, 0);
|
||||
@@ -3763,6 +4047,7 @@ void BuildAdvancedRDS() {
|
||||
void BuildDisplay() {
|
||||
afscreen = false;
|
||||
advancedRDS = false;
|
||||
int bandColor;
|
||||
if (theme == 0) {
|
||||
tft.invertDisplay(colorinvert);
|
||||
tft.fillScreen(BackgroundColor);
|
||||
@@ -3830,7 +4115,7 @@ void BuildDisplay() {
|
||||
tftPrint(-1, "kHz", 222, 4, ActiveColor, ActiveColorSmooth, FONT28);
|
||||
tftPrint(-1, unitString[unit], 282, 145, ActiveColor, ActiveColorSmooth, FONT16);
|
||||
|
||||
if (band == BAND_FM) tftPrint(-1, "MHz", 258, 76, ActiveColor, ActiveColorSmooth, FONT28); else tftPrint(-1, "kHz", 258, 76, ActiveColor, ActiveColorSmooth, FONT28);
|
||||
if (band < BAND_GAP) tftPrint(-1, "MHz", 258, 76, ActiveColor, ActiveColorSmooth, FONT28); else tftPrint(-1, "kHz", 258, 76, ActiveColor, ActiveColorSmooth, FONT28);
|
||||
|
||||
tft.drawRoundRect(249, 56, 30, 20, 5, GreyoutColor);
|
||||
tft.drawRoundRect(287, 56, 30, 20, 5, GreyoutColor);
|
||||
@@ -3844,11 +4129,13 @@ void BuildDisplay() {
|
||||
tft.drawCircle(86, 15, 9, SecondaryColor);
|
||||
}
|
||||
|
||||
if (bandforbidden) bandColor = GreyoutColor; else bandColor = SecondaryColor;
|
||||
switch (band) {
|
||||
case BAND_LW: tftPrint(-1, "LW", 50, 32, SecondaryColor, SecondaryColorSmooth, FONT16); break;
|
||||
case BAND_MW: tftPrint(-1, "MW", 50, 32, SecondaryColor, SecondaryColorSmooth, FONT16); break;
|
||||
case BAND_SW: tftPrint(-1, "SW", 50, 32, SecondaryColor, SecondaryColorSmooth, FONT16); break;
|
||||
case BAND_FM: tftPrint(-1, "FM", 50, 32, SecondaryColor, SecondaryColorSmooth, FONT16); break;
|
||||
case BAND_LW: tftPrint(-1, myLanguage[language][102], 50, 32, bandColor, SecondaryColorSmooth, FONT16); break;
|
||||
case BAND_MW: tftPrint(-1, myLanguage[language][103], 50, 32, bandColor, SecondaryColorSmooth, FONT16); break;
|
||||
case BAND_SW: tftPrint(-1, myLanguage[language][104], 50, 32, bandColor, SecondaryColorSmooth, FONT16); break;
|
||||
case BAND_FM: tftPrint(-1, myLanguage[language][105], 50, 32, bandColor, SecondaryColorSmooth, FONT16); break;
|
||||
case BAND_OIRT: tftPrint(-1, myLanguage[language][106], 50, 32, bandColor, SecondaryColorSmooth, FONT16); break;
|
||||
}
|
||||
}
|
||||
RDSstatusold = false;
|
||||
@@ -3879,7 +4166,7 @@ void ShowFreq(int mode) {
|
||||
tft.unloadFont();
|
||||
if (screenmute == false) {
|
||||
if (setupmode == false) {
|
||||
if (band != BAND_FM) { // Fix Me :take care of 9K/10K Step
|
||||
if (band != BAND_FM && band != BAND_OIRT) { // Fix Me :take care of 9K/10K Step
|
||||
if (freqold < 2000 && frequency_AM >= 2000 && stepsize == 0) if (frequency_AM != 27000 && freqold != 144) radio.SetFreqAM(2000);
|
||||
if (freqold >= 2000 && frequency_AM < 2000 && stepsize == 0) if (frequency_AM != 144 && freqold != 27000) radio.SetFreqAM(1998);
|
||||
}
|
||||
@@ -3888,7 +4175,7 @@ void ShowFreq(int mode) {
|
||||
if (screenmute == false) {
|
||||
detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A));
|
||||
detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B));
|
||||
if (band != BAND_FM ) {
|
||||
if (band > BAND_GAP ) {
|
||||
unsigned int freq = frequency_AM;
|
||||
String count = String(freq, DEC);
|
||||
if ((setupmode == false && count.length() != freqoldcount) || mode != 0) {
|
||||
@@ -3906,7 +4193,10 @@ void ShowFreq(int mode) {
|
||||
}
|
||||
|
||||
} else {
|
||||
unsigned int freq = frequency + ConverterSet * 100;
|
||||
unsigned int freq;
|
||||
if (band == BAND_FM) freq = frequency + ConverterSet * 100;
|
||||
else if (band == BAND_OIRT) freq = frequency_OIRT + ConverterSet * 100;
|
||||
|
||||
if (advancedRDS) {
|
||||
for (int i = 0; i < 33; i++) tft.fillCircle((6 * i) + 10, 133, 2, GreyoutColor);
|
||||
tftReplace(1, String(freqold / 100) + "." + (freqold % 100 < 10 ? "0" : "") + String(freqold % 100) + " MHz", String(freq / 100) + "." + (freq % 100 < 10 ? "0" : "") + String(freq % 100) + " MHz", 310, 35, PrimaryColor, PrimaryColorSmooth, FONT16);
|
||||
@@ -3923,7 +4213,7 @@ void ShowFreq(int mode) {
|
||||
if (freqoldcount >= 4) tft.setCursor (44, 45);
|
||||
tft.setTextFont(7);
|
||||
tft.print(freqold / 100);
|
||||
if (band == BAND_FM) {
|
||||
if (band < BAND_GAP) {
|
||||
tft.print(".");
|
||||
if (freqold % 100 < 10) tft.print("0");
|
||||
tft.print(freqold % 100);
|
||||
@@ -3969,7 +4259,8 @@ void ShowFreq(int mode) {
|
||||
if (wifi) {
|
||||
Udp.beginPacket(remoteip, 9030);
|
||||
Udp.print("from=TEF tuner;freq=");
|
||||
if (band != BAND_FM) Udp.print(String(frequency_AM) + "000;ClearRDS=1"); else Udp.print(String(frequency) + "0000;ClearRDS=1");
|
||||
if (band > BAND_GAP) Udp.print(String(frequency_AM) + "000;ClearRDS=1");
|
||||
else Udp.print(String(band == BAND_FM ? frequency: frequency_OIRT) + "0000;ClearRDS=1");
|
||||
Udp.endPacket();
|
||||
}
|
||||
}
|
||||
@@ -4026,7 +4317,7 @@ void ShowSignalLevel() {
|
||||
if (SStatusold / 10 != SStatusprint / 10) tftReplace(1, String(SStatusold / 10), String(SStatusprint / 10), 288, 105, PrimaryColor, PrimaryColorSmooth, FONT48);
|
||||
tftReplace(1, "." + String(abs(SStatusold % 10)), "." + String(abs(SStatusprint % 10)), 310, 105, PrimaryColor, PrimaryColorSmooth, FONT28);
|
||||
|
||||
if (band == BAND_FM) segments = (SStatus + 200) / 10; else segments = (SStatus + 200) / 10;
|
||||
if (band < BAND_GAP) segments = (SStatus + 200) / 10; else segments = (SStatus + 200) / 10;
|
||||
|
||||
tft.fillRect(16, 105, 2 * constrain(segments, 0, 54), 6, InsignificantColor);
|
||||
tft.fillRect(16 + 2 * 54, 105, 2 * (constrain(segments, 54, 94) - 54), 6, SignificantColor);
|
||||
@@ -4055,7 +4346,7 @@ void ShowRDSLogo(bool RDSstatus) {
|
||||
|
||||
void ShowStereoStatus() {
|
||||
if (StereoToggle == true) {
|
||||
if (band == BAND_FM) Stereostatus = radio.getStereoStatus(); else Stereostatus = 0;
|
||||
if (band < BAND_GAP) Stereostatus = radio.getStereoStatus(); else Stereostatus = 0;
|
||||
if (Stereostatus != Stereostatusold) {
|
||||
if (Stereostatus == true && screenmute == false) {
|
||||
tft.drawSmoothCircle(81, 15, 10, SignificantColor, SignificantColorSmooth);
|
||||
@@ -4083,7 +4374,7 @@ void ShowOffset() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (band == BAND_FM) {
|
||||
if (band < BAND_GAP) {
|
||||
if (OStatus < -500) {
|
||||
tft.fillTriangle(6, 8, 6, 22, 14, 14, GreyoutColor);
|
||||
tft.fillTriangle(18, 8, 18, 22, 26, 14, GreyoutColor);
|
||||
@@ -4334,7 +4625,7 @@ void updateBW() {
|
||||
}
|
||||
|
||||
void updateiMS() {
|
||||
if (band == BAND_FM) {
|
||||
if (band < BAND_GAP) {
|
||||
if (iMSset == 0) {
|
||||
if (screenmute == false) {
|
||||
tft.drawRoundRect(248, 56, 32, 20, 5, ActiveColor);
|
||||
@@ -4352,7 +4643,7 @@ void updateiMS() {
|
||||
}
|
||||
|
||||
void updateEQ() {
|
||||
if (band == BAND_FM) {
|
||||
if (band < BAND_GAP) {
|
||||
if (EQset == 0) {
|
||||
if (screenmute == false) {
|
||||
tft.drawRoundRect(286, 56, 32, 20, 5, ActiveColor);
|
||||
@@ -4397,7 +4688,7 @@ void updateSWMIBand() {
|
||||
}
|
||||
|
||||
void doBW() {
|
||||
if (band == BAND_FM) {
|
||||
if (band < BAND_GAP) {
|
||||
if (BWset > 16) BWset = 0;
|
||||
|
||||
switch (BWset) {
|
||||
@@ -4493,7 +4784,7 @@ void doBW() {
|
||||
void doTuneMode() {
|
||||
switch (tunemode) {
|
||||
case TUNE_MAN:
|
||||
if (band == BAND_FM) {
|
||||
if (band < BAND_GAP) {
|
||||
tunemode = TUNE_AUTO;
|
||||
if (stepsize != 0) {
|
||||
stepsize = 0;
|
||||
@@ -4512,7 +4803,7 @@ void doTuneMode() {
|
||||
break;
|
||||
|
||||
case TUNE_MEM:
|
||||
tunemode = TUNE_MAN;
|
||||
if (!bandforbidden) tunemode = TUNE_MAN;
|
||||
break;
|
||||
}
|
||||
ShowTuneMode();
|
||||
@@ -4789,7 +5080,6 @@ void Communication() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DataPrint(String string) {
|
||||
if (XDRGTKUSB) Serial.print(string);
|
||||
if (XDRGTKTCP) RemoteClient.print(string);
|
||||
@@ -5070,7 +5360,7 @@ void XDRGTKRoutine() {
|
||||
for (freq_scan = scanner_start; freq_scan <= scanner_end; freq_scan += scanner_step) {
|
||||
DataPrint(String(freq_scan * 10, DEC));
|
||||
DataPrint(" = ");
|
||||
if (band == BAND_FM) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||
if (band < BAND_GAP) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, SNR); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, SNR);
|
||||
DataPrint(String((radio.CheckSignal(freq_scan) / 10) + 10, DEC));
|
||||
DataPrint(", ");
|
||||
}
|
||||
@@ -5156,7 +5446,7 @@ void XDRGTKRoutine() {
|
||||
XDRGTKdata = false;
|
||||
}
|
||||
|
||||
if (band != BAND_FM) {
|
||||
if (band > BAND_GAP) {
|
||||
DataPrint("Sm");
|
||||
} else {
|
||||
if (StereoToggle == false) {
|
||||
@@ -5175,7 +5465,7 @@ void TuneUp() {
|
||||
aftimer = millis();
|
||||
unsigned int temp = 0;
|
||||
if (stepsize == 0) {
|
||||
if (band != BAND_FM) {
|
||||
if (band > BAND_GAP) {
|
||||
if (frequency_AM < MWHighEdgeSet) {
|
||||
if (region == 0) {
|
||||
temp = FREQ_MW_STEP_9K;
|
||||
@@ -5189,12 +5479,8 @@ void TuneUp() {
|
||||
frequency_AM = (frequency_AM / FREQ_SW_STEP_5K) * FREQ_SW_STEP_5K;
|
||||
}
|
||||
} else {
|
||||
if (frequency >= (FREQ_FM_OIRT_START) && frequency <= (FREQ_FM_OIRT_END - FREQ_FM_STEP_30K)) {
|
||||
if (specialstepOIRT) {
|
||||
temp = FREQ_FM_STEP_30K;
|
||||
} else {
|
||||
if (fmdefaultstepsize == 1) temp = FREQ_FM_STEP_100K; else temp = FREQ_FM_STEP_50K;
|
||||
}
|
||||
if (band == BAND_OIRT) {
|
||||
temp = FREQ_OIRT_STEP_30K;
|
||||
} else {
|
||||
if (fmdefaultstepsize == 1) temp = FREQ_FM_STEP_100K; else temp = FREQ_FM_STEP_50K;
|
||||
}
|
||||
@@ -5207,21 +5493,19 @@ void TuneUp() {
|
||||
|
||||
if (band == BAND_FM) {
|
||||
frequency += temp;
|
||||
if (specialstepOIRT) {
|
||||
if (frequency >= (HighEdgeOIRTSet == 0 ? ((HighEdgeSet * 10) + 1) : (HighEdgeOIRTSet + 1))) {
|
||||
frequency = (LowEdgeOIRTSet == 0 ? (LowEdgeSet * 10) : LowEdgeOIRTSet);
|
||||
if (edgebeep) EdgeBeeper();
|
||||
}
|
||||
} else {
|
||||
if (frequency >= (HighEdgeSet * 10) + 1) {
|
||||
frequency = LowEdgeSet * 10;
|
||||
if (edgebeep) EdgeBeeper();
|
||||
}
|
||||
if (frequency >= (HighEdgeSet * 10) + 1) {
|
||||
frequency = LowEdgeSet * 10;
|
||||
if (edgebeep) EdgeBeeper();
|
||||
}
|
||||
radio.SetFreq(frequency);
|
||||
}
|
||||
|
||||
if (band == BAND_LW) {
|
||||
} else if (band == BAND_OIRT) {
|
||||
frequency_OIRT += temp;
|
||||
if (frequency_OIRT > HighEdgeOIRTSet) {
|
||||
frequency_OIRT = LowEdgeOIRTSet;
|
||||
if (edgebeep) EdgeBeeper();
|
||||
}
|
||||
radio.SetFreq(frequency_OIRT);
|
||||
} else if (band == BAND_LW) {
|
||||
frequency_AM += temp;
|
||||
if (frequency_AM > LWHighEdgeSet) {
|
||||
frequency_AM = LWLowEdgeSet;
|
||||
@@ -5256,7 +5540,7 @@ void TuneDown() {
|
||||
aftimer = millis();
|
||||
unsigned int temp = 0;
|
||||
if (stepsize == 0) {
|
||||
if (band != BAND_FM) {
|
||||
if (band > BAND_GAP) {
|
||||
if (frequency_AM <= MWHighEdgeSet) {
|
||||
if (frequency_AM == 2000) { // Fix Me :take care of 9K/10K Step
|
||||
frequency_AM = 1998;
|
||||
@@ -5270,12 +5554,8 @@ void TuneDown() {
|
||||
frequency_AM = (frequency_AM / temp) * temp;
|
||||
}
|
||||
} else {
|
||||
if (frequency >= (FREQ_FM_OIRT_START + FREQ_FM_STEP_30K) && frequency <= (FREQ_FM_OIRT_END)) {
|
||||
if (specialstepOIRT) {
|
||||
temp = FREQ_FM_STEP_30K;
|
||||
} else {
|
||||
if (fmdefaultstepsize == 1) temp = FREQ_FM_STEP_100K; else temp = FREQ_FM_STEP_50K;
|
||||
}
|
||||
if (band == BAND_OIRT) {
|
||||
temp = FREQ_OIRT_STEP_30K;
|
||||
} else {
|
||||
if (fmdefaultstepsize == 1) temp = FREQ_FM_STEP_100K; else temp = FREQ_FM_STEP_50K;
|
||||
}
|
||||
@@ -5288,21 +5568,19 @@ void TuneDown() {
|
||||
|
||||
if (band == BAND_FM) {
|
||||
frequency -= temp;
|
||||
if (specialstepOIRT) {
|
||||
if (frequency < (LowEdgeOIRTSet == 0 ? (LowEdgeSet * 10) : LowEdgeOIRTSet) ) {
|
||||
frequency = (HighEdgeOIRTSet == 0 ? (HighEdgeSet * 10) : HighEdgeOIRTSet);
|
||||
if (edgebeep) EdgeBeeper();
|
||||
}
|
||||
} else {
|
||||
if (frequency < LowEdgeSet * 10) {
|
||||
frequency = HighEdgeSet * 10;
|
||||
if (edgebeep) EdgeBeeper();
|
||||
}
|
||||
if (frequency < LowEdgeSet * 10) {
|
||||
frequency = HighEdgeSet * 10;
|
||||
if (edgebeep) EdgeBeeper();
|
||||
}
|
||||
radio.SetFreq(frequency);
|
||||
}
|
||||
|
||||
if (band == BAND_LW) {
|
||||
} else if (band == BAND_OIRT) {
|
||||
frequency_OIRT -= temp;
|
||||
if (frequency_OIRT < LowEdgeOIRTSet) {
|
||||
frequency_OIRT = HighEdgeOIRTSet;
|
||||
if (edgebeep) EdgeBeeper();
|
||||
}
|
||||
radio.SetFreq(frequency_OIRT);
|
||||
} else if (band == BAND_LW) {
|
||||
frequency_AM -= temp;
|
||||
if (frequency_AM < LWLowEdgeSet) {
|
||||
frequency_AM = LWHighEdgeSet;
|
||||
@@ -5345,7 +5623,7 @@ void EdgeBeeper() {
|
||||
}
|
||||
|
||||
void Seek(bool mode) {
|
||||
if (band == BAND_FM) {
|
||||
if (band < BAND_GAP) {
|
||||
radio.setMute();
|
||||
if (screenmute == false) tft.drawBitmap(110, 5, Speaker, 26, 22, PrimaryColor);
|
||||
if (mode == false) TuneDown(); else TuneUp();
|
||||
@@ -5597,12 +5875,15 @@ void passwordcrypt() {
|
||||
void DefaultSettings() {
|
||||
EEPROM.writeByte(EE_BYTE_CHECKBYTE, EE_CHECKBYTE_VALUE);
|
||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, 10000);
|
||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_OIRT, FREQ_FM_OIRT_START);
|
||||
EEPROM.writeInt(EE_BYTE_VOLSET, 0);
|
||||
EEPROM.writeUInt(EE_UINT16_CONVERTERSET, 0);
|
||||
EEPROM.writeUInt(EE_UINT16_FMLOWEDGESET, 875);
|
||||
EEPROM.writeUInt(EE_UINT16_FMHIGHEDGESET, 1080);
|
||||
EEPROM.writeByte(EE_BYTE_CONTRASTSET, 50);
|
||||
EEPROM.writeByte(EE_BYTE_STEREOLEVEL, 0);
|
||||
EEPROM.writeByte(EE_BYTE_BANDFM, FM_BAND_ALL);
|
||||
EEPROM.writeByte(EE_BYTE_BANDAM, AM_BAND_ALL);
|
||||
EEPROM.writeByte(EE_BYTE_HIGHCUTLEVEL, 70);
|
||||
EEPROM.writeByte(EE_BYTE_HIGHCUTOFFSET, 0);
|
||||
EEPROM.writeInt(EE_BYTE_LEVELOFFSET, 0);
|
||||
@@ -5620,7 +5901,7 @@ void DefaultSettings() {
|
||||
EEPROM.writeByte(EE_BYTE_OPTENC, 0);
|
||||
EEPROM.writeByte(EE_BYTE_IMSSET, 1);
|
||||
EEPROM.writeByte(EE_BYTE_EQSET, 1);
|
||||
EEPROM.writeByte(EE_BYTE_BAND, 0);
|
||||
EEPROM.writeByte(EE_BYTE_BAND, BAND_FM);
|
||||
EEPROM.writeInt(EE_BYTE_LOWLEVELSET, -10);
|
||||
EEPROM.writeByte(EE_BYTE_MEMORYPOS, 0);
|
||||
EEPROM.writeByte(EE_BYTE_REGION, 0);
|
||||
|
||||
+15
-1
@@ -11,8 +11,22 @@ enum RDS_GROUPS {
|
||||
RDS_GROUP_12A, RDS_GROUP_12B, RDS_GROUP_13A, RDS_GROUP_13B, RDS_GROUP_14A, RDS_GROUP_14B, RDS_GROUP_15A, RDS_GROUP_15B
|
||||
};
|
||||
|
||||
// FM band: before BAND_GAP; AM band: after BAND_GAP
|
||||
enum RADIO_BAND {
|
||||
BAND_FM, BAND_LW, BAND_MW, BAND_SW
|
||||
BAND_OIRT = 0, BAND_FM, BAND_GAP, BAND_LW, BAND_MW, BAND_SW
|
||||
};
|
||||
|
||||
// Toggle: LW -> MW -> SW
|
||||
enum RADIO_AM_BAND_SELECTION {
|
||||
AM_BAND_ALL = 0, AM_BAND_LW_MW, AM_BAND_LW_SW, AM_BAND_MW_SW,
|
||||
AM_BAND_LW, AM_BAND_MW, AM_BAND_SW,
|
||||
AM_BAND_CNT
|
||||
};
|
||||
|
||||
// Toggle: OIRT -> FM
|
||||
enum RADIO_FM_BAND_SELECTION {
|
||||
FM_BAND_ALL = 0, FM_BAND_OIRT, FM_BAND_FM,
|
||||
FM_BAND_CNT
|
||||
};
|
||||
|
||||
enum RADIO_TUNE_MODE {
|
||||
|
||||
+9
-6
@@ -23,7 +23,7 @@
|
||||
#define FREQ_MW_STEP_9K 9
|
||||
#define FREQ_MW_STEP_10K 10
|
||||
#define FREQ_SW_STEP_5K 5
|
||||
#define FREQ_FM_STEP_30K 3
|
||||
#define FREQ_OIRT_STEP_30K 3
|
||||
#define FREQ_FM_STEP_50K 5
|
||||
#define FREQ_FM_STEP_100K 10
|
||||
|
||||
@@ -39,8 +39,8 @@
|
||||
#define FREQ_SW_HIGH_EDGE_MAX (FREQ_SW_END)
|
||||
#define FREQ_FM_START 65000
|
||||
#define FREQ_FM_END 108000
|
||||
#define FREQ_FM_OIRT_START 6575 // use values of 1/10 * kHz
|
||||
#define FREQ_FM_OIRT_END 7400 // use values of 1/10 * kHz
|
||||
#define FREQ_FM_OIRT_START 6402 // use values of 1/10 * kHz
|
||||
#define FREQ_FM_OIRT_END 7398 // use values of 1/10 * kHz
|
||||
|
||||
// according to https://www.short-wave.info/index.php?feature=frequencies
|
||||
#define FREQ_SW_START 1800
|
||||
@@ -95,12 +95,14 @@
|
||||
|
||||
// EEPROM index defines
|
||||
#define EE_PRESETS_CNT 30
|
||||
#define EE_CHECKBYTE_VALUE 36 // 0 ~ 255,add new entry, change for new value
|
||||
#define EE_CHECKBYTE_VALUE 32 // 0 ~ 255,add new entry, change for new value
|
||||
|
||||
#define EE_TOTAL_CNT 269
|
||||
#define EE_TOTAL_CNT 273
|
||||
#define EE_UINT16_FREQUENCY_FM 0
|
||||
#define EE_BYTE_VOLSET 4
|
||||
#define EE_BYTE_STEREO 5
|
||||
#define EE_BYTE_BANDFM 6
|
||||
#define EE_BYTE_BANDAM 7
|
||||
#define EE_UINT16_CONVERTERSET 8
|
||||
#define EE_UINT16_FMLOWEDGESET 12
|
||||
#define EE_UINT16_FMHIGHEDGESET 16
|
||||
@@ -158,7 +160,8 @@
|
||||
#define EE_BYTE_SCREENSAVERSET 262
|
||||
#define EE_INT16_AMLEVELOFFSET 263
|
||||
#define EE_BYTE_UNIT 267
|
||||
#define EE_BYTE_AF 268
|
||||
#define EE_BYTE_AF 268
|
||||
#define EE_UINT16_FREQUENCY_OIRT 269
|
||||
// End of EEPROM index defines
|
||||
|
||||
static const char* const unitString[] = {"dBμV", "dBf", "dBm"};
|
||||
|
||||
+121
-16
@@ -1,6 +1,6 @@
|
||||
// [number of languages][number of texts][max. length of text]
|
||||
|
||||
static const char* const myLanguage[15][100] = {
|
||||
static const char* const myLanguage[15][107] = {
|
||||
{ "English", // English
|
||||
"Rotary direction changed", // 1
|
||||
"Please release button", // 2
|
||||
@@ -100,7 +100,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"50% brightness", // 96
|
||||
"AM RF Level offset:", // 97
|
||||
"Signalmeter unit:", // 98
|
||||
"Use AF:" // 99
|
||||
"Use AF:", // 99
|
||||
"Select FM Band:", // 100
|
||||
"Select AM Band:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
},
|
||||
|
||||
{ "Nederlands", // Dutch
|
||||
@@ -202,7 +209,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"50% helderheid", // 96
|
||||
"AM RF Level afwijking:", // 97
|
||||
"Signaalmeter eenheid:", // 98
|
||||
"Gebruik AF:" // 99
|
||||
"Gebruik AF:", // 99
|
||||
"Select FM Band:", // 100
|
||||
"Select AM Band:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
},
|
||||
|
||||
{ "Polski", // Polish
|
||||
@@ -304,7 +318,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"50% jasnosci", // 96
|
||||
"Odchylenie poziomu RF AM:", // 97
|
||||
"Jednostka sygnalu:", // 98
|
||||
"Uzywaj AF:" // 99
|
||||
"Uzywaj AF:", // 99
|
||||
"Select FM Band:", // 100
|
||||
"Select AM Band:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
},
|
||||
|
||||
{ "Hrvatski", // Croatian
|
||||
@@ -406,7 +427,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"50% svjetlina", // 96
|
||||
"AM pomak RF razine:", // 97
|
||||
"Jedinica mjerača signala:", // 98
|
||||
"Use AF:" // 99
|
||||
"Use AF:", // 99
|
||||
"Select FM Band:", // 100
|
||||
"Select AM Band:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
},
|
||||
|
||||
{ "Ελληνικά", // Greek
|
||||
@@ -508,7 +536,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"50% φωτεινότητα", // 96
|
||||
"AM Ολίσθηση επιπέδου RF:", // 97
|
||||
"Μονάδα μέτρησης σήματος:", // 98
|
||||
"Χρήση AF:" // 99
|
||||
"Χρήση AF:", // 99
|
||||
"Select FM Band:", // 100
|
||||
"Select AM Band:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
},
|
||||
|
||||
{ "Romana", // Romanian
|
||||
@@ -610,7 +645,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"50% brightness", // 96
|
||||
"AM RF Level offset:", // 97
|
||||
"Signalmeter unit:", // 98
|
||||
"Use AF:" // 99
|
||||
"Use AF:", // 99
|
||||
"Select FM Band:", // 100
|
||||
"Select AM Band:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
},
|
||||
|
||||
{ "Deutsch", // German
|
||||
@@ -712,7 +754,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"50% Helligkeit", // 96
|
||||
"AM RF Level offset:", // 97
|
||||
"Signalmeter unit:", // 98
|
||||
"Use AF:" // 99
|
||||
"Use AF:", // 99
|
||||
"Select FM Band:", // 100
|
||||
"Select AM Band:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
},
|
||||
|
||||
{ "Czech", // Czech
|
||||
@@ -814,7 +863,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"50% brightness", // 96
|
||||
"AM RF Level offset:", // 97
|
||||
"Signalmeter unit:", // 98
|
||||
"Use AF:" // 99
|
||||
"Use AF:", // 99
|
||||
"Select FM Band:", // 100
|
||||
"Select AM Band:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
},
|
||||
|
||||
{ "Slovak", // Slovak
|
||||
@@ -916,7 +972,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"50% brightness", // 96
|
||||
"AM RF Level offset:", // 97
|
||||
"Signalmeter unit:", // 98
|
||||
"Use AF:" // 99
|
||||
"Use AF:", // 99
|
||||
"Select FM Band:", // 100
|
||||
"Select AM Band:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
},
|
||||
|
||||
{ "Français", // French
|
||||
@@ -1018,7 +1081,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"50% brightness", // 96
|
||||
"AM RF Level offset:", // 97
|
||||
"Signalmeter unit:", // 98
|
||||
"Use AF:" // 99
|
||||
"Use AF:", // 99
|
||||
"Select FM Band:", // 100
|
||||
"Select AM Band:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
},
|
||||
|
||||
{ "Български", // Bulgarian
|
||||
@@ -1120,7 +1190,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"50% brightness", // 96
|
||||
"AM RF Level offset:", // 97
|
||||
"Signalmeter unit:", // 98
|
||||
"Use AF:" // 99
|
||||
"Use AF:", // 99
|
||||
"Select FM Band:", // 100
|
||||
"Select AM Band:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
},
|
||||
|
||||
{ "Русский", // Russian
|
||||
@@ -1222,7 +1299,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"50% яркости", // 96
|
||||
"Смещение уровня AM RF:", // 97
|
||||
"Измеритель сигнала:", // 98
|
||||
"Режим AF:" // 99
|
||||
"Режим AF:", // 99
|
||||
"Select FM Band:", // 100
|
||||
"Select AM Band:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
},
|
||||
|
||||
{ "Українська", // Ukranian
|
||||
@@ -1324,7 +1408,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"50% яскравості", // 96
|
||||
"Зміщення рівня AM RF:", // 97
|
||||
"Вимірник сигналу:", // 98
|
||||
"Режим AF:" // 99
|
||||
"Режим AF:", // 99
|
||||
"Select FM Band:", // 100
|
||||
"Select AM Band:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
},
|
||||
|
||||
{ "Italiano", // Italian
|
||||
@@ -1426,7 +1517,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"50 % di luminosità", // 96
|
||||
"Offset livello RF AM: ", // 97
|
||||
"Unità S - meter: ", // 98
|
||||
"Use AF:" // 99
|
||||
"Use AF:", // 99
|
||||
"Select FM Band:", // 100
|
||||
"Select AM Band:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
},
|
||||
|
||||
{ "Simplified Chinese", // Simplified Chinese
|
||||
@@ -1528,7 +1626,14 @@ static const char* const myLanguage[15][100] = {
|
||||
"屏幕50% 亮度", // 96
|
||||
"AM 高频信号偏移:", // 97
|
||||
"信号单位:", // 98
|
||||
"Use AF:" // 99
|
||||
"使用 AF:", // 99
|
||||
"选择FM波段:", // 100
|
||||
"选择FM波段:", // 101
|
||||
"LW", // 102
|
||||
"MW", // 103
|
||||
"SW", // 104
|
||||
"FM", // 105
|
||||
"OIRT" // 106
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user