mirror of
https://github.com/esphome/esphome.git
synced 2026-10-01 00:40:21 +00:00
[select] Refactor to index-based operations for immediate and future RAM savings (#11623)
This commit is contained in:
@@ -7,19 +7,19 @@ namespace copy {
|
||||
static const char *const TAG = "copy.select";
|
||||
|
||||
void CopySelect::setup() {
|
||||
source_->add_on_state_callback([this](const std::string &value, size_t index) { this->publish_state(value); });
|
||||
source_->add_on_state_callback([this](const std::string &value, size_t index) { this->publish_state(index); });
|
||||
|
||||
traits.set_options(source_->traits.get_options());
|
||||
|
||||
if (source_->has_state())
|
||||
this->publish_state(source_->state);
|
||||
this->publish_state(source_->active_index().value());
|
||||
}
|
||||
|
||||
void CopySelect::dump_config() { LOG_SELECT("", "Copy Select", this); }
|
||||
|
||||
void CopySelect::control(const std::string &value) {
|
||||
void CopySelect::control(size_t index) {
|
||||
auto call = source_->make_call();
|
||||
call.set_option(value);
|
||||
call.set_index(index);
|
||||
call.perform();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user