Files
esphome-dev/esphome/components/touchscreen/touchscreen.cpp
T
2023-07-05 14:33:26 -05:00

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