From: Marcel van der Veldt Date: Tue, 3 Aug 2021 18:44:17 +0000 (+0200) Subject: prevent multiple alerts at the same time X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=9b015fb30995748804072169ecc0c04f7379a1f8;p=music-assistant-server.git prevent multiple alerts at the same time --- 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)