[es8388] Use index-based select publish_state to avoid heap allocations

This commit is contained in:
J. Nick Koston
2026-01-06 21:44:21 -10:00
parent f8309b007c
commit 7a300b04f0

View File

@@ -116,9 +116,8 @@ void ES8388::setup() {
if (this->dac_output_select_ != nullptr) {
auto dac_power = this->get_dac_power();
if (dac_power.has_value()) {
auto dac_power_str = this->dac_output_select_->at(dac_power.value());
if (dac_power_str.has_value()) {
this->dac_output_select_->publish_state(dac_power_str.value());
if (this->dac_output_select_->has_index(dac_power.value())) {
this->dac_output_select_->publish_state(dac_power.value());
} else {
ESP_LOGW(TAG, "Unknown DAC output power value: %d", dac_power.value());
}
@@ -127,9 +126,8 @@ void ES8388::setup() {
if (this->adc_input_mic_select_ != nullptr) {
auto mic_input = this->get_mic_input();
if (mic_input.has_value()) {
auto mic_input_str = this->adc_input_mic_select_->at(mic_input.value());
if (mic_input_str.has_value()) {
this->adc_input_mic_select_->publish_state(mic_input_str.value());
if (this->adc_input_mic_select_->has_index(mic_input.value())) {
this->adc_input_mic_select_->publish_state(mic_input.value());
} else {
ESP_LOGW(TAG, "Unknown ADC input mic value: %d", mic_input.value());
}