#pragma once #include "esphome/core/automation.h" #include "esphome/core/component.h" namespace esphome { namespace key_provider { /// interface for components that provide keypresses class KeyProvider { public: template void add_on_key_callback(F &&callback) { this->key_callback_.add(std::forward(callback)); } protected: void send_key_(uint8_t key); CallbackManager key_callback_{}; }; } // namespace key_provider } // namespace esphome