mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	[speaker] bugfix: continue to block tasks if stop flag is set (#9222)
This commit is contained in:
		| @@ -343,10 +343,9 @@ void AudioPipeline::read_task(void *params) { | |||||||
|     xEventGroupSetBits(this_pipeline->event_group_, EventGroupBits::READER_MESSAGE_FINISHED); |     xEventGroupSetBits(this_pipeline->event_group_, EventGroupBits::READER_MESSAGE_FINISHED); | ||||||
|  |  | ||||||
|     // Wait until the pipeline notifies us the source of the media file |     // Wait until the pipeline notifies us the source of the media file | ||||||
|     EventBits_t event_bits = |     EventBits_t event_bits = xEventGroupWaitBits( | ||||||
|         xEventGroupWaitBits(this_pipeline->event_group_, |         this_pipeline->event_group_, | ||||||
|                             EventGroupBits::READER_COMMAND_INIT_FILE | EventGroupBits::READER_COMMAND_INIT_HTTP | |         EventGroupBits::READER_COMMAND_INIT_FILE | EventGroupBits::READER_COMMAND_INIT_HTTP,  // Bit message to read | ||||||
|                                 EventGroupBits::PIPELINE_COMMAND_STOP,  // Bit message to read |  | ||||||
|         pdFALSE,                                                                              // Clear the bit on exit |         pdFALSE,                                                                              // Clear the bit on exit | ||||||
|         pdFALSE,                                                                              // Wait for all the bits, |         pdFALSE,                                                                              // Wait for all the bits, | ||||||
|         portMAX_DELAY);  // Block indefinitely until bit is set |         portMAX_DELAY);  // Block indefinitely until bit is set | ||||||
| @@ -434,9 +433,9 @@ void AudioPipeline::decode_task(void *params) { | |||||||
|     xEventGroupSetBits(this_pipeline->event_group_, EventGroupBits::DECODER_MESSAGE_FINISHED); |     xEventGroupSetBits(this_pipeline->event_group_, EventGroupBits::DECODER_MESSAGE_FINISHED); | ||||||
|  |  | ||||||
|     // Wait until the reader notifies us that the media type is available |     // Wait until the reader notifies us that the media type is available | ||||||
|     EventBits_t event_bits = xEventGroupWaitBits(this_pipeline->event_group_, |     EventBits_t event_bits = | ||||||
|                                                  EventGroupBits::READER_MESSAGE_LOADED_MEDIA_TYPE | |         xEventGroupWaitBits(this_pipeline->event_group_, | ||||||
|                                                      EventGroupBits::PIPELINE_COMMAND_STOP,  // Bit message to read |                             EventGroupBits::READER_MESSAGE_LOADED_MEDIA_TYPE,  // Bit message to read | ||||||
|                             pdFALSE,                                           // Clear the bit on exit |                             pdFALSE,                                           // Clear the bit on exit | ||||||
|                             pdFALSE,                                           // Wait for all the bits, |                             pdFALSE,                                           // Wait for all the bits, | ||||||
|                             portMAX_DELAY);                                    // Block indefinitely until bit is set |                             portMAX_DELAY);                                    // Block indefinitely until bit is set | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user