diff --git a/esphome/components/dynamic_lamp/dynamic_lamp.cpp b/esphome/components/dynamic_lamp/dynamic_lamp.cpp index 859b3e3dd9..4da54f156b 100644 --- a/esphome/components/dynamic_lamp/dynamic_lamp.cpp +++ b/esphome/components/dynamic_lamp/dynamic_lamp.cpp @@ -123,8 +123,12 @@ void DynamicLamp::add_lamp_output_(uint8_t lamp_number, LinkedOutput output) { this->active_lamps_[lamp_number].used_outputs[output.output_index] = true; } -bool[16] DynamicLamp::get_lamp_outputs_(uint8_t lamp_number) { - return this->active_lamps_[lamp_number].used_outputs; +std::array DynamicLamp::get_lamp_outputs_(uint8_t lamp_number) { + std::array bool_array; + for (uint8_t i = 0; i < 16; i++) { + bool_array[i] = this->used_outputs[i]; + } + return bool_array; } void DynamicLamp::set_lamp_values_(uint8_t lamp_number, bool active, uint16_t selected_outputs, uint8_t mode, uint8_t mode_value) { diff --git a/esphome/components/dynamic_lamp/dynamic_lamp.h b/esphome/components/dynamic_lamp/dynamic_lamp.h index ced2a8e387..2b7984b0ba 100644 --- a/esphome/components/dynamic_lamp/dynamic_lamp.h +++ b/esphome/components/dynamic_lamp/dynamic_lamp.h @@ -42,7 +42,7 @@ class DynamicLamp : public Component { protected: uint8_t add_lamp(); - bool[16] get_lamp_outputs_(uint8_t lamp_number); + std::array get_lamp_outputs_(uint8_t lamp_number); void add_lamp_output_(uint8_t lamp_number, LinkedOutput output); void restore_lamp_values_(uint8_t lamp_number); void set_lamp_values_(uint8_t lamp_number, bool active, uint16_t selected_outputs, uint8_t mode, uint8_t mode_value);