You've already forked TEF6686_ESP32
Added RBDS support with stationcall and underscore in PS
This commit is contained in:
@@ -57,14 +57,17 @@ bool Stereostatusold;
|
||||
bool StereoToggle = true;
|
||||
bool store;
|
||||
bool tuned;
|
||||
bool underscore;
|
||||
bool USBstatus;
|
||||
bool XDRMute;
|
||||
byte region;
|
||||
byte regionold;
|
||||
byte language;
|
||||
byte tunemode;
|
||||
byte memorypos;
|
||||
byte memoryposold;
|
||||
byte menupage = 1;
|
||||
byte menupagestotal = 2;
|
||||
bool USBstatus;
|
||||
bool XDRMute;
|
||||
byte band;
|
||||
byte BWset;
|
||||
byte ContrastSet;
|
||||
@@ -154,8 +157,8 @@ TFT_eSprite sprite = TFT_eSprite(&tft);
|
||||
void setup() {
|
||||
setupmode = true;
|
||||
EEPROM.begin(221);
|
||||
if (EEPROM.readByte(43) != 20) {
|
||||
EEPROM.writeByte(43, 20);
|
||||
if (EEPROM.readByte(43) != 21) {
|
||||
EEPROM.writeByte(43, 21);
|
||||
EEPROM.writeUInt(0, 10000);
|
||||
EEPROM.writeInt(4, 0);
|
||||
EEPROM.writeUInt(8, 0);
|
||||
@@ -181,8 +184,10 @@ void setup() {
|
||||
EEPROM.writeByte(44, 1);
|
||||
EEPROM.writeByte(45, 1);
|
||||
EEPROM.writeByte(46, 0);
|
||||
EEPROM.writeInt(47, 20);
|
||||
EEPROM.writeByte(51, 0);
|
||||
EEPROM.writeInt(55, 20);
|
||||
EEPROM.writeByte(52, 0);
|
||||
EEPROM.writeByte(53, 0);
|
||||
for (int i = 0; i < 30; i++) EEPROM.writeByte(i + 60, 0);
|
||||
for (int i = 0; i < 30; i++) EEPROM.writeUInt((i * 4) + 100, 8750);
|
||||
EEPROM.commit();
|
||||
@@ -213,8 +218,10 @@ void setup() {
|
||||
iMSset = EEPROM.readByte(44);
|
||||
EQset = EEPROM.readByte(45);
|
||||
band = EEPROM.readByte(46);
|
||||
LowLevelSet = EEPROM.readInt(47);
|
||||
memorypos = EEPROM.readByte(51);
|
||||
LowLevelSet = EEPROM.readInt(55);
|
||||
region = EEPROM.readByte(52);
|
||||
underscore = EEPROM.readByte(53);
|
||||
|
||||
for (int i = 0; i < 30; i++) memoryband[i] = EEPROM.readByte(i + 60);
|
||||
for (int i = 0; i < 30; i++) memory[i] = EEPROM.readUInt((i * 4) + 100);
|
||||
@@ -368,6 +375,8 @@ void setup() {
|
||||
radio.setMute();
|
||||
radio.setSoftmuteFM(softmutefm);
|
||||
radio.setSoftmuteAM(softmuteam);
|
||||
if (region == 1) radio.setDeemphasis(2);
|
||||
radio.rds.region = region;
|
||||
LowLevelInit = true;
|
||||
|
||||
if (ConverterSet >= 200) {
|
||||
@@ -403,7 +412,8 @@ void loop() {
|
||||
tft.drawString("120", 164, 146, GFXFF);
|
||||
tft.drawString("%", 196, 146, GFXFF);
|
||||
tft.drawString("M", 6, 132, GFXFF);
|
||||
tft.drawString("PI:", 216, 191, GFXFF);
|
||||
if (region == 0) tft.drawString("PI:", 216, 191, GFXFF);
|
||||
if (region == 1) tft.drawString("ID:", 216, 191, GFXFF);
|
||||
tft.drawString("PS:", 6, 191, GFXFF);
|
||||
tft.drawString("PTY:", 6, 164, GFXFF);
|
||||
tft.drawLine(20, 150, 200, 150, TFT_DARKGREY);
|
||||
@@ -437,7 +447,8 @@ void loop() {
|
||||
tft.drawString("120", 164, 146, GFXFF);
|
||||
tft.drawString("%", 196, 146, GFXFF);
|
||||
tft.drawString("M", 6, 132, GFXFF);
|
||||
tft.drawString("PI:", 216, 191, GFXFF);
|
||||
if (region == 0) tft.drawString("PI:", 216, 191, GFXFF);
|
||||
if (region == 1) tft.drawString("ID:", 216, 191, GFXFF);
|
||||
tft.drawString("PS:", 6, 191, GFXFF);
|
||||
tft.drawString("PTY:", 6, 164, GFXFF);
|
||||
tft.drawLine(20, 150, 200, 150, TFT_GREYOUT);
|
||||
@@ -590,7 +601,8 @@ void SelectBand() {
|
||||
radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus);
|
||||
if (screenmute == false) BuildDisplay();
|
||||
tft.setFreeFont(FONT7);
|
||||
tft.drawString("PI:", 216, 191, GFXFF);
|
||||
if (region == 0) tft.drawString("PI:", 216, 191, GFXFF);
|
||||
if (region == 1) tft.drawString("ID:", 216, 191, GFXFF);
|
||||
tft.drawString("PS:", 6, 191, GFXFF);
|
||||
tft.drawString("PTY:", 6, 164, GFXFF);
|
||||
tft.drawBitmap(110, 5, RDSLogo, 67, 22, TFT_GREYOUT);
|
||||
@@ -712,7 +724,9 @@ void ModeButtonPress() {
|
||||
EEPROM.writeByte(30, softmutefm);
|
||||
EEPROM.writeByte(35, language);
|
||||
EEPROM.writeByte(36, showrdserrors);
|
||||
EEPROM.writeInt(55, LowLevelSet);
|
||||
EEPROM.writeInt(47, LowLevelSet);
|
||||
EEPROM.writeByte(52, region);
|
||||
EEPROM.writeByte(53, underscore);
|
||||
EEPROM.commit();
|
||||
}
|
||||
while (digitalRead(MODEBUTTON) == LOW) delay(50);
|
||||
@@ -960,6 +974,21 @@ void ButtonPress() {
|
||||
tft.setTextColor(TFT_YELLOW);
|
||||
if (edgebeep) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||
break;
|
||||
|
||||
case 130:
|
||||
tft.setTextColor(TFT_WHITE);
|
||||
tft.drawCentreString(myLanguage[language][46], 155, 70, GFXFF);
|
||||
tft.setTextColor(TFT_YELLOW);
|
||||
if (region == 0) tft.drawCentreString(myLanguage[language][47], 155, 110, GFXFF);
|
||||
if (region == 1) tft.drawCentreString(myLanguage[language][48], 155, 110, GFXFF);
|
||||
break;
|
||||
|
||||
case 150:
|
||||
tft.setTextColor(TFT_WHITE);
|
||||
tft.drawCentreString(myLanguage[language][49], 155, 70, GFXFF);
|
||||
tft.setTextColor(TFT_YELLOW);
|
||||
if (underscore) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -1171,6 +1200,28 @@ void KeyUp() {
|
||||
tft.setTextColor(TFT_YELLOW);
|
||||
if (edgebeep) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||
break;
|
||||
|
||||
case 130:
|
||||
tft.setTextColor(TFT_BLACK);
|
||||
if (region == 0) region = 1; else region = 0;
|
||||
if (regionold == 0) tft.drawCentreString(myLanguage[language][47], 155, 110, GFXFF);
|
||||
if (regionold == 1) tft.drawCentreString(myLanguage[language][48], 155, 110, GFXFF);
|
||||
if (edgebeep) edgebeep = false; else edgebeep = true;
|
||||
tft.setTextColor(TFT_YELLOW);
|
||||
if (region == 0) tft.drawCentreString(myLanguage[language][47], 155, 110, GFXFF);
|
||||
if (region == 1) tft.drawCentreString(myLanguage[language][48], 155, 110, GFXFF);
|
||||
regionold = region;
|
||||
if (region == 0) radio.setDeemphasis(1);
|
||||
if (region == 1) radio.setDeemphasis(2);
|
||||
radio.rds.region = region;
|
||||
break;
|
||||
|
||||
case 150:
|
||||
tft.setTextColor(TFT_BLACK);
|
||||
if (underscore) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||
if (underscore) underscore = false; else underscore = true;
|
||||
tft.setTextColor(TFT_YELLOW);
|
||||
if (underscore) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1380,6 +1431,28 @@ void KeyDown() {
|
||||
tft.setTextColor(TFT_YELLOW);
|
||||
if (edgebeep) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||
break;
|
||||
|
||||
case 130:
|
||||
tft.setTextColor(TFT_BLACK);
|
||||
if (region == 0) region = 1; else region = 0;
|
||||
if (regionold == 0) tft.drawCentreString(myLanguage[language][47], 155, 110, GFXFF);
|
||||
if (regionold == 1) tft.drawCentreString(myLanguage[language][48], 155, 110, GFXFF);
|
||||
if (edgebeep) edgebeep = false; else edgebeep = true;
|
||||
tft.setTextColor(TFT_YELLOW);
|
||||
if (region == 0) tft.drawCentreString(myLanguage[language][47], 155, 110, GFXFF);
|
||||
if (region == 1) tft.drawCentreString(myLanguage[language][48], 155, 110, GFXFF);
|
||||
regionold = region;
|
||||
if (region == 0) radio.setDeemphasis(1);
|
||||
if (region == 1) radio.setDeemphasis(2);
|
||||
radio.rds.region = region;
|
||||
break;
|
||||
|
||||
case 150:
|
||||
tft.setTextColor(TFT_BLACK);
|
||||
if (underscore) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||
if (underscore) underscore = false; else underscore = true;
|
||||
tft.setTextColor(TFT_YELLOW);
|
||||
if (underscore) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1494,8 +1567,20 @@ void showPS() {
|
||||
tft.setTextColor(TFT_BLACK);
|
||||
tft.drawString(PSold, 38, 182, GFXFF);
|
||||
tft.setTextColor(TFT_YELLOW);
|
||||
tft.drawString(radio.rds.stationName, 38, 182, GFXFF);
|
||||
PSold = radio.rds.stationName;
|
||||
if (underscore) {
|
||||
char PS_[9];
|
||||
strcpy (PS_, radio.rds.stationName);
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
if (PS_[i] < 0x10) PS_[i] = '0';
|
||||
if (PS_[i] == 0x20) PS_[i] = '_';
|
||||
}
|
||||
tft.drawString(PS_, 38, 182, GFXFF);
|
||||
PSold = PS_;
|
||||
} else {
|
||||
tft.drawString(radio.rds.stationName, 38, 182, GFXFF);
|
||||
PSold = radio.rds.stationName;
|
||||
}
|
||||
strcpy(programServicePrevious, radio.rds.stationName);
|
||||
}
|
||||
}
|
||||
@@ -1596,12 +1681,17 @@ void BuildMenu() {
|
||||
tft.drawString(myLanguage[language][43], 14, 70, GFXFF);
|
||||
tft.drawString(myLanguage[language][44], 14, 90, GFXFF);
|
||||
tft.drawString(myLanguage[language][45], 14, 110, GFXFF);
|
||||
tft.drawString(myLanguage[language][46], 14, 130, GFXFF);
|
||||
tft.drawString(myLanguage[language][49], 14, 150, GFXFF);
|
||||
tft.setTextColor(TFT_YELLOW);
|
||||
tft.drawRightString(myLanguage[language][0], 305, 30, GFXFF);
|
||||
if (showrdserrors) tft.drawRightString(myLanguage[language][42], 305, 50, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 50, GFXFF);
|
||||
if (softmutefm) tft.drawRightString(myLanguage[language][42], 305, 70, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 70, GFXFF);
|
||||
if (softmuteam) tft.drawRightString(myLanguage[language][42], 305, 90, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 90, GFXFF);
|
||||
if (edgebeep) tft.drawRightString(myLanguage[language][42], 305, 110, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 110, GFXFF);
|
||||
if (region == 0) tft.drawRightString(myLanguage[language][47], 305, 130, GFXFF);
|
||||
if (region == 1) tft.drawRightString(myLanguage[language][48], 305, 130, GFXFF);
|
||||
if (underscore) tft.drawRightString(myLanguage[language][42], 305, 150, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 150, GFXFF);
|
||||
break;
|
||||
}
|
||||
analogWrite(SMETERPIN, 0);
|
||||
@@ -1656,7 +1746,8 @@ void BuildDisplay() {
|
||||
tft.drawString("dB", 300, 167, GFXFF);
|
||||
tft.drawString("S", 6, 100, GFXFF);
|
||||
tft.drawString("M", 6, 132, GFXFF);
|
||||
tft.drawString("PI:", 216, 191, GFXFF);
|
||||
if (region == 0) tft.drawString("PI:", 216, 191, GFXFF);
|
||||
if (region == 1) tft.drawString("ID:", 216, 191, GFXFF);
|
||||
tft.drawString("PS:", 6, 191, GFXFF);
|
||||
tft.drawString("PTY:", 6, 164, GFXFF);
|
||||
tft.drawString("%", 196, 146, GFXFF);
|
||||
@@ -2421,12 +2512,12 @@ void XDRGTKRoutine() {
|
||||
LevelOffset = atol(buff + 1);
|
||||
if (LevelOffset == 0) {
|
||||
MuteScreen(0);
|
||||
LowLevelSet = EEPROM.readInt(55);
|
||||
LowLevelSet = EEPROM.readInt(47);
|
||||
Serial.print("G00\n");
|
||||
}
|
||||
if (LevelOffset == 10) {
|
||||
MuteScreen(1);
|
||||
LowLevelSet = EEPROM.readInt(55);
|
||||
LowLevelSet = EEPROM.readInt(47);
|
||||
Serial.print("G10\n");
|
||||
}
|
||||
if (LevelOffset == 1) {
|
||||
|
||||
@@ -1,42 +1,5 @@
|
||||
#include "TEF6686.h"
|
||||
|
||||
const char* const PTY[]
|
||||
{
|
||||
"None",
|
||||
"News",
|
||||
"Current Affairs",
|
||||
"Information",
|
||||
"Sport",
|
||||
"Education",
|
||||
"Drama",
|
||||
"Cultures",
|
||||
"Science",
|
||||
"Varied Speech",
|
||||
"Pop Music",
|
||||
"Rock Music",
|
||||
"Easy Listening",
|
||||
"Light Classics",
|
||||
"Serious Classics",
|
||||
"Other Music",
|
||||
"Weather",
|
||||
"Finance",
|
||||
"Children's Progs",
|
||||
"Social Affair",
|
||||
"Religion",
|
||||
"Phone In",
|
||||
"Travel & Touring",
|
||||
"Leisure & Hobby",
|
||||
"Jazz Music",
|
||||
"Country Music",
|
||||
"National Music",
|
||||
"Oldies Music",
|
||||
"Folk Music",
|
||||
"Documentary",
|
||||
"Alarm Test",
|
||||
"Alarm!!!",
|
||||
" "
|
||||
};
|
||||
|
||||
void TEF6686::init(byte TEF) {
|
||||
uint8_t bootstatus;
|
||||
Tuner_I2C_Init();
|
||||
@@ -280,12 +243,41 @@ bool TEF6686::readRDS(bool showrdserrors)
|
||||
{
|
||||
//PI
|
||||
if (rds.stationID == 0) rds.stationID = rds.rdsA;
|
||||
char Hex[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
|
||||
rds.picode[0] = Hex[(rds.rdsA & 0xF000U) >> 12];
|
||||
rds.picode[1] = Hex[(rds.rdsA & 0x0F00U) >> 8];
|
||||
rds.picode[2] = Hex[(rds.rdsA & 0x00F0U) >> 4];
|
||||
rds.picode[3] = Hex[(rds.rdsA & 0x000FU)];
|
||||
rds.picode[4] = '\0';
|
||||
if (rds.region == 0) {
|
||||
char Hex[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
|
||||
rds.picode[0] = Hex[(rds.rdsA & 0xF000U) >> 12];
|
||||
rds.picode[1] = Hex[(rds.rdsA & 0x0F00U) >> 8];
|
||||
rds.picode[2] = Hex[(rds.rdsA & 0x00F0U) >> 4];
|
||||
rds.picode[3] = Hex[(rds.rdsA & 0x000FU)];
|
||||
rds.picode[4] = '\0';
|
||||
}
|
||||
if (rds.region == 1) {
|
||||
if (rds.stationID > 4096) {
|
||||
if (rds.stationID > 21671 &&(rds.stationID & 0xF00U) >> 8 == 0) rds.stationID = ((uint16_t)uint8_t(0xA0 + ((rds.stationID & 0xF000U) >> 12)) << 8) + lowByte(rds.stationID); // C0DE -> ACDE
|
||||
if (rds.stationID > 21671 && lowByte(rds.stationID) == 0) rds.stationID = 0xAF00 + uint8_t(highByte(rds.stationID)); // CD00 -> AFCD
|
||||
if (rds.stationID < 39247) {
|
||||
if (rds.stationID > 21671) {
|
||||
rds.picode[0] = 'W';
|
||||
rds.stationID -= 21672;
|
||||
} else {
|
||||
rds.picode[0] = 'K';
|
||||
rds.stationID -= 4096;
|
||||
}
|
||||
rds.picode[1] = char(rds.stationID / 676 + 65);
|
||||
rds.picode[2] = char((rds.stationID - 676 * int(rds.stationID / 676)) / 26 + 65);
|
||||
rds.picode[3] = char(((rds.stationID - 676 * int(rds.stationID / 676)) % 26) + 65);
|
||||
rds.picode[4] = '\0';
|
||||
} else {
|
||||
rds.stationID -= 4835;
|
||||
rds.picode[0] = 'K';
|
||||
rds.picode[1] = char(rds.stationID / 676 + 65);
|
||||
rds.picode[2] = char((rds.stationID - 676 * int(rds.stationID / 676)) / 26 + 65);
|
||||
rds.picode[3] = char(((rds.stationID - 676 * int(rds.stationID / 676)) % 26) + 65);
|
||||
rds.picode[4] = '\0';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rds_group = (rds.rdsB >> 11);
|
||||
if (rds.correctPI == false && rds.correct == true) rds.correctPI = true;
|
||||
switch (rds_group) {
|
||||
@@ -313,7 +305,8 @@ bool TEF6686::readRDS(bool showrdserrors)
|
||||
//PTY
|
||||
rds.stationTypeCode = (rds.rdsB >> 5) & 0x1F;
|
||||
rds.hasPTY = true;
|
||||
strcpy(rds.stationType, PTY[rds.stationTypeCode]);
|
||||
if (rds.region == 0) strcpy(rds.stationType, PTY_EU[rds.stationTypeCode]);
|
||||
if (rds.region == 1) strcpy(rds.stationType, PTY_USA[rds.stationTypeCode]);
|
||||
|
||||
//TP-TA-EON-MS
|
||||
if ((bitRead(rds.rdsB, 4)) == 1 && ((bitRead(rds.rdsB, 10)) == 0)) rds.hasEON = true; else rds.hasEON = false;
|
||||
|
||||
@@ -11,7 +11,80 @@ 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
|
||||
};
|
||||
|
||||
const char* const PTY_EU[] {
|
||||
"None",
|
||||
"News",
|
||||
"Current Affairs",
|
||||
"Information",
|
||||
"Sport",
|
||||
"Education",
|
||||
"Drama",
|
||||
"Cultures",
|
||||
"Science",
|
||||
"Varied Speech",
|
||||
"Pop Music",
|
||||
"Rock Music",
|
||||
"Easy Listening",
|
||||
"Light Classics",
|
||||
"Serious Classics",
|
||||
"Other Music",
|
||||
"Weather",
|
||||
"Finance",
|
||||
"Children's Progs",
|
||||
"Social Affair",
|
||||
"Religion",
|
||||
"Phone In",
|
||||
"Travel & Touring",
|
||||
"Leisure & Hobby",
|
||||
"Jazz Music",
|
||||
"Country Music",
|
||||
"National Music",
|
||||
"Oldies Music",
|
||||
"Folk Music",
|
||||
"Documentary",
|
||||
"Alarm Test",
|
||||
"Alarm!!!",
|
||||
" "
|
||||
};
|
||||
|
||||
const char* const PTY_USA[] {
|
||||
"None",
|
||||
"News",
|
||||
"Information",
|
||||
"Sports",
|
||||
"Talk",
|
||||
"Rock",
|
||||
"Classic Rock",
|
||||
"Adult Hits",
|
||||
"Soft Rock",
|
||||
"Top 40",
|
||||
"Country",
|
||||
"Oldies",
|
||||
"Soft",
|
||||
"Nostalgia",
|
||||
"Jazz",
|
||||
"Classical",
|
||||
"Rhythm and Blues ",
|
||||
"Soft R & B",
|
||||
"Foreign_Language",
|
||||
"Religious Music",
|
||||
"Religious Talk",
|
||||
"Personality",
|
||||
"Public",
|
||||
"College",
|
||||
"Hablar Espanol",
|
||||
"Musica Espanol",
|
||||
"Hip Hop",
|
||||
" ",
|
||||
" ",
|
||||
"Weather",
|
||||
"Emergency Test",
|
||||
"ALERT! ALERT!",
|
||||
" "
|
||||
};
|
||||
|
||||
typedef struct _rds_ {
|
||||
byte region;
|
||||
byte stationTypeCode;
|
||||
char stationName[9];
|
||||
char stationText[65];
|
||||
@@ -94,9 +167,9 @@ class TEF6686 {
|
||||
void setStereoLevel(uint8_t start);
|
||||
void setUnMute();
|
||||
void setVolume(int8_t volume);
|
||||
uint8_t af_counter;
|
||||
bool mute;
|
||||
void tone(uint16_t time, int16_t amplitude, uint16_t frequency);
|
||||
uint8_t af_counter;
|
||||
bool mute;
|
||||
|
||||
private:
|
||||
uint8_t ascii_converter (uint8_t src);
|
||||
|
||||
224
src/language.h
224
src/language.h
@@ -1,6 +1,6 @@
|
||||
// [number of languages][number of texts][max. length of text]
|
||||
|
||||
const char myLanguage[6][46][100] = {
|
||||
const char myLanguage[6][50][100] = {
|
||||
{ "English", // English
|
||||
"Rotary direction changed",
|
||||
"Please release button",
|
||||
@@ -46,7 +46,11 @@ const char myLanguage[6][46][100] = {
|
||||
"On",
|
||||
"Softmute FM",
|
||||
"Softmute AM",
|
||||
"Beep at band edge"
|
||||
"Beep at band edge",
|
||||
"Region",
|
||||
"Europe",
|
||||
"USA",
|
||||
"Show underscore in PS"
|
||||
},
|
||||
|
||||
{ "Nederlands", // Dutch
|
||||
@@ -94,106 +98,118 @@ const char myLanguage[6][46][100] = {
|
||||
"Aan",
|
||||
"Softmute FM",
|
||||
"Softmute AM",
|
||||
"Piep op bandeinde"
|
||||
"Piep op bandeinde",
|
||||
"Regio",
|
||||
"Europa",
|
||||
"USA",
|
||||
"Toon underscore in PS"
|
||||
},
|
||||
|
||||
{ "Polski", // Polish
|
||||
"Kierunek obrotu zmieniony",
|
||||
"Zwolnij przycisk",
|
||||
"Obrocono ekran",
|
||||
"Kalibracja analogowego miernika",
|
||||
"Zwolnij przycisk gdy gotowe",
|
||||
"wybrano enkoder optyczny",
|
||||
"wybrano standardowy enkoder",
|
||||
"Odbiornik FM/AM",
|
||||
"Tuner: !Brak!",
|
||||
"Glosnosc:",
|
||||
"Konwerter:",
|
||||
"Dolna granica pasma:",
|
||||
"Gorna granica pasma:",
|
||||
"Odchylenie poziomu RF:",
|
||||
"Prog Stereo:",
|
||||
"Krawedz dolnoprzep..:",
|
||||
"Prog dolnoprzepust.:",
|
||||
"Prog niskiego sygnalu:",
|
||||
"Kontrast:",
|
||||
"Ustaw glosnosc",
|
||||
"Ustaw odchylenie konwertera",
|
||||
"Ustaw dolna granice pasma",
|
||||
"Ustaw gorna granice pasma",
|
||||
"Ustaw odchylenie sygnalu",
|
||||
"Ustaw prog separacji Stereo",
|
||||
"Czest. gran. filtra dolnoprzep.",
|
||||
"Ustaw prog dolnoprzep.",
|
||||
"Ustaw dolna granice sygnalu",
|
||||
"Ustaw jasnosc wyswietlacza",
|
||||
"Wyl.",
|
||||
"Ekran jest wyciszony!",
|
||||
"Aby wyl. wyciszenie odznacz RF+",
|
||||
"WYL.",
|
||||
"SKANOWANIE...",
|
||||
"Nie wykryto tunera",
|
||||
"Ustawiono wersje tunera: v",
|
||||
"Prosze uruchomic pon. tuner",
|
||||
"Pokaz bledy RDS",
|
||||
"Jezyk",
|
||||
"Wybierz swoj jezyk",
|
||||
"WCISNIJ MODE ABY ZAMKNAC I ZAPISAC",
|
||||
"Wlacz.",
|
||||
"Lagodne wycisz. FM",
|
||||
"Lagodne wycisz. AM",
|
||||
"Beep na krawedzi pasma"
|
||||
"Kierunek obrotu zmieniony",
|
||||
"Zwolnij przycisk",
|
||||
"Obrocono ekran",
|
||||
"Kalibracja analogowego miernika",
|
||||
"Zwolnij przycisk gdy gotowe",
|
||||
"wybrano enkoder optyczny",
|
||||
"wybrano standardowy enkoder",
|
||||
"Odbiornik FM/AM",
|
||||
"Tuner: !Brak!",
|
||||
"Glosnosc:",
|
||||
"Konwerter:",
|
||||
"Dolna granica pasma:",
|
||||
"Gorna granica pasma:",
|
||||
"Odchylenie poziomu RF:",
|
||||
"Prog Stereo:",
|
||||
"Krawedz dolnoprzep..:",
|
||||
"Prog dolnoprzepust.:",
|
||||
"Prog niskiego sygnalu:",
|
||||
"Kontrast:",
|
||||
"Ustaw glosnosc",
|
||||
"Ustaw odchylenie konwertera",
|
||||
"Ustaw dolna granice pasma",
|
||||
"Ustaw gorna granice pasma",
|
||||
"Ustaw odchylenie sygnalu",
|
||||
"Ustaw prog separacji Stereo",
|
||||
"Czest. gran. filtra dolnoprzep.",
|
||||
"Ustaw prog dolnoprzep.",
|
||||
"Ustaw dolna granice sygnalu",
|
||||
"Ustaw jasnosc wyswietlacza",
|
||||
"Wyl.",
|
||||
"Ekran jest wyciszony!",
|
||||
"Aby wyl. wyciszenie odznacz RF+",
|
||||
"WYL.",
|
||||
"SKANOWANIE...",
|
||||
"Nie wykryto tunera",
|
||||
"Ustawiono wersje tunera: v",
|
||||
"Prosze uruchomic pon. tuner",
|
||||
"Pokaz bledy RDS",
|
||||
"Jezyk",
|
||||
"Wybierz swoj jezyk",
|
||||
"WCISNIJ MODE ABY ZAMKNAC I ZAPISAC",
|
||||
"Wlacz.",
|
||||
"Lagodne wycisz. FM",
|
||||
"Lagodne wycisz. AM",
|
||||
"Beep na krawedzi pasma",
|
||||
"Region",
|
||||
"Europe",
|
||||
"USA",
|
||||
"Show underscore in PS"
|
||||
},
|
||||
|
||||
{"Hrvatski", // Croatian
|
||||
"Smjer enkodera promij.",
|
||||
"Otpustite gumb",
|
||||
"Zaslon je okrenut",
|
||||
"Kalibracija analog. mjerača",
|
||||
"Otpustite gumb",
|
||||
"Optički enkoder postav.",
|
||||
"Standardni enkoder postav.",
|
||||
"FM/AM prijemnik",
|
||||
"Prijemnik: !Nije pronađen!",
|
||||
"Pomak glasnoće:",
|
||||
"Pomak konvertera:",
|
||||
"Donja granica opsega:",
|
||||
"Gornja granica opsega:",
|
||||
"Pomak RF razine:",
|
||||
"Razina stereo signala:",
|
||||
"Granična frekvencija:",
|
||||
"Razina granične frekv.:",
|
||||
"Donja granica za signal:",
|
||||
"Svjetlina:",
|
||||
"Pomak glasnoće",
|
||||
"Pomak konvertera",
|
||||
"Donja granica frekv. opsega",
|
||||
"Gornja granica frekv. opsega",
|
||||
"Pomak signala",
|
||||
"Razina stereo signala",
|
||||
"Granična frekvencija",
|
||||
"Razina granične frekv.",
|
||||
"Donja granica za signal",
|
||||
"Svjetlina zaslona",
|
||||
"Isključeno",
|
||||
"Zaslon je isključen!",
|
||||
"Da biste uključili zaslon, poništite kvadratić RF+",
|
||||
"ISK.",
|
||||
"SKENIRANJE...",
|
||||
"Prijemnik nije pronađen",
|
||||
"Postavljena verzija prijemnika: v",
|
||||
"Molim, ponovno pokrenite prijemnik",
|
||||
"Prikaži RDS pogreške",
|
||||
"Jezik",
|
||||
"Odaberite jezik",
|
||||
"PRITISNITE MODE ZA IZLAZ I SPREMANJE",
|
||||
"Uključeno",
|
||||
"Softmute FM",
|
||||
"Softmute AM",
|
||||
"Beep na rubu frekv. opsega"
|
||||
},
|
||||
{"Hrvatski", // Croatian
|
||||
"Smjer enkodera promij.",
|
||||
"Otpustite gumb",
|
||||
"Zaslon je okrenut",
|
||||
"Kalibracija analog. mjerača",
|
||||
"Otpustite gumb",
|
||||
"Optički enkoder postav.",
|
||||
"Standardni enkoder postav.",
|
||||
"FM/AM prijemnik",
|
||||
"Prijemnik: !Nije pronađen!",
|
||||
"Pomak glasnoće:",
|
||||
"Pomak konvertera:",
|
||||
"Donja granica opsega:",
|
||||
"Gornja granica opsega:",
|
||||
"Pomak RF razine:",
|
||||
"Razina stereo signala:",
|
||||
"Granična frekvencija:",
|
||||
"Razina granične frekv.:",
|
||||
"Donja granica za signal:",
|
||||
"Svjetlina:",
|
||||
"Pomak glasnoće",
|
||||
"Pomak konvertera",
|
||||
"Donja granica frekv. opsega",
|
||||
"Gornja granica frekv. opsega",
|
||||
"Pomak signala",
|
||||
"Razina stereo signala",
|
||||
"Granična frekvencija",
|
||||
"Razina granične frekv.",
|
||||
"Donja granica za signal",
|
||||
"Svjetlina zaslona",
|
||||
"Isključeno",
|
||||
"Zaslon je isključen!",
|
||||
"Da biste uključili zaslon, poništite kvadratić RF+",
|
||||
"ISK.",
|
||||
"SKENIRANJE...",
|
||||
"Prijemnik nije pronađen",
|
||||
"Postavljena verzija prijemnika: v",
|
||||
"Molim, ponovno pokrenite prijemnik",
|
||||
"Prikaži RDS pogreške",
|
||||
"Jezik",
|
||||
"Odaberite jezik",
|
||||
"PRITISNITE MODE ZA IZLAZ I SPREMANJE",
|
||||
"Uključeno",
|
||||
"Softmute FM",
|
||||
"Softmute AM",
|
||||
"Beep na rubu frekv. opsega",
|
||||
"Region",
|
||||
"Europe",
|
||||
"USA",
|
||||
"Show underscore in PS"
|
||||
},
|
||||
|
||||
{"Ελληνικά", // Greek
|
||||
{"Ελληνικά", // Greek
|
||||
"Η διεύθυνση του ρότορα άλλαξε",
|
||||
"Παρακαλώ ελευθερώστε το πλήκτρο",
|
||||
"Η οθόνη αναποδογύρισε",
|
||||
@@ -238,10 +254,14 @@ const char myLanguage[6][46][100] = {
|
||||
"Ενεργό",
|
||||
"Softmute FM",
|
||||
"Softmute AM",
|
||||
"Ηχητικό σήμα στο όριο μπάντας"
|
||||
},
|
||||
"Ηχητικό σήμα στο όριο μπάντας",
|
||||
"Region",
|
||||
"Europe",
|
||||
"USA",
|
||||
"Show underscore in PS"
|
||||
},
|
||||
|
||||
{ "Romana", // Roman
|
||||
{ "Romana", // Roman
|
||||
"Sens rotire schimbat",
|
||||
"Eliberati butonul",
|
||||
"Ecran inversat",
|
||||
@@ -286,6 +306,10 @@ const char myLanguage[6][46][100] = {
|
||||
"Pornit",
|
||||
"FM fara sonor",
|
||||
"A fara sonorM",
|
||||
"Sunet la marginea Benzii"
|
||||
"Sunet la marginea Benzii",
|
||||
"Region",
|
||||
"Europe",
|
||||
"USA",
|
||||
"Show underscore in PS"
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user