You've already forked TEF6686_ESP32
Added multi menu function
Also corrected Dutch translation.
This commit is contained in:
@@ -49,10 +49,12 @@ bool Stereostatusold;
|
|||||||
bool StereoToggle = true;
|
bool StereoToggle = true;
|
||||||
bool store;
|
bool store;
|
||||||
bool tuned;
|
bool tuned;
|
||||||
byte language = 0;
|
byte language;
|
||||||
byte tunemode;
|
byte tunemode;
|
||||||
byte memorypos;
|
byte memorypos;
|
||||||
byte memoryposold;
|
byte memoryposold;
|
||||||
|
byte menupage = 2;
|
||||||
|
byte menupagestotal = 2;
|
||||||
bool USBstatus;
|
bool USBstatus;
|
||||||
bool XDRMute;
|
bool XDRMute;
|
||||||
byte band;
|
byte band;
|
||||||
@@ -155,8 +157,8 @@ TFT_eSprite sprite = TFT_eSprite(&tft);
|
|||||||
void setup() {
|
void setup() {
|
||||||
setupmode = true;
|
setupmode = true;
|
||||||
EEPROM.begin(221);
|
EEPROM.begin(221);
|
||||||
if (EEPROM.readByte(43) != 16) {
|
if (EEPROM.readByte(43) != 17) {
|
||||||
EEPROM.writeByte(43, 16);
|
EEPROM.writeByte(43, 17);
|
||||||
EEPROM.writeUInt(0, 10000);
|
EEPROM.writeUInt(0, 10000);
|
||||||
EEPROM.writeInt(4, 0);
|
EEPROM.writeInt(4, 0);
|
||||||
EEPROM.writeInt(8, 0);
|
EEPROM.writeInt(8, 0);
|
||||||
@@ -180,6 +182,7 @@ void setup() {
|
|||||||
EEPROM.writeByte(54, 0);
|
EEPROM.writeByte(54, 0);
|
||||||
EEPROM.writeInt(55, 20);
|
EEPROM.writeInt(55, 20);
|
||||||
EEPROM.writeByte(59, 1);
|
EEPROM.writeByte(59, 1);
|
||||||
|
EEPROM.writeByte(91, 0);
|
||||||
for (int i = 0; i < 30; i++) EEPROM.writeByte(i + 60, 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);
|
for (int i = 0; i < 30; i++) EEPROM.writeUInt((i * 4) + 100, 8750);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
@@ -208,6 +211,7 @@ void setup() {
|
|||||||
TEF = EEPROM.readByte(54);
|
TEF = EEPROM.readByte(54);
|
||||||
LowLevelSet = EEPROM.readInt(55);
|
LowLevelSet = EEPROM.readInt(55);
|
||||||
showrdserrors = EEPROM.readByte(59);
|
showrdserrors = EEPROM.readByte(59);
|
||||||
|
language = EEPROM.readByte(91);
|
||||||
for (int i = 0; i < 30; i++) memoryband[i] = EEPROM.readByte(i + 60);
|
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);
|
for (int i = 0; i < 30; i++) memory[i] = EEPROM.readUInt((i * 4) + 100);
|
||||||
btStop();
|
btStop();
|
||||||
@@ -714,6 +718,8 @@ void ModeButtonPress() {
|
|||||||
EEPROM.writeInt(32, HighCutLevel);
|
EEPROM.writeInt(32, HighCutLevel);
|
||||||
EEPROM.writeInt(36, HighCutOffset);
|
EEPROM.writeInt(36, HighCutOffset);
|
||||||
EEPROM.writeInt(55, LowLevelSet);
|
EEPROM.writeInt(55, LowLevelSet);
|
||||||
|
EEPROM.writeByte(59, showrdserrors);
|
||||||
|
EEPROM.writeByte(91, language);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
}
|
}
|
||||||
while (digitalRead(MODEBUTTON) == LOW) delay(50);
|
while (digitalRead(MODEBUTTON) == LOW) delay(50);
|
||||||
@@ -836,6 +842,8 @@ void ButtonPress() {
|
|||||||
menuopen = true;
|
menuopen = true;
|
||||||
tft.drawRoundRect(30, 40, 240, 160, 5, TFT_WHITE);
|
tft.drawRoundRect(30, 40, 240, 160, 5, TFT_WHITE);
|
||||||
tft.fillRoundRect(32, 42, 236, 156, 5, TFT_BLACK);
|
tft.fillRoundRect(32, 42, 236, 156, 5, TFT_BLACK);
|
||||||
|
switch (menupage) {
|
||||||
|
case 1:
|
||||||
switch (menuoption) {
|
switch (menuoption) {
|
||||||
case 30:
|
case 30:
|
||||||
tft.setTextColor(TFT_WHITE);
|
tft.setTextColor(TFT_WHITE);
|
||||||
@@ -922,6 +930,24 @@ void ButtonPress() {
|
|||||||
tft.drawRightString(String(ContrastSet, DEC), 165, 110, 4);
|
tft.drawRightString(String(ContrastSet, DEC), 165, 110, 4);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
switch (menuoption) {
|
||||||
|
case 30:
|
||||||
|
tft.setTextColor(TFT_WHITE);
|
||||||
|
tft.drawCentreString(myLanguage[language][40], 150, 70, 4);
|
||||||
|
tft.setTextColor(TFT_YELLOW);
|
||||||
|
tft.drawCentreString(myLanguage[language][0], 150, 110, 4);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 50:
|
||||||
|
tft.setTextColor(TFT_WHITE);
|
||||||
|
tft.drawCentreString(myLanguage[language][38], 150, 70, 4);
|
||||||
|
tft.setTextColor(TFT_YELLOW);
|
||||||
|
if (showrdserrors) tft.drawCentreString(myLanguage[language][42], 150, 110, 4); else tft.drawCentreString(myLanguage[language][30], 150, 110, 4);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
menuopen = false;
|
menuopen = false;
|
||||||
BuildMenu();
|
BuildMenu();
|
||||||
@@ -962,9 +988,16 @@ void KeyUp() {
|
|||||||
if (menuopen == false) {
|
if (menuopen == false) {
|
||||||
tft.drawRoundRect(10, menuoption, 300, 18, 5, TFT_BLACK);
|
tft.drawRoundRect(10, menuoption, 300, 18, 5, TFT_BLACK);
|
||||||
menuoption += 20;
|
menuoption += 20;
|
||||||
if (menuoption > 210) menuoption = 30;
|
if (menuoption > 210) {
|
||||||
|
menupage++;
|
||||||
|
if (menupage > menupagestotal) menupage = 1;
|
||||||
|
menuoption = 30;
|
||||||
|
BuildMenu();
|
||||||
|
}
|
||||||
tft.drawRoundRect(10, menuoption, 300, 18, 5, TFT_WHITE);
|
tft.drawRoundRect(10, menuoption, 300, 18, 5, TFT_WHITE);
|
||||||
} else {
|
} else {
|
||||||
|
switch (menupage) {
|
||||||
|
case 1:
|
||||||
switch (menuoption) {
|
switch (menuoption) {
|
||||||
case 30:
|
case 30:
|
||||||
tft.setTextColor(TFT_BLACK);
|
tft.setTextColor(TFT_BLACK);
|
||||||
@@ -1078,6 +1111,27 @@ void KeyUp() {
|
|||||||
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
|
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
switch (menuoption) {
|
||||||
|
case 30:
|
||||||
|
tft.setTextColor(TFT_BLACK);
|
||||||
|
tft.drawCentreString(myLanguage[language][0], 150, 110, 4);
|
||||||
|
language ++;
|
||||||
|
if (language == (sizeof (myLanguage) / sizeof (myLanguage[0]))) language = 0;
|
||||||
|
tft.setTextColor(TFT_YELLOW);
|
||||||
|
tft.drawCentreString(myLanguage[language][0], 150, 110, 4);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 50:
|
||||||
|
tft.setTextColor(TFT_BLACK);
|
||||||
|
if (showrdserrors) tft.drawCentreString(myLanguage[language][42], 150, 110, 4); else tft.drawCentreString(myLanguage[language][30], 150, 110, 4);
|
||||||
|
if (showrdserrors) showrdserrors = false; else showrdserrors = true;
|
||||||
|
tft.setTextColor(TFT_YELLOW);
|
||||||
|
if (showrdserrors) tft.drawCentreString(myLanguage[language][42], 150, 110, 4); else tft.drawCentreString(myLanguage[language][30], 150, 110, 4);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1115,10 +1169,15 @@ void KeyDown() {
|
|||||||
tft.drawRoundRect(10, menuoption, 300, 18, 5, TFT_BLACK);
|
tft.drawRoundRect(10, menuoption, 300, 18, 5, TFT_BLACK);
|
||||||
menuoption -= 20;
|
menuoption -= 20;
|
||||||
if (menuoption < 30) {
|
if (menuoption < 30) {
|
||||||
|
menupage--;
|
||||||
|
if (menupage == 0) menupage = menupagestotal;
|
||||||
menuoption = 210;
|
menuoption = 210;
|
||||||
|
BuildMenu();
|
||||||
}
|
}
|
||||||
tft.drawRoundRect(10, menuoption, 300, 18, 5, TFT_WHITE);
|
tft.drawRoundRect(10, menuoption, 300, 18, 5, TFT_WHITE);
|
||||||
} else {
|
} else {
|
||||||
|
switch (menupage) {
|
||||||
|
case 1:
|
||||||
switch (menuoption) {
|
switch (menuoption) {
|
||||||
case 30:
|
case 30:
|
||||||
tft.setTextColor(TFT_BLACK);
|
tft.setTextColor(TFT_BLACK);
|
||||||
@@ -1234,6 +1293,28 @@ void KeyDown() {
|
|||||||
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
|
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
switch (menuoption) {
|
||||||
|
case 30:
|
||||||
|
tft.setTextColor(TFT_BLACK);
|
||||||
|
tft.drawCentreString(myLanguage[language][0], 150, 110, 4);
|
||||||
|
language --;
|
||||||
|
if (language > (sizeof (myLanguage) / sizeof (myLanguage[0]))) language = (sizeof (myLanguage) / sizeof (myLanguage[0])) - 1;
|
||||||
|
tft.setTextColor(TFT_YELLOW);
|
||||||
|
tft.drawCentreString(myLanguage[language][0], 150, 110, 4);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 50:
|
||||||
|
tft.setTextColor(TFT_BLACK);
|
||||||
|
if (showrdserrors) tft.drawCentreString(myLanguage[language][42], 150, 110, 4); else tft.drawCentreString(myLanguage[language][30], 150, 110, 4);
|
||||||
|
if (showrdserrors) showrdserrors = false; else showrdserrors = true;
|
||||||
|
tft.setTextColor(TFT_YELLOW);
|
||||||
|
if (showrdserrors) tft.drawCentreString(myLanguage[language][42], 150, 110, 4); else tft.drawCentreString(myLanguage[language][30], 150, 110, 4);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1393,9 +1474,11 @@ void BuildMenu() {
|
|||||||
tft.setTextColor(TFT_SKYBLUE);
|
tft.setTextColor(TFT_SKYBLUE);
|
||||||
tft.drawString(myLanguage[language][41], 10, 4, 2);
|
tft.drawString(myLanguage[language][41], 10, 4, 2);
|
||||||
tft.setTextColor(TFT_WHITE);
|
tft.setTextColor(TFT_WHITE);
|
||||||
tft.drawRightString(VERSION, 305, 4, 2);
|
tft.drawRightString(String(menupage) + "/" + String(menupagestotal), 305, 4, 2);
|
||||||
tft.drawRoundRect(10, menuoption, 300, 18, 5, TFT_WHITE);
|
tft.drawRoundRect(10, menuoption, 300, 18, 5, TFT_WHITE);
|
||||||
tft.setTextColor(TFT_WHITE);
|
tft.setTextColor(TFT_WHITE);
|
||||||
|
switch (menupage) {
|
||||||
|
case 1:
|
||||||
tft.drawRightString("dB", 305, 30, 2);
|
tft.drawRightString("dB", 305, 30, 2);
|
||||||
tft.drawRightString("MHz", 305, 50, 2);
|
tft.drawRightString("MHz", 305, 50, 2);
|
||||||
tft.drawRightString("MHz", 305, 70, 2);
|
tft.drawRightString("MHz", 305, 70, 2);
|
||||||
@@ -1427,6 +1510,16 @@ void BuildMenu() {
|
|||||||
if (HighCutOffset != 0) tft.drawRightString(String(HighCutOffset, DEC), 270, 170, 2); else tft.drawRightString(myLanguage[language][30], 270, 170, 2);
|
if (HighCutOffset != 0) tft.drawRightString(String(HighCutOffset, DEC), 270, 170, 2); else tft.drawRightString(myLanguage[language][30], 270, 170, 2);
|
||||||
tft.drawRightString(String(LowLevelSet, DEC), 270, 190, 2);
|
tft.drawRightString(String(LowLevelSet, DEC), 270, 190, 2);
|
||||||
tft.drawRightString(String(ContrastSet, DEC), 270, 210, 2);
|
tft.drawRightString(String(ContrastSet, DEC), 270, 210, 2);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
tft.drawString(myLanguage[language][39], 20, 30, 2);
|
||||||
|
tft.drawString(myLanguage[language][38], 20, 50, 2);
|
||||||
|
tft.setTextColor(TFT_YELLOW);
|
||||||
|
tft.drawRightString(myLanguage[language][0], 305, 30, 2);
|
||||||
|
if (showrdserrors) tft.drawRightString(myLanguage[language][42], 305, 50, 2); else tft.drawRightString(myLanguage[language][30], 305, 50, 2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
analogWrite(SMETERPIN, 0);
|
analogWrite(SMETERPIN, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// [number of languages][number of texts][max. length of text]
|
// [number of languages][number of texts][max. length of text]
|
||||||
|
|
||||||
const char myLanguage[3][42][50] = {
|
const char myLanguage[3][43][50] = {
|
||||||
{ "English",
|
{ "English",
|
||||||
"Rotary direction changed",
|
"Rotary direction changed",
|
||||||
"Please release button",
|
"Please release button",
|
||||||
@@ -41,8 +41,9 @@ const char myLanguage[3][42][50] = {
|
|||||||
"Please restart tuner",
|
"Please restart tuner",
|
||||||
"Show RDS errors",
|
"Show RDS errors",
|
||||||
"Language",
|
"Language",
|
||||||
"Choose your language",
|
"Choose language",
|
||||||
"PRESS MODE TO EXIT AND STORE"
|
"PRESS MODE TO EXIT AND STORE",
|
||||||
|
"On"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Nederlands",
|
{ "Nederlands",
|
||||||
@@ -60,9 +61,9 @@ const char myLanguage[3][42][50] = {
|
|||||||
"Lage bandgrens:",
|
"Lage bandgrens:",
|
||||||
"Hoge bandgrens:",
|
"Hoge bandgrens:",
|
||||||
"RF niveau afwijking:",
|
"RF niveau afwijking:",
|
||||||
"Stereo signaalgrens:",
|
"Stereo grens:",
|
||||||
"Hoge tonen afval:",
|
"Hoge tonen afval:",
|
||||||
"Hoge tonen afval grens:",
|
"Hoog afval grens:",
|
||||||
"Laag signaal grens:",
|
"Laag signaal grens:",
|
||||||
"Helderheid:",
|
"Helderheid:",
|
||||||
"Stel volume in",
|
"Stel volume in",
|
||||||
@@ -83,10 +84,11 @@ const char myLanguage[3][42][50] = {
|
|||||||
"Tuner niet herkend!",
|
"Tuner niet herkend!",
|
||||||
"Tuner versie ingesteld: v",
|
"Tuner versie ingesteld: v",
|
||||||
"Herstart de tuner",
|
"Herstart de tuner",
|
||||||
"RDS fouten weergeven",
|
"Toon RDS fouten",
|
||||||
"Taal",
|
"Taal",
|
||||||
"Kies uw taal",
|
"Kies taal",
|
||||||
"DRUK OP MODE OM AF TE SLUITEN"
|
"DRUK OP MODE OM AF TE SLUITEN",
|
||||||
|
"Aan"
|
||||||
},
|
},
|
||||||
{ "Polski",
|
{ "Polski",
|
||||||
"Kierunek obrotu zmieniony",
|
"Kierunek obrotu zmieniony",
|
||||||
@@ -129,7 +131,8 @@ const char myLanguage[3][42][50] = {
|
|||||||
"Pokaz bledy RDS",
|
"Pokaz bledy RDS",
|
||||||
"Jezyk",
|
"Jezyk",
|
||||||
"Wybierz swoj jezyk",
|
"Wybierz swoj jezyk",
|
||||||
"WCISNIJ MODE ABY ZAMKNAC I ZAPISAC"
|
"WCISNIJ MODE ABY ZAMKNAC I ZAPISAC",
|
||||||
|
"On" // Needs translation!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user