ignore disabled players
authormarcelveldt <marcelvanderveldt@MacBook-Silvia.local>
Thu, 31 Oct 2019 21:54:42 +0000 (22:54 +0100)
committermarcelveldt <marcelvanderveldt@MacBook-Silvia.local>
Thu, 31 Oct 2019 21:54:42 +0000 (22:54 +0100)
music_assistant/models/player.py
music_assistant/music_manager.py
music_assistant/player_manager.py

index dae9e0d19c55c67eb22363d91cfab60f5718af0c..f61c269fb3f4224d6ea4dfb5a9754090f020ba39 100755 (executable)
@@ -134,6 +134,14 @@ class Player():
         ''' [PROTECTED] provider id of this player '''
         return self._prov_id
 
+    @property
+    def enabled(self):
+        ''' [PROTECTED] enabled state of this player '''
+        if self.settings.get('enabled'):
+            return True
+        else:
+            return False
+
     @property
     def name(self):
         ''' [PROTECTED] name of this player '''
@@ -201,7 +209,7 @@ class Player():
     @property
     def state(self):
         ''' [PROTECTED] state property of this player '''
-        if not self.powered:
+        if not self.powered or not self.enabled:
             return PlayerState.Off
         # prefer group player state
         for group_parent_id in self.group_parents:
@@ -220,6 +228,8 @@ class Player():
     @property
     def powered(self):
         ''' [PROTECTED] return power state for this player '''
+        if not self.enabled:
+            return False
         # homeassistant integration
         if (self.mass.hass.enabled and self.settings.get('hass_power_entity') and 
                 self.settings.get('hass_power_entity_source')):
@@ -551,7 +561,7 @@ class Player():
 
     async def update(self, update_queue=False):
         ''' [PROTECTED] signal player updated '''
-        if not self._initialized:
+        if not self._initialized or not self.enabled:
             return
         # update queue state if player state changes
         if update_queue:
index 5305866666d88927ab1d90444206446ef05e8478..5b08263bc62efb35520dd46657f1cc5f94ba1269 100755 (executable)
@@ -163,7 +163,7 @@ class MusicManager():
         # collect the tracks from the first provider
         for prov in album.provider_ids:
             prov_obj = self.providers[prov['provider']]
-            items = await prov_obj.album_tracks(album_id)
+            items = await prov_obj.album_tracks(prov['item_id'])
             if items:
                 break
         items = sorted(items, key=operator.attrgetter('track_number'), reverse=False)
index 38f5a73dc244eb52fe92daf7de9d8cfe26c55c9c..7e66a80d951480bb31d172ba01289bf11e201c13 100755 (executable)
@@ -54,9 +54,10 @@ class PlayerManager():
         ''' register a new player '''
         player._initialized = True
         self._players[player.player_id] = player
-        await self.mass.signal_event(EVENT_PLAYER_ADDED, player.to_dict())
-        # TODO: turn on player if it was previously turned on ?
-        LOGGER.info(f"New player added: {player.player_provider}/{player.player_id}")
+        if player.enabled:
+            await self.mass.signal_event(EVENT_PLAYER_ADDED, player.to_dict())
+            # TODO: turn on player if it was previously turned on ?
+            LOGGER.info(f"New player added: {player.player_provider}/{player.player_id}")
         return player
 
     async def remove_player(self, player_id):