mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 12:17:07 +00:00
Cleanup async_announce in forked_daapd (#78457)
This commit is contained in:
parent
003d160a96
commit
ae865a07b2
@ -672,7 +672,8 @@ class ForkedDaapdMaster(MediaPlayerEntity):
|
|||||||
else:
|
else:
|
||||||
_LOGGER.debug("Media type '%s' not supported", media_type)
|
_LOGGER.debug("Media type '%s' not supported", media_type)
|
||||||
|
|
||||||
async def _async_announce(self, media_id: str):
|
async def _async_announce(self, media_id: str) -> None:
|
||||||
|
"""Play a URI."""
|
||||||
saved_state = self.state # save play state
|
saved_state = self.state # save play state
|
||||||
saved_mute = self.is_volume_muted
|
saved_mute = self.is_volume_muted
|
||||||
sleep_future = asyncio.create_task(
|
sleep_future = asyncio.create_task(
|
||||||
@ -696,14 +697,14 @@ class ForkedDaapdMaster(MediaPlayerEntity):
|
|||||||
async with async_timeout.timeout(TTS_TIMEOUT):
|
async with async_timeout.timeout(TTS_TIMEOUT):
|
||||||
await self._tts_playing_event.wait()
|
await self._tts_playing_event.wait()
|
||||||
# we have started TTS, now wait for completion
|
# we have started TTS, now wait for completion
|
||||||
|
except asyncio.TimeoutError:
|
||||||
|
self._tts_requested = False
|
||||||
|
_LOGGER.warning("TTS request timed out")
|
||||||
await asyncio.sleep(
|
await asyncio.sleep(
|
||||||
self._queue["items"][0]["length_ms"]
|
self._queue["items"][0]["length_ms"]
|
||||||
/ 1000 # player may not have updated yet so grab length from queue
|
/ 1000 # player may not have updated yet so grab length from queue
|
||||||
+ self._tts_pause_time
|
+ self._tts_pause_time
|
||||||
)
|
)
|
||||||
except asyncio.TimeoutError:
|
|
||||||
self._tts_requested = False
|
|
||||||
_LOGGER.warning("TTS request timed out")
|
|
||||||
self._tts_playing_event.clear()
|
self._tts_playing_event.clear()
|
||||||
# TTS done, return to normal
|
# TTS done, return to normal
|
||||||
await self.async_turn_on() # restore outputs and volumes
|
await self.async_turn_on() # restore outputs and volumes
|
||||||
@ -715,13 +716,12 @@ class ForkedDaapdMaster(MediaPlayerEntity):
|
|||||||
)
|
)
|
||||||
if saved_state == MediaPlayerState.PLAYING:
|
if saved_state == MediaPlayerState.PLAYING:
|
||||||
await self.async_media_play()
|
await self.async_media_play()
|
||||||
else: # restore stashed queue
|
return
|
||||||
if saved_queue:
|
if not saved_queue:
|
||||||
uris = ""
|
return
|
||||||
for item in saved_queue["items"]:
|
# Restore stashed queue
|
||||||
uris += item["uri"] + ","
|
|
||||||
await self._api.add_to_queue(
|
await self._api.add_to_queue(
|
||||||
uris=uris,
|
uris=",".join(item["uri"] for item in saved_queue["items"]),
|
||||||
playback="start",
|
playback="start",
|
||||||
playback_from_position=saved_queue_position,
|
playback_from_position=saved_queue_position,
|
||||||
clear=True,
|
clear=True,
|
||||||
@ -729,7 +729,8 @@ class ForkedDaapdMaster(MediaPlayerEntity):
|
|||||||
await self._api.seek(position_ms=saved_song_position)
|
await self._api.seek(position_ms=saved_song_position)
|
||||||
if saved_state == MediaPlayerState.PAUSED:
|
if saved_state == MediaPlayerState.PAUSED:
|
||||||
await self.async_media_pause()
|
await self.async_media_pause()
|
||||||
elif saved_state != MediaPlayerState.PLAYING:
|
return
|
||||||
|
if saved_state != MediaPlayerState.PLAYING:
|
||||||
await self.async_media_stop()
|
await self.async_media_stop()
|
||||||
|
|
||||||
async def async_select_source(self, source: str) -> None:
|
async def async_select_source(self, source: str) -> None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user