Files
TEF6686_ESP32/src/touch.cpp
T

101 lines
3.5 KiB
C++

#include "touch.h"
#include "language.h"
#include "constants.h"
#include "config.h"
void doTouchEvent(uint16_t x, uint16_t y) {
if (seek) radio.setUnMute();
seek = false;
if (scandxmode) {
cancelDXScan();
} else {
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
byte BWtemp = 255;
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 (y > 195 && y < 225 && x > 247 && x < 317) {
leave = true;
BuildDisplay();
SelectBand();
} else {
if (band < BAND_GAP) {
if (BWset == 0) drawButton(BWButtonLabelsFM[16], 16, false); else drawButton(BWButtonLabelsFM[BWset - 1], BWset - 1, false);
BWset = BWtemp;
if (BWset == 0) drawButton(BWButtonLabelsFM[16], 16, true); else drawButton(BWButtonLabelsFM[BWset - 1], BWset - 1, true);
} else {
drawButton(BWButtonLabelsAM[BWset - 1], BWset - 1, false);
BWset = BWtemp;
drawButton(BWButtonLabelsAM[BWset - 1], BWset - 1, true);
}
doBW();
}
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;
}
}
if (!BWtune && !menu && advancedRDS && !seek && !afscreen) { // Advanced RDS mode
if (x > 0 && x < 320 && y > 180 && y < 240) { // -----------------
leave = true;
BuildDisplay();
SelectBand();
ScreensaverTimerReopen(); // Switch to normal radio view
return;
}
}
}
}