From 4bd04442a096d73b0f19112d4bdcb31eefb1e36e Mon Sep 17 00:00:00 2001 From: Oliver Kleinecke Date: Fri, 14 Feb 2025 14:21:52 +0100 Subject: [PATCH] test commit for separating string by comma --- .../components/dynamic_lamp/dynamic_lamp.cpp | 20 +++++++++++++------ .../components/dynamic_lamp/dynamic_lamp.h | 3 +-- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/esphome/components/dynamic_lamp/dynamic_lamp.cpp b/esphome/components/dynamic_lamp/dynamic_lamp.cpp index c54665b632..3a5a963bb9 100644 --- a/esphome/components/dynamic_lamp/dynamic_lamp.cpp +++ b/esphome/components/dynamic_lamp/dynamic_lamp.cpp @@ -77,13 +77,21 @@ void DynamicLamp::set_save_mode(uint8_t save_mode) { this->save_mode_ = save_mode; } -void DynamicLamp::set_available_outputs(std::list output_list) { - uint8_t i = 0; - for (std::list::iterator it = output_list.begin(); it != output_list.end(); ++it) { - this->available_outputs_[i] = *it; - i++; +void DynamicLamp::set_available_outputs(std::string output_list) { + int counter = 0; + std::vector v; + + char * token = strtok (&output_list[0],","); + while (token != NULL) + { + v.push_back(token); + token = strtok (NULL, ","); + } + for ( std::string s : v ) + { + this->available_outputs_[counter] = s.c_str(); + counter++; } - } void DynamicLamp::set_lamp_count(uint8_t lamp_count) { diff --git a/esphome/components/dynamic_lamp/dynamic_lamp.h b/esphome/components/dynamic_lamp/dynamic_lamp.h index 1d251dada5..e25cb80b45 100644 --- a/esphome/components/dynamic_lamp/dynamic_lamp.h +++ b/esphome/components/dynamic_lamp/dynamic_lamp.h @@ -1,7 +1,6 @@ #pragma once #include "esphome/core/component.h" -#include namespace esphome { namespace dynamic_lamp { @@ -38,7 +37,7 @@ class DynamicLamp : public Component { void loop() override; void dump_config() override; void set_lamp_count(uint8_t lamp_count); - void set_available_outputs(std::list output_list); + void set_available_outputs(std::string output_list); void set_save_mode(uint8_t save_mode); protected: