do not poll unavailable player
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Sat, 11 Mar 2023 13:39:46 +0000 (14:39 +0100)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Sat, 11 Mar 2023 13:39:46 +0000 (14:39 +0100)
music_assistant/server/controllers/players.py

index a55db67098e425e24dbd1b0c1341c1c66468eac5..7ab6bcf184f1fa76e2337d7046b7562c70da53e5 100755 (executable)
@@ -529,8 +529,8 @@ class PlayerController:
                 # - every 30 seconds if the player is powered
                 # - every 10 seconds if the player is playing
                 if (
-                    (player.powered and count % 30 == 0)
-                    or (player_playing and count % 10 == 0)
+                    (player.available and player.powered and count % 30 == 0)
+                    or (player.available and player_playing and count % 10 == 0)
                     or count == 360
                 ):
                     if player_prov := self.get_player_provider(player_id):
@@ -538,6 +538,8 @@ class PlayerController:
                             await player_prov.poll_player(player_id)
                         except PlayerUnavailableError:
                             player.available = False
+                            player.state = PlayerState.IDLE
+                            player.powered = False
                             self.update(player_id)
                         except Exception as err:  # pylint: disable=broad-except
                             LOGGER.warning(