You've already forked TEF6686_ESP32
223 lines
7.1 KiB
C++
223 lines
7.1 KiB
C++
#include "touch.h"
|
|
#include "language.h"
|
|
#include "constants.h"
|
|
#include "config.h"
|
|
#include <EEPROM.h>
|
|
|
|
void doTouchEvent(uint16_t x, uint16_t y) {
|
|
if (seek) radio.setUnMute();
|
|
seek = false;
|
|
if (scandxmode) {
|
|
cancelDXScan();
|
|
} else {
|
|
if (menu) {
|
|
if (x > 0 && x < 320 && y > 0 && y < 33) {
|
|
ModeButtonPress();
|
|
return;
|
|
}
|
|
if (menuopen) { // Menu navigation
|
|
if (x > 18 && x < 78 && y > 150 && y < 190) KeyDown(); // ---------------
|
|
if (x > 240 && x < 300 && y > 150 && y < 190) KeyUp();
|
|
if ((x > 240 && x < 300 && y > 40 && y < 80) || (x > 130 && x < 190 && y > 150 && y < 190)) {
|
|
touchrepeat = false;
|
|
ButtonPress();
|
|
}
|
|
return;
|
|
} else {
|
|
if (x > 8 && x < 158) {
|
|
if (y > 38 && y < 70) {
|
|
if (items[menupage] > 0) {
|
|
menuitem = 0;
|
|
menuoption = ITEM1;
|
|
DoMenu();
|
|
}
|
|
} else if (y > 78 && y < 110) {
|
|
if (items[menupage] > 1) {
|
|
menuitem = 1;
|
|
menuoption = ITEM2;
|
|
DoMenu();
|
|
}
|
|
} else if (y > 118 && y < 150) {
|
|
if (items[menupage] > 2) {
|
|
menuitem = 2;
|
|
menuoption = ITEM3;
|
|
DoMenu();
|
|
}
|
|
} else if (y > 158 && y < 190) {
|
|
if (items[menupage] > 3) {
|
|
menuitem = 3;
|
|
menuoption = ITEM4;
|
|
DoMenu();
|
|
}
|
|
} else if (y > 198 && y < 230) {
|
|
if (items[menupage] > 4) {
|
|
menuitem = 4;
|
|
menuoption = ITEM5;
|
|
DoMenu();
|
|
}
|
|
}
|
|
} else if (x > 163 && x < 313) {
|
|
if (y > 38 && y < 70) {
|
|
if (items[menupage] > 5) {
|
|
menuitem = 5;
|
|
menuoption = ITEM6;
|
|
DoMenu();
|
|
}
|
|
} else if (y > 78 && y < 110) {
|
|
if (items[menupage] > 6) {
|
|
menuitem = 6;
|
|
menuoption = ITEM7;
|
|
DoMenu();
|
|
}
|
|
} else if (y > 118 && y < 150) {
|
|
if (items[menupage] > 7) {
|
|
menuitem = 7;
|
|
menuoption = ITEM8;
|
|
DoMenu();
|
|
}
|
|
} else if (y > 158 && y < 190) {
|
|
if (items[menupage] > 8) {
|
|
menuitem = 8;
|
|
menuoption = ITEM9;
|
|
DoMenu();
|
|
}
|
|
} else if (y > 198 && y < 230) {
|
|
if (items[menupage] > 9) {
|
|
menuitem = 9;
|
|
menuoption = ITEM10;
|
|
DoMenu();
|
|
}
|
|
}
|
|
}
|
|
touchrepeat = true;
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (!menu && !BWtune) { // All pages except menu
|
|
if (x > 50 && x < 90 && y > 0 && y < 30 && band < BAND_GAP) { // ---------------------
|
|
doStereoToggle(); // Stereo toggle
|
|
return;
|
|
} else if (x > 155 && x < 250 && y > 0 && y < 30) {
|
|
BuildBWSelector(); // Set bandwidth
|
|
BWtune = true;
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (BWtune) { // BW menu
|
|
if (y > 35 && y < 65) {
|
|
if (x > 7 && x < 77) BWtemp = 1;
|
|
if (x > 87 && x < 157) BWtemp = 2;
|
|
if (x > 167 && x < 237) BWtemp = 3;
|
|
if (x > 247 && x < 317) BWtemp = 4;
|
|
}
|
|
if (band < BAND_GAP) {
|
|
if (y > 75 && y < 105) {
|
|
if (x > 7 && x < 77) BWtemp = 5;
|
|
if (x > 87 && x < 157) BWtemp = 6;
|
|
if (x > 167 && x < 237) BWtemp = 7;
|
|
if (x > 247 && x < 317) BWtemp = 8;
|
|
}
|
|
|
|
if (y > 115 && y < 145) {
|
|
if (x > 7 && x < 77) BWtemp = 9;
|
|
if (x > 87 && x < 157) BWtemp = 10;
|
|
if (x > 167 && x < 237) BWtemp = 11;
|
|
if (x > 247 && x < 317) BWtemp = 12;
|
|
}
|
|
|
|
if (y > 155 && y < 185) {
|
|
if (x > 7 && x < 77) BWtemp = 13;
|
|
if (x > 87 && x < 157) BWtemp = 14;
|
|
if (x > 167 && x < 237) BWtemp = 15;
|
|
if (x > 247 && x < 317) BWtemp = 16;
|
|
}
|
|
|
|
if (y > 195 && y < 225) {
|
|
if (x > 7 && x < 77) BWtemp = 0;
|
|
if (x > 87 && x < 157) iMSset = !iMSset;
|
|
if (x > 167 && x < 237) EQset = !EQset;
|
|
if (x > 87 && x < 237) {
|
|
if (!iMSset && !EQset) iMSEQ = 0;
|
|
if (iMSset && EQset) iMSEQ = 2;
|
|
if (!iMSset && EQset) iMSEQ = 3;
|
|
if (iMSset && !EQset) iMSEQ = 4;
|
|
EEPROM.writeByte(EE_BYTE_IMSSET, iMSset);
|
|
EEPROM.writeByte(EE_BYTE_EQSET, EQset);
|
|
EEPROM.commit();
|
|
updateiMS();
|
|
updateEQ();
|
|
if (XDRGTKUSB || XDRGTKTCP) DataPrint("G" + String(!EQset) + String(!iMSset) + "\n");
|
|
}
|
|
}
|
|
}
|
|
|
|
if (y > 195 && y < 225 && x > 247 && x < 317) {
|
|
leave = true;
|
|
bwtouchtune = true;
|
|
BWset = BWtemp;
|
|
doBW();
|
|
BWtune = false;
|
|
bwtouchtune = false;
|
|
if (advancedRDS) {
|
|
BuildAdvancedRDS();
|
|
} else if (afscreen) {
|
|
BuildAFScreen();
|
|
} else {
|
|
BuildDisplay();
|
|
SelectBand();
|
|
}
|
|
} else {
|
|
bwtouchtune = true;
|
|
BWset = BWtemp;
|
|
showBWSelector();
|
|
doBW();
|
|
bwtouchtune = false;
|
|
}
|
|
return;
|
|
}
|
|
|
|
if (!BWtune && !menu && !advancedRDS && !seek && !afscreen) { // Normal radio mode
|
|
if (x > 0 && x < 320 && y > 180 && y < 240 && band < BAND_GAP) { // -----------------
|
|
leave = true;
|
|
BuildAdvancedRDS(); // Switch to Advanced RDS View
|
|
return;
|
|
} else if (x > 60 && x < 240 && y > 40 && y < 100) {
|
|
doBandToggle(); // Toggle bands
|
|
return;
|
|
} else if (x > 0 && x < 30 && y > 25 && y < 90) {
|
|
doTuneMode(); // Toggle tune mode
|
|
return;
|
|
} else if (x > 250 && x < 320 && y > 50 && y < 80) {
|
|
toggleiMSEQ(); // Toggle iMQ/EQ
|
|
}
|
|
}
|
|
|
|
if (!BWtune && !menu && advancedRDS && !seek && !afscreen) { // Advanced RDS mode
|
|
if (x > 0 && x < 320 && y > 120 && y < 170) { // -----------------
|
|
leave = true;
|
|
BuildDisplay();
|
|
SelectBand();
|
|
ScreensaverTimerReopen(); // Switch to normal radio view
|
|
return;
|
|
} else if (x > 0 && x < 320 && y > 180 && y < 240) {
|
|
BuildAFScreen();
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (!BWtune && !menu && !advancedRDS && !seek && afscreen) {
|
|
if (x > 0 && x < 320 && y > 100 && y < 170) {
|
|
if (afpagenr == 1) afpagenr = 2; else if (afpagenr == 2 && afpage) afpagenr = 3; else afpagenr = 1;
|
|
BuildAFScreen();
|
|
return;
|
|
}
|
|
if (x > 0 && x < 320 && y > 180 && y < 240) {
|
|
leave = true;
|
|
BuildAdvancedRDS();
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
} |