Merge pull request #46 from ohmytime/OIRT

This commit is contained in:
Sjef Verhoeven PE5PVB
2023-06-24 14:55:46 +02:00
committed by GitHub
3 changed files with 184 additions and 28 deletions
+161 -18
View File
@@ -133,6 +133,9 @@ unsigned int HighEdgeSet;
int LevelOffset; int LevelOffset;
unsigned int LowEdgeSet; unsigned int LowEdgeSet;
int LowLevelSet; int LowLevelSet;
byte specialstepOIRT;
unsigned int LowEdgeOIRTSet;
unsigned int HighEdgeOIRTSet;
unsigned int LWHighEdgeSet; unsigned int LWHighEdgeSet;
unsigned int LWLowEdgeSet; unsigned int LWLowEdgeSet;
unsigned int MWHighEdgeSet; unsigned int MWHighEdgeSet;
@@ -229,7 +232,7 @@ WiFiUDP Udp;
void setup() { void setup() {
setupmode = true; setupmode = true;
EEPROM.begin(249); EEPROM.begin(258);
if (EEPROM.readByte(43) != 27) DefaultSettings(); if (EEPROM.readByte(43) != 27) DefaultSettings();
frequency = EEPROM.readUInt(0); frequency = EEPROM.readUInt(0);
@@ -276,6 +279,9 @@ void setup() {
amnb = EEPROM.readByte(246); amnb = EEPROM.readByte(246);
fmnb = EEPROM.readByte(247); fmnb = EEPROM.readByte(247);
audiomode = EEPROM.readByte(248); audiomode = EEPROM.readByte(248);
specialstepOIRT = EEPROM.readByte(249);
LowEdgeOIRTSet = EEPROM.readUInt(250);
HighEdgeOIRTSet = EEPROM.readUInt(254);
LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash
LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash
@@ -305,6 +311,15 @@ void setup() {
if (stepsize > 3) stepsize = 3; if (stepsize > 3) stepsize = 3;
break; break;
case BAND_SW: frequency_SW = frequency_AM; 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) { Round50K(frequency); }
}
break;
default: break; default: break;
} }
@@ -1183,6 +1198,13 @@ void ModeButtonPress() {
BWOld = 0; BWOld = 0;
radio.clearRDS(fullsearchrds); radio.clearRDS(fullsearchrds);
RDSstatus = 0; RDSstatus = 0;
if (specialstepOIRT) {
if (frequency >= (FREQ_FM_OIRT_START) && frequency <= (FREQ_FM_OIRT_END)) {
if (frequency % 3 != 0) { Round30K(frequency); }
}
}else {
if (frequency % 10 != 0) { Round50K(frequency); }
}
BuildDisplay(); BuildDisplay();
ShowSignalLevel(); ShowSignalLevel();
ShowBW(); ShowBW();
@@ -1217,6 +1239,9 @@ void ModeButtonPress() {
EEPROM.writeByte(246, amnb); EEPROM.writeByte(246, amnb);
EEPROM.writeByte(247, fmnb); EEPROM.writeByte(247, fmnb);
EEPROM.writeByte(248, audiomode); EEPROM.writeByte(248, audiomode);
EEPROM.writeByte(249, specialstepOIRT);
EEPROM.writeUInt(250, LowEdgeOIRTSet);
EEPROM.writeUInt(254, HighEdgeOIRTSet);
EEPROM.commit(); EEPROM.commit();
Serial.end(); Serial.end();
if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient); if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient);
@@ -1241,17 +1266,51 @@ void ShowStepSize() {
} }
} }
void FindhighStopOIRT() {
if (HighEdgeSet >= (FREQ_FM_OIRT_START / 10) && HighEdgeSet <= (FREQ_FM_OIRT_END / 10)) {
HighEdgeOIRTSet = (HighEdgeSet * 10 - (HighEdgeSet * 10) % 3);
}else {
HighEdgeOIRTSet = 0;
}
}
void FindlowStopOIRT() {
if (LowEdgeSet >= (FREQ_FM_OIRT_START / 10) && LowEdgeSet <= (FREQ_FM_OIRT_END / 10)) {
LowEdgeOIRTSet = (LowEdgeSet * 10 - (LowEdgeSet * 10) % 3);
}else {
LowEdgeOIRTSet = 0;
}
}
void Round30K(unsigned int freq) {
if (freq % 3 < 3) {
frequency = (freq - freq % 3);
}
}
void Round50K(unsigned int freq) {
if (freq % 10 < 3) {
frequency = (freq - freq % 10);
}
else if (freq % 10 > 2 && freq % 10 < 8) {
frequency = (freq - (freq % 10 - 5));
}
else if (freq % 10 > 7) {
frequency = (freq - (freq % 10) + 10);
}
}
void RoundStep() { void RoundStep() {
if (band == BAND_FM) { if (band == BAND_FM) {
unsigned int freq = frequency; unsigned int freq = frequency;
if (freq % 10 < 3) { if (specialstepOIRT) {
frequency = (freq - freq % 10); if (frequency >= FREQ_FM_OIRT_START && frequency <= FREQ_FM_OIRT_END) {
} Round30K(freq);
else if (freq % 10 > 2 && freq % 10 < 8) { }else {
frequency = (freq - (freq % 10 - 5)); Round50K(freq);
} }
else if (freq % 10 > 7) { }else {
frequency = (freq - (freq % 10) + 10); Round50K(freq);
} }
radio.SetFreq(frequency); radio.SetFreq(frequency);
} }
@@ -1594,6 +1653,13 @@ void ButtonPress() {
tft.setTextColor(TFT_YELLOW); tft.setTextColor(TFT_YELLOW);
if (audiomode) tft.drawCentreString("MPX", 155, 110, GFXFF); else tft.drawCentreString("Stereo", 155, 110, GFXFF); if (audiomode) tft.drawCentreString("MPX", 155, 110, GFXFF); else tft.drawCentreString("Stereo", 155, 110, GFXFF);
break; break;
case 210:
tft.setTextColor(TFT_WHITE);
tft.drawCentreString(myLanguage[language][68], 155, 70, GFXFF);
tft.setTextColor(TFT_YELLOW);
if (specialstepOIRT) tft.drawCentreString("ON", 155, 110, GFXFF); else tft.drawCentreString("OFF", 155, 110, GFXFF);
break;
} }
} }
} else { } else {
@@ -1690,6 +1756,10 @@ void KeyUp() {
tft.drawRightString(String(LowEdgeSet / 10 + ConverterSet, DEC) + "." + String(LowEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF); tft.drawRightString(String(LowEdgeSet / 10 + ConverterSet, DEC) + "." + String(LowEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF);
LowEdgeSet ++; LowEdgeSet ++;
if (LowEdgeSet > 1070) LowEdgeSet = 650; if (LowEdgeSet > 1070) LowEdgeSet = 650;
if (specialstepOIRT) {
FindlowStopOIRT();
FindhighStopOIRT();
}
tft.setTextColor(TFT_YELLOW); tft.setTextColor(TFT_YELLOW);
tft.drawRightString(String(LowEdgeSet / 10 + ConverterSet, DEC) + "." + String(LowEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF); tft.drawRightString(String(LowEdgeSet / 10 + ConverterSet, DEC) + "." + String(LowEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF);
break; break;
@@ -1699,6 +1769,10 @@ void KeyUp() {
tft.drawRightString(String(HighEdgeSet / 10 + ConverterSet, DEC) + "." + String(HighEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF); tft.drawRightString(String(HighEdgeSet / 10 + ConverterSet, DEC) + "." + String(HighEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF);
HighEdgeSet ++; HighEdgeSet ++;
if (HighEdgeSet > 1080) HighEdgeSet = 660; if (HighEdgeSet > 1080) HighEdgeSet = 660;
if (specialstepOIRT) {
FindlowStopOIRT();
FindhighStopOIRT();
}
tft.setTextColor(TFT_YELLOW); tft.setTextColor(TFT_YELLOW);
tft.drawRightString(String(HighEdgeSet / 10 + ConverterSet, DEC) + "." + String(HighEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF); tft.drawRightString(String(HighEdgeSet / 10 + ConverterSet, DEC) + "." + String(HighEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF);
break; break;
@@ -1947,6 +2021,19 @@ void KeyUp() {
if (audiomode) tft.drawCentreString("MPX", 155, 110, GFXFF); else tft.drawCentreString("Stereo", 155, 110, GFXFF); if (audiomode) tft.drawCentreString("MPX", 155, 110, GFXFF); else tft.drawCentreString("Stereo", 155, 110, GFXFF);
radio.setAudio(audiomode); radio.setAudio(audiomode);
break; break;
case 210:
tft.setTextColor(TFT_BLACK);
if (specialstepOIRT) tft.drawCentreString("ON", 155, 110, GFXFF); else tft.drawCentreString("OFF", 155, 110, GFXFF);
if (specialstepOIRT) {
specialstepOIRT = 0;
} else {
specialstepOIRT = 1;
FindlowStopOIRT();
FindhighStopOIRT();
}
tft.setTextColor(TFT_YELLOW);
if (specialstepOIRT) tft.drawCentreString("ON", 155, 110, GFXFF); else tft.drawCentreString("OFF", 155, 110, GFXFF);
break;
} }
} }
} }
@@ -2035,6 +2122,10 @@ void KeyDown() {
tft.drawRightString(String(LowEdgeSet / 10 + ConverterSet, DEC) + "." + String(LowEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF); tft.drawRightString(String(LowEdgeSet / 10 + ConverterSet, DEC) + "." + String(LowEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF);
LowEdgeSet -= 10; LowEdgeSet -= 10;
if (LowEdgeSet < 650) LowEdgeSet = 1079; if (LowEdgeSet < 650) LowEdgeSet = 1079;
if (specialstepOIRT) {
FindlowStopOIRT();
FindhighStopOIRT();
}
tft.setTextColor(TFT_YELLOW); tft.setTextColor(TFT_YELLOW);
tft.drawRightString(String(LowEdgeSet / 10 + ConverterSet, DEC) + "." + String(LowEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF); tft.drawRightString(String(LowEdgeSet / 10 + ConverterSet, DEC) + "." + String(LowEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF);
break; break;
@@ -2044,6 +2135,10 @@ void KeyDown() {
tft.drawRightString(String(HighEdgeSet / 10 + ConverterSet, DEC) + "." + String(HighEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF); tft.drawRightString(String(HighEdgeSet / 10 + ConverterSet, DEC) + "." + String(HighEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF);
HighEdgeSet -= 10; HighEdgeSet -= 10;
if (HighEdgeSet < 660) HighEdgeSet = 1080; if (HighEdgeSet < 660) HighEdgeSet = 1080;
if (specialstepOIRT) {
FindlowStopOIRT();
FindhighStopOIRT();
}
tft.setTextColor(TFT_YELLOW); tft.setTextColor(TFT_YELLOW);
tft.drawRightString(String(HighEdgeSet / 10 + ConverterSet, DEC) + "." + String(HighEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF); tft.drawRightString(String(HighEdgeSet / 10 + ConverterSet, DEC) + "." + String(HighEdgeSet % 10 + ConverterSet, DEC), 155, 110, GFXFF);
break; break;
@@ -2293,6 +2388,19 @@ void KeyDown() {
if (audiomode) tft.drawCentreString("MPX", 155, 110, GFXFF); else tft.drawCentreString("Stereo", 155, 110, GFXFF); if (audiomode) tft.drawCentreString("MPX", 155, 110, GFXFF); else tft.drawCentreString("Stereo", 155, 110, GFXFF);
radio.setAudio(audiomode); radio.setAudio(audiomode);
break; break;
case 210:
tft.setTextColor(TFT_BLACK);
if (specialstepOIRT) tft.drawCentreString("ON", 155, 110, GFXFF); else tft.drawCentreString("OFF", 155, 110, GFXFF);
if (specialstepOIRT) {
specialstepOIRT = 0;
} else {
specialstepOIRT = 1;
FindlowStopOIRT();
FindhighStopOIRT();
}
tft.setTextColor(TFT_YELLOW);
if (specialstepOIRT) tft.drawCentreString("ON", 155, 110, GFXFF); else tft.drawCentreString("OFF", 155, 110, GFXFF);
break;
} }
} }
} }
@@ -2688,6 +2796,7 @@ void BuildMenu() {
tft.drawString(myLanguage[language][64], 14, 150, GFXFF); tft.drawString(myLanguage[language][64], 14, 150, GFXFF);
tft.drawString(myLanguage[language][65], 14, 170, GFXFF); tft.drawString(myLanguage[language][65], 14, 170, GFXFF);
tft.drawString(myLanguage[language][67], 14, 190, GFXFF); tft.drawString(myLanguage[language][67], 14, 190, GFXFF);
tft.drawString(myLanguage[language][68], 14, 210, GFXFF);
if (amnb != 0) tft.drawRightString("%", 305, 150, GFXFF); else tft.drawRightString(myLanguage[language][30], 265, 150, GFXFF); if (amnb != 0) tft.drawRightString("%", 305, 150, GFXFF); else tft.drawRightString(myLanguage[language][30], 265, 150, GFXFF);
if (fmnb != 0) tft.drawRightString("%", 305, 170, GFXFF); else tft.drawRightString(myLanguage[language][30], 265, 170, GFXFF); if (fmnb != 0) tft.drawRightString("%", 305, 170, GFXFF); else tft.drawRightString(myLanguage[language][30], 265, 170, GFXFF);
tft.setTextColor(TFT_YELLOW); tft.setTextColor(TFT_YELLOW);
@@ -2700,6 +2809,7 @@ void BuildMenu() {
if (amnb != 0) tft.drawRightString(String(amnb, DEC), 265, 150, GFXFF); else tft.drawRightString(myLanguage[language][30], 265, 150, GFXFF); if (amnb != 0) tft.drawRightString(String(amnb, DEC), 265, 150, GFXFF); else tft.drawRightString(myLanguage[language][30], 265, 150, GFXFF);
if (fmnb != 0) tft.drawRightString(String(fmnb, DEC), 265, 170, GFXFF); else tft.drawRightString(myLanguage[language][30], 265, 170, GFXFF); if (fmnb != 0) tft.drawRightString(String(fmnb, DEC), 265, 170, GFXFF); else tft.drawRightString(myLanguage[language][30], 265, 170, GFXFF);
if (audiomode) tft.drawRightString("MPX", 305, 190, GFXFF); else tft.drawRightString("Stereo", 305, 190, GFXFF); if (audiomode) tft.drawRightString("MPX", 305, 190, GFXFF); else tft.drawRightString("Stereo", 305, 190, GFXFF);
if (specialstepOIRT) tft.drawRightString("ON", 305, 210, GFXFF); else tft.drawRightString("OFF", 305, 210, GFXFF);
} }
analogWrite(SMETERPIN, 0); analogWrite(SMETERPIN, 0);
} }
@@ -4253,7 +4363,15 @@ void TuneUp() {
frequency_AM = (frequency_AM / FREQ_SW_STEP_5K) * FREQ_SW_STEP_5K; frequency_AM = (frequency_AM / FREQ_SW_STEP_5K) * FREQ_SW_STEP_5K;
} }
} else { } else {
temp = 5; if (frequency >= (FREQ_FM_OIRT_START) && frequency <= (FREQ_FM_OIRT_END - FREQ_FM_STEP_30K)) {
if (specialstepOIRT) {
temp = FREQ_FM_STEP_30K;
}else {
temp = FREQ_FM_STEP_50K;
}
}else {
temp = FREQ_FM_STEP_50K;
}
} }
} }
if (stepsize == 1) temp = 1; if (stepsize == 1) temp = 1;
@@ -4263,9 +4381,16 @@ void TuneUp() {
if (band == BAND_FM) { if (band == BAND_FM) {
frequency += temp; frequency += temp;
if (frequency >= (HighEdgeSet * 10) + 1) { if (specialstepOIRT) {
frequency = LowEdgeSet * 10; if (frequency >= (HighEdgeOIRTSet == 0 ? ((HighEdgeSet * 10) + 1) : (HighEdgeOIRTSet + 1))){
if (edgebeep) EdgeBeeper(); frequency = (LowEdgeOIRTSet == 0 ? (LowEdgeSet * 10) : LowEdgeOIRTSet);
if (edgebeep) EdgeBeeper();
}
} else {
if (frequency >= (HighEdgeSet * 10) + 1) {
frequency = LowEdgeSet * 10;
if (edgebeep) EdgeBeeper();
}
} }
radio.SetFreq(frequency); radio.SetFreq(frequency);
} }
@@ -4317,7 +4442,15 @@ void TuneDown() {
frequency_AM = (frequency_AM / temp) * temp; frequency_AM = (frequency_AM / temp) * temp;
} }
} else { } else {
temp = 5; if (frequency >= (FREQ_FM_OIRT_START + FREQ_FM_STEP_30K) && frequency <= (FREQ_FM_OIRT_END)) {
if (specialstepOIRT) {
temp = FREQ_FM_STEP_30K;
}else {
temp = FREQ_FM_STEP_50K;
}
}else {
temp = FREQ_FM_STEP_50K;
}
} }
} }
if (stepsize == 1) temp = 1; if (stepsize == 1) temp = 1;
@@ -4327,11 +4460,17 @@ void TuneDown() {
if (band == BAND_FM) { if (band == BAND_FM) {
frequency -= temp; frequency -= temp;
if (frequency < LowEdgeSet * 10) { if (specialstepOIRT) {
frequency = HighEdgeSet * 10; if (frequency < (LowEdgeOIRTSet == 0 ? (LowEdgeSet * 10) : LowEdgeOIRTSet) ){
if (edgebeep) EdgeBeeper(); frequency = (HighEdgeOIRTSet == 0 ? (HighEdgeSet * 10) : HighEdgeOIRTSet);
if (edgebeep) EdgeBeeper();
}
} else {
if (frequency < LowEdgeSet * 10) {
frequency = HighEdgeSet * 10;
if (edgebeep) EdgeBeeper();
}
} }
radio.SetFreq(frequency);
} }
if (band == BAND_LW) { if (band == BAND_LW) {
@@ -4529,5 +4668,9 @@ void DefaultSettings() {
EEPROM.writeByte(246, 0); EEPROM.writeByte(246, 0);
EEPROM.writeByte(247, 0); EEPROM.writeByte(247, 0);
EEPROM.writeByte(248, 0); EEPROM.writeByte(248, 0);
EEPROM.writeByte(249,0);
EEPROM.writeUInt(250,0);
EEPROM.writeUInt(254,0);
EEPROM.commit(); EEPROM.commit();
} }
+4
View File
@@ -32,6 +32,8 @@ enum RADIO_TUNE_MODE {
#define FREQ_MW_STEP_9K 9 #define FREQ_MW_STEP_9K 9
#define FREQ_MW_STEP_10K 10 #define FREQ_MW_STEP_10K 10
#define FREQ_SW_STEP_5K 5 #define FREQ_SW_STEP_5K 5
#define FREQ_FM_STEP_50K 5
#define FREQ_FM_STEP_30K 3
#define FREQ_LW_LOW_EDGE_MIN 144 #define FREQ_LW_LOW_EDGE_MIN 144
#define FREQ_LW_HIGH_EDGE_MAX 519 #define FREQ_LW_HIGH_EDGE_MAX 519
@@ -45,6 +47,8 @@ enum RADIO_TUNE_MODE {
#define FREQ_SW_HIGH_EDGE_MAX (FREQ_SW_END) #define FREQ_SW_HIGH_EDGE_MAX (FREQ_SW_END)
#define FREQ_FM_START 65000 #define FREQ_FM_START 65000
#define FREQ_FM_END 108000 #define FREQ_FM_END 108000
#define FREQ_FM_OIRT_START 6540
#define FREQ_FM_OIRT_END 7800
// according to https://www.short-wave.info/index.php?feature=frequencies // according to https://www.short-wave.info/index.php?feature=frequencies
#define FREQ_SW_START 1800 #define FREQ_SW_START 1800
+19 -10
View File
@@ -1,6 +1,6 @@
// [number of languages][number of texts][max. length of text] // [number of languages][number of texts][max. length of text]
static const char myLanguage[9][68][78] = { static const char myLanguage[9][69][85] = {
{ "English", // English { "English", // English
"Rotary direction changed", "Rotary direction changed",
"Please release button", "Please release button",
@@ -68,7 +68,8 @@ static const char myLanguage[9][68][78] = {
"AM Noise blanker", "AM Noise blanker",
"FM Noise blanker", "FM Noise blanker",
"Defaults loaded", "Defaults loaded",
"Audio output" "Audio output",
"FM OIRT 30K Step"
}, },
{ "Nederlands", // Dutch { "Nederlands", // Dutch
@@ -138,7 +139,8 @@ static const char myLanguage[9][68][78] = {
"AM ruis filter", "AM ruis filter",
"FM ruis filter", "FM ruis filter",
"Opnieuw geconfigureerd", "Opnieuw geconfigureerd",
"Audio uitgang" "Audio uitgang",
"FM OIRT 30K Step"
}, },
{ "Polski", // Polish { "Polski", // Polish
@@ -208,7 +210,8 @@ static const char myLanguage[9][68][78] = {
"AM Noise blanker", "AM Noise blanker",
"FM Noise blanker", "FM Noise blanker",
"Defaults loaded", "Defaults loaded",
"Audio output" "Audio output",
"FM OIRT 30K Step"
}, },
{ "Hrvatski", // Croatian { "Hrvatski", // Croatian
@@ -278,7 +281,8 @@ static const char myLanguage[9][68][78] = {
"AM prigušivač šuma", "AM prigušivač šuma",
"FM prigušivač šuma", "FM prigušivač šuma",
"Zadane postavke učitane", "Zadane postavke učitane",
"Audio izlaz" "Audio izlaz",
"FM OIRT 30K Step"
}, },
{ "Ελληνικά", // Greek { "Ελληνικά", // Greek
@@ -348,7 +352,8 @@ static const char myLanguage[9][68][78] = {
"Απαλοιφή θορύβου AM", "Απαλοιφή θορύβου AM",
"Απαλοιφή θορύβου FM", "Απαλοιφή θορύβου FM",
"Οι προεπιλογές φορτώθηκαν", "Οι προεπιλογές φορτώθηκαν",
"Έξοδος ήχου" "Έξοδος ήχου",
"FM OIRT 30K Step"
}, },
{ "Romana", // Romanian { "Romana", // Romanian
@@ -418,7 +423,8 @@ static const char myLanguage[9][68][78] = {
"AM Noise blanker", "AM Noise blanker",
"FM Noise blanker", "FM Noise blanker",
"Defaults loaded", "Defaults loaded",
"Audio output" "Audio output",
"FM OIRT 30K Step"
}, },
{ "Deutsch", // German { "Deutsch", // German
@@ -488,7 +494,8 @@ static const char myLanguage[9][68][78] = {
"AM Rauschunterdrücker", "AM Rauschunterdrücker",
"UKW Rauschunterdrücker", "UKW Rauschunterdrücker",
"Werkseinstellung geladen", "Werkseinstellung geladen",
"Audioausgabe" "Audioausgabe",
"FM OIRT 30K Step"
}, },
{ "Czech", // Czech { "Czech", // Czech
@@ -558,7 +565,8 @@ static const char myLanguage[9][68][78] = {
"AM Noise blanker", "AM Noise blanker",
"FM Noise blanker", "FM Noise blanker",
"Defaults loaded", "Defaults loaded",
"Audio output" "Audio output",
"FM OIRT 30K Step"
}, },
{ "Slovak", // Slovak { "Slovak", // Slovak
@@ -628,6 +636,7 @@ static const char myLanguage[9][68][78] = {
"AM Noise blanker", "AM Noise blanker",
"FM Noise blanker", "FM Noise blanker",
"Defaults loaded", "Defaults loaded",
"Audio output" "Audio output",
"FM OIRT 30K Step"
}, },
}; };