#pragma once #include <map> #include "esphome/core/component.h" #include "esphome/components/select/select.h" namespace esphome { namespace tw7100 { class tw7100Component; class tw7100Select : public select::Select, public Component { public: void setup() override; void dump_config() override; void set_tw7100_parent(tw7100Component *parent) { this->parent_ = parent; } void set_cmd(std::string cmd) { this->cmd_ = cmd; } static std::map<std::string, std::string> sources; static std::map<std::string, std::string> luminance; static std::map<std::string, std::string> aspect; static std::map<std::string, std::string> msel; static std::map<std::string, std::string> speed; static std::map<std::string, std::string> mcfi; static std::map<std::string, std::string> clrspace; static std::map<std::string, std::string> dynrange; static std::map<std::string, std::string> imgpreset; static std::map<std::string, std::string> gamma; static std::map<std::string, std::string> cmode; static std::map<std::string, std::string> ovscan; protected: void control(const std::string &value) override; std::string cmd_; tw7100Component *parent_; }; } // namespace tw7100 } // namespace esphome