#pragma once #include "esphome/core/gpio.h" namespace esphome { namespace sx1509 { class SX1509Component; class SX1509GPIOPin : public GPIOPin { public: void setup() override; void pin_mode(gpio::Flags flags) override; bool digital_read() override; void digital_write(bool value) override; std::string dump_summary() const override; void set_parent(SX1509Component *parent) { this->parent_ = parent; } void set_pin(uint8_t pin) { this->pin_ = pin; } void set_inverted(bool inverted) { this->inverted_ = inverted; } void set_flags(gpio::Flags flags) { this->flags_ = flags; } gpio::Flags get_flags() const override { return this->flags_; } protected: SX1509Component *parent_; uint8_t pin_; bool inverted_; gpio::Flags flags_; }; } // namespace sx1509 } // namespace esphome