add back PlayerState.Off
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Fri, 18 Sep 2020 06:28:50 +0000 (08:28 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Fri, 18 Sep 2020 06:28:50 +0000 (08:28 +0200)
music_assistant/models/player.py
music_assistant/player_manager.py

index f289177556508f62fe7ceb3b89f45b4250b7f0ce..65438cc9db27834a850ec02c3116c04bf5cd7419 100755 (executable)
@@ -17,6 +17,7 @@ class PlayerState(Enum):
     Stopped = "stopped"
     Paused = "paused"
     Playing = "playing"
+    Off = "off"
 
 
 @dataclass
index 3efc524b941bbe92b5662fa878021628d03414ed..ca57140fa8505e06164b544cd528ecc1368d5bbc 100755 (executable)
@@ -558,7 +558,9 @@ class PlayerManager:
         else:
             player_state.elapsed_time = int(player.elapsed_time)
             player_state.current_uri = player.current_uri
-        player_state.state = self.__get_player_state(player, active_queue)
+        player_state.state = self.__get_player_state(
+            player, active_queue, player_state.powered
+        )
         player_state.available = False if not player_enabled else player.available
         player_state.volume_level = self.__get_player_volume_level(player)
         player_state.muted = self.__get_player_mute_state(player)
@@ -617,11 +619,13 @@ class PlayerManager:
         return player.volume_level
 
     @callback
-    def __get_player_state(self, player: Player, active_parent: str):
+    def __get_player_state(self, player: Player, active_parent: str, powered: bool):
         """Get final/calculated player's state."""
-        if active_parent != player.player_id:
+        if powered and active_parent != player.player_id:
             # use group state
             return self._players[active_parent].state
+        if player.state == PlayerState.Stopped and not powered:
+            return PlayerState.Off
         return player.state
 
     @callback