mirror of
https://github.com/esphome/esphome.git
synced 2025-11-03 08:31:47 +00:00
address review comments
This commit is contained in:
@@ -35,7 +35,12 @@ void Select::publish_state(size_t index) {
|
||||
this->state_callback_.call(std::string(option), index);
|
||||
}
|
||||
|
||||
const char *Select::current_option() const { return this->option_at(this->active_index_); }
|
||||
const char *Select::current_option() const {
|
||||
if (!this->has_state() || !this->has_index(this->active_index_)) {
|
||||
return "";
|
||||
}
|
||||
return this->option_at(this->active_index_);
|
||||
}
|
||||
|
||||
void Select::add_on_state_callback(std::function<void(std::string, size_t)> &&callback) {
|
||||
this->state_callback_.add(std::move(callback));
|
||||
|
||||
@@ -77,6 +77,11 @@ class Select : public EntityBase {
|
||||
|
||||
void add_on_state_callback(std::function<void(std::string, size_t)> &&callback);
|
||||
|
||||
protected:
|
||||
friend class SelectCall;
|
||||
|
||||
size_t active_index_{0};
|
||||
|
||||
/** Set the value of the select by index, this is an optional virtual method.
|
||||
*
|
||||
* This method is called by the SelectCall when the index is already known.
|
||||
@@ -87,11 +92,6 @@ class Select : public EntityBase {
|
||||
*/
|
||||
virtual void control(size_t index) { this->control(this->option_at(index)); }
|
||||
|
||||
protected:
|
||||
friend class SelectCall;
|
||||
|
||||
size_t active_index_{0};
|
||||
|
||||
/** Set the value of the select, this is a virtual method that each select integration can implement.
|
||||
*
|
||||
* This method is called by control(size_t) when not overridden, or directly by external code.
|
||||
|
||||
Reference in New Issue
Block a user