feat: add touch driver abstraction layer

XPT2046 path: no change — uses TFT_eSPI built-in getTouch().
GT911 path:   TouchDriver namespace with begin()/read() stub.

TouchDriverGT911.cpp compiles to nothing on TFT_eSPI targets.
Uncomment TAMC_GT911 lines to enable real capacitive touch.
This commit is contained in:
2026-02-16 12:38:13 -08:00
parent 50f7b5c390
commit 259a26e79e
2 changed files with 63 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
#pragma once
#include "BoardConfig.h"
// ═══════════════════════════════════════════════════════════════════
// Touch driver abstraction
//
// XPT2046: integrated in TFT_eSPI — DisplayManager calls
// _tft.getTouch() / _tft.setTouch() directly inside
// #if USE_TOUCH_XPT2046 blocks.
//
// GT911: separate I2C controller — namespace below.
// ═══════════════════════════════════════════════════════════════════
#if USE_TOUCH_GT911
namespace TouchDriver {
void begin();
bool read(uint16_t &x, uint16_t &y);
}
#endif

View File

@@ -0,0 +1,42 @@
#include "BoardConfig.h"
#if USE_TOUCH_GT911
#include "TouchDriver.h"
#include <Wire.h>
// ═══════════════════════════════════════════════════════════════════
// GT911 capacitive touch — Waveshare ESP32-S3 Touch LCD 4.3"
//
// This is a compilable stub. To enable actual touch:
// 1. arduino-cli lib install "TAMC_GT911"
// 2. Uncomment the TAMC_GT911 lines below.
// ═══════════════════════════════════════════════════════════════════
// #include <TAMC_GT911.h>
// static TAMC_GT911 ts(TOUCH_SDA, TOUCH_SCL, TOUCH_INT, TOUCH_RST,
// SCREEN_WIDTH, SCREEN_HEIGHT);
namespace TouchDriver {
void begin() {
Wire.begin(TOUCH_SDA, TOUCH_SCL);
// ts.begin();
// ts.setRotation(TOUCH_MAP_ROTATION);
Serial.println("[TOUCH] GT911 stub initialized");
}
bool read(uint16_t &x, uint16_t &y) {
// ts.read();
// if (ts.isTouched) {
// x = ts.points[0].x;
// y = ts.points[0].y;
// return true;
// }
(void)x; (void)y;
return false;
}
} // namespace TouchDriver
#endif // USE_TOUCH_GT911