ESPHome  2024.11.0
touchscreen_binary_sensor.cpp
Go to the documentation of this file.
2 
3 namespace esphome {
4 namespace touchscreen {
5 
7  this->parent_->register_listener(this);
8  this->publish_initial_state(false);
9 }
10 
12  bool touched = (tp.x >= this->x_min_ && tp.x <= this->x_max_ && tp.y >= this->y_min_ && tp.y <= this->y_max_);
13 
14  if (!this->pages_.empty()) {
15  auto *current_page = this->parent_->get_display()->get_active_page();
16  touched &= std::find(this->pages_.begin(), this->pages_.end(), current_page) != this->pages_.end();
17  }
18  if (touched) {
19  this->publish_state(true);
20  } else {
21  this->release();
22  }
23 }
24 
26 
27 } // namespace touchscreen
28 } // namespace esphome
void publish_initial_state(bool state)
Publish the initial state, this will not make the callback manager send callbacks and is meant only f...
void publish_state(bool state)
Publish a new state to the front-end.
std::vector< display::DisplayPage * > pages_
Implementation of SPI Controller mode.
Definition: a01nyub.cpp:7