[i2s_audio] Bugfix: Adjust I2S speaker setup priority (#7759)

This commit is contained in:
Kevin Ahrendt 2024-11-13 12:39:02 -05:00 committed by Jesse Hills
parent 44545a18a0
commit a0159a2746
No known key found for this signature in database
GPG key ID: BEAAE804EFD8E83A
2 changed files with 2 additions and 11 deletions

View file

@ -99,14 +99,6 @@ void I2SAudioSpeaker::setup() {
this->mark_failed(); this->mark_failed();
return; return;
} }
this->i2s_event_queue_ = xQueueCreate(I2S_EVENT_QUEUE_COUNT, sizeof(i2s_event_t));
if (this->i2s_event_queue_ == nullptr) {
ESP_LOGE(TAG, "Failed to create I2S event queue");
this->mark_failed();
return;
}
} }
void I2SAudioSpeaker::loop() { void I2SAudioSpeaker::loop() {
@ -339,7 +331,7 @@ void I2SAudioSpeaker::speaker_task(void *params) {
} }
void I2SAudioSpeaker::start() { void I2SAudioSpeaker::start() {
if (this->is_failed() || this->status_has_error()) if (!this->is_ready() || this->is_failed() || this->status_has_error())
return; return;
if ((this->state_ == speaker::STATE_STARTING) || (this->state_ == speaker::STATE_RUNNING)) if ((this->state_ == speaker::STATE_STARTING) || (this->state_ == speaker::STATE_RUNNING))
return; return;
@ -519,7 +511,6 @@ void I2SAudioSpeaker::delete_task_(size_t buffer_size) {
} }
xEventGroupSetBits(this->event_group_, SpeakerEventGroupBits::STATE_STOPPED); xEventGroupSetBits(this->event_group_, SpeakerEventGroupBits::STATE_STOPPED);
xQueueReset(this->i2s_event_queue_);
this->task_created_ = false; this->task_created_ = false;
vTaskDelete(nullptr); vTaskDelete(nullptr);

View file

@ -23,7 +23,7 @@ namespace i2s_audio {
class I2SAudioSpeaker : public I2SAudioOut, public speaker::Speaker, public Component { class I2SAudioSpeaker : public I2SAudioOut, public speaker::Speaker, public Component {
public: public:
float get_setup_priority() const override { return esphome::setup_priority::LATE; } float get_setup_priority() const override { return esphome::setup_priority::PROCESSOR; }
void setup() override; void setup() override;
void loop() override; void loop() override;