mirror of
https://github.com/Threnklyn/esphome-dev.git
synced 2026-05-19 20:53:26 +02:00
30 lines
822 B
C++
30 lines
822 B
C++
#include "touchscreen.h"
|
|
|
|
#include "esphome/core/log.h"
|
|
|
|
namespace esphome {
|
|
namespace touchscreen {
|
|
|
|
static const char *const TAG = "touchscreen";
|
|
|
|
void Touchscreen::set_display(display::Display *display) {
|
|
this->display_ = display;
|
|
this->display_width_ = display->get_width();
|
|
this->display_height_ = display->get_height();
|
|
this->rotation_ = static_cast<TouchRotation>(display->get_rotation());
|
|
|
|
if (this->rotation_ == ROTATE_90_DEGREES || this->rotation_ == ROTATE_270_DEGREES) {
|
|
std::swap(this->display_width_, this->display_height_);
|
|
}
|
|
}
|
|
|
|
void Touchscreen::send_touch_(TouchPoint tp) {
|
|
ESP_LOGV(TAG, "Touch (x=%d, y=%d)", tp.x, tp.y);
|
|
this->touch_trigger_.trigger(tp);
|
|
for (auto *listener : this->touch_listeners_)
|
|
listener->touch(tp);
|
|
}
|
|
|
|
} // namespace touchscreen
|
|
} // namespace esphome
|