From 9b015fb30995748804072169ecc0c04f7379a1f8 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Tue, 3 Aug 2021 20:44:17 +0200 Subject: [PATCH] prevent multiple alerts at the same time --- music_assistant/managers/players.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/music_assistant/managers/players.py b/music_assistant/managers/players.py index 5fe9e4c1..b9f99e3e 100755 --- a/music_assistant/managers/players.py +++ b/music_assistant/managers/players.py @@ -45,6 +45,7 @@ class PlayerManager: self._providers = {} self._player_queues = {} self._controls = {} + self._alerts_in_progress = set() async def setup(self) -> None: """Async initialize of module.""" @@ -418,6 +419,13 @@ class PlayerManager: """ player = self.get_player(player_id) player_queue = self.get_active_player_queue(player_id) + if player_queue.queue_id in self._alerts_in_progress: + LOGGER.debug( + "Ignoring Play Alert for queue %s - Another alert is already in progress.", + player_queue.queue_id, + ) + return + self._alerts_in_progress.add(player_queue.queue_id) prev_state = player_queue.state prev_power = player.calculated_state.powered prev_volume = player.calculated_state.volume_level @@ -504,6 +512,7 @@ class PlayerManager: await player_queue.resume() if not prev_power: await self.cmd_power_off(player_id) + self._alerts_in_progress.remove(player_queue.queue_id) player_queue.signal_update() create_task(restore_queue) -- 2.34.1