ESPHome 2026.6.0-dev
Loading...
Searching...
No Matches
copy_select.cpp
Go to the documentation of this file.
1#include "copy_select.h"
2#include "esphome/core/log.h"
3
4namespace esphome::copy {
5
6static const char *const TAG = "copy.select";
7
9 source_->add_on_state_callback([this](size_t index) { this->publish_state(index); });
10
12
13 auto idx = this->source_->active_index();
14 if (idx.has_value())
15 this->publish_state(*idx);
16}
17
18void CopySelect::dump_config() { LOG_SELECT("", "Copy Select", this); }
19
20void CopySelect::control(size_t index) {
21 auto call = source_->make_call();
22 call.set_index(index);
23 call.perform();
24}
25
26} // namespace esphome::copy
void control(size_t index) override
select::Select * source_
Definition copy_select.h:17
void dump_config() override
SelectCall & set_index(size_t index)
void add_on_state_callback(F &&callback)
Definition select.h:79
SelectCall make_call()
Instantiate a SelectCall object to modify this select component's state.
Definition select.h:53
optional< size_t > active_index() const
Return the (optional) index offset of the currently active option.
Definition select.cpp:66
SelectTraits traits
Definition select.h:31
void publish_state(const std::string &state)
Definition select.cpp:11
const FixedVector< const char * > & get_options() const
void set_options(const std::initializer_list< const char * > &options)