''' [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 '''
@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:
@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')):
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:
# 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)
''' 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):