mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-25 20:26:41 +00:00
Revert STMPE610 touch driver
This commit is contained in:
parent
ff8566c1a6
commit
e625dc1e55
@ -23,67 +23,44 @@ extern uint8_t hasp_sleep_state;
|
||||
#define TS_MINY 100
|
||||
#define TS_MAXY 3750
|
||||
|
||||
// bool touch_read(lv_indev_drv_t* indev_driver, lv_indev_data_t* data)
|
||||
// {
|
||||
// data->state = LV_INDEV_STATE_REL;
|
||||
static Adafruit_STMPE610 stmpe610_touchpanel = Adafruit_STMPE610(TOUCH_CS);
|
||||
|
||||
// // while touched, but the state is released => read next point
|
||||
// while(data->state == LV_INDEV_STATE_REL && stmpe610_touchpanel.touched()) {
|
||||
bool touch_read(lv_indev_drv_t* indev_driver, lv_indev_data_t* data)
|
||||
{
|
||||
data->state = LV_INDEV_STATE_REL;
|
||||
|
||||
// TS_Point point = stmpe610_touchpanel.getPoint();
|
||||
// Log.trace(TAG_DRVR, F("STMPE610: x=%i y=%i z=%i"), point.x, point.y, point.z);
|
||||
// while touched, but the state is released => read next point
|
||||
while(data->state == LV_INDEV_STATE_REL && stmpe610_touchpanel.touched()) {
|
||||
|
||||
// if(point.z && point.x < 4096 && point.y < 4096) { // valid reading
|
||||
// if(hasp_sleep_state != HASP_SLEEP_OFF) hasp_update_sleep_state(); // update Idle
|
||||
// data->state = LV_INDEV_STATE_PR;
|
||||
TS_Point point = stmpe610_touchpanel.getPoint();
|
||||
Log.trace(TAG_DRVR, F("STMPE610: x=%i y=%i z=%i"), point.x, point.y, point.z);
|
||||
|
||||
// #if HX8357D_DRIVER == 1
|
||||
// data->point.x = map(point.x, TS_MINX, TS_MAXX, TFT_WIDTH, 0);
|
||||
// data->point.y = map(point.y, TS_MINY, TS_MAXY, 0, TFT_HEIGHT);
|
||||
// #else
|
||||
// data->point.x = map(point.x, TS_MINX, TS_MAXX, 0, TFT_WIDTH);
|
||||
// data->point.y = map(point.y, TS_MINY, TS_MAXY, 0, TFT_HEIGHT);
|
||||
// #endif
|
||||
// }
|
||||
// }
|
||||
if(point.z && point.x < 4096 && point.y < 4096) { // valid reading
|
||||
if(hasp_sleep_state != HASP_SLEEP_OFF) hasp_update_sleep_state(); // update Idle
|
||||
data->state = LV_INDEV_STATE_PR;
|
||||
|
||||
// /*Return `false` because we are not buffering and no more data to read*/
|
||||
// return false;
|
||||
// }
|
||||
#if HX8357D_DRIVER == 1
|
||||
data->point.x = map(point.x, TS_MINX, TS_MAXX, TFT_WIDTH, 0);
|
||||
data->point.y = map(point.y, TS_MINY, TS_MAXY, 0, TFT_HEIGHT);
|
||||
#else
|
||||
data->point.x = map(point.x, TS_MINX, TS_MAXX, 0, TFT_WIDTH);
|
||||
data->point.y = map(point.y, TS_MINY, TS_MAXY, 0, TFT_HEIGHT);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
/*Return `false` because we are not buffering and no more data to read*/
|
||||
return false;
|
||||
}
|
||||
|
||||
namespace dev {
|
||||
|
||||
class TouchStmpe610 : public BaseTouch {
|
||||
|
||||
public:
|
||||
Adafruit_STMPE610 stmpe610_touchpanel = Adafruit_STMPE610(TOUCH_CS);
|
||||
|
||||
IRAM_ATTR bool read(lv_indev_drv_t* indev_driver, lv_indev_data_t* data)
|
||||
{
|
||||
data->state = LV_INDEV_STATE_REL;
|
||||
|
||||
// while touched, but the state is released => read next point
|
||||
while(data->state == LV_INDEV_STATE_REL && stmpe610_touchpanel.touched()) {
|
||||
|
||||
TS_Point point = stmpe610_touchpanel.getPoint();
|
||||
Log.trace(TAG_DRVR, F("STMPE610: x=%i y=%i z=%i"), point.x, point.y, point.z);
|
||||
|
||||
if(point.z && point.x < 4096 && point.y < 4096) { // valid reading
|
||||
if(hasp_sleep_state != HASP_SLEEP_OFF) hasp_update_sleep_state(); // update Idle
|
||||
data->state = LV_INDEV_STATE_PR;
|
||||
|
||||
#if HX8357D_DRIVER == 1
|
||||
data->point.x = map(point.x, TS_MINX, TS_MAXX, TFT_WIDTH, 0);
|
||||
data->point.y = map(point.y, TS_MINY, TS_MAXY, 0, TFT_HEIGHT);
|
||||
#else
|
||||
data->point.x = map(point.x, TS_MINX, TS_MAXX, 0, TFT_WIDTH);
|
||||
data->point.y = map(point.y, TS_MINY, TS_MAXY, 0, TFT_HEIGHT);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
/*Return `false` because we are not buffering and no more data to read*/
|
||||
return false;
|
||||
return touch_read(indev_driver, data);
|
||||
}
|
||||
|
||||
void init(int w, int h)
|
||||
@ -100,7 +77,7 @@ class TouchStmpe610 : public BaseTouch {
|
||||
} // namespace dev
|
||||
|
||||
using dev::TouchStmpe610;
|
||||
dev::TouchStmpe610 haspTouch;
|
||||
extern dev::TouchStmpe610 haspTouch;
|
||||
|
||||
#endif // ARDUINO
|
||||
|
||||
|
@ -66,7 +66,7 @@ class TouchTftEspi : public BaseTouch {
|
||||
} // namespace dev
|
||||
|
||||
using dev::TouchTftEspi;
|
||||
extern dev::TouchTftEspi haspTouch;
|
||||
dev::TouchTftEspi haspTouch;
|
||||
|
||||
#endif // ARDUINO
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user