mirror of
https://github.com/esphome/esphome.git
synced 2025-10-27 13:13:50 +00:00
Create base touchscreen component and refactor ektf2232 (#3083)
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
This commit is contained in:
39
esphome/components/touchscreen/__init__.py
Normal file
39
esphome/components/touchscreen/__init__.py
Normal file
@@ -0,0 +1,39 @@
|
||||
import esphome.config_validation as cv
|
||||
import esphome.codegen as cg
|
||||
|
||||
from esphome.components import display
|
||||
from esphome import automation
|
||||
from esphome.const import CONF_ON_TOUCH
|
||||
|
||||
CODEOWNERS = ["@jesserockz"]
|
||||
IS_PLATFORM_COMPONENT = True
|
||||
|
||||
touchscreen_ns = cg.esphome_ns.namespace("touchscreen")
|
||||
|
||||
Touchscreen = touchscreen_ns.class_("Touchscreen")
|
||||
TouchRotation = touchscreen_ns.enum("TouchRotation")
|
||||
TouchPoint = touchscreen_ns.struct("TouchPoint")
|
||||
TouchListener = touchscreen_ns.class_("TouchListener")
|
||||
|
||||
CONF_DISPLAY = "display"
|
||||
CONF_TOUCHSCREEN_ID = "touchscreen_id"
|
||||
|
||||
|
||||
TOUCHSCREEN_SCHEMA = cv.Schema(
|
||||
{
|
||||
cv.GenerateID(CONF_DISPLAY): cv.use_id(display.DisplayBuffer),
|
||||
cv.Optional(CONF_ON_TOUCH): automation.validate_automation(single=True),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
async def register_touchscreen(var, config):
|
||||
disp = await cg.get_variable(config[CONF_DISPLAY])
|
||||
cg.add(var.set_display(disp))
|
||||
|
||||
if CONF_ON_TOUCH in config:
|
||||
await automation.build_automation(
|
||||
var.get_touch_trigger(),
|
||||
[(TouchPoint, "touch")],
|
||||
config[CONF_ON_TOUCH],
|
||||
)
|
||||
Reference in New Issue
Block a user