''' [PROTECTED] send power ON command to player '''
await self.cmd_power_on()
# handle mute as power
- if self.settings['mute_as_power']:
+ if self.settings.get('mute_as_power'):
await self.volume_mute(False)
# handle hass integration
if (self.mass.hass and
service_data = { 'entity_id': self.settings['hass_power_entity']}
await self.mass.hass.call_service(domain, 'turn_on', service_data)
# handle play on power on
- if self.settings['play_power_on']:
+ if self.settings.get('play_power_on'):
await self.play()
# handle group power
if self.group_parent:
''' [PROTECTED] send power TOGGLE command to player '''
await self.cmd_power_off()
# handle mute as power
- if self.settings['mute_as_power']:
+ if self.settings.get('mute_as_power'):
await self.volume_mute(True)
# handle hass integration
if (self.mass.hass and
('target_volume', '-23', 'target_volume_lufs'),
('fallback_gain_correct', '-12', 'fallback_gain_correct'),
("crossfade_duration", 0, "crossfade_duration"),
+ ("play_power_on", False, "player_power_play"),
]
# append player specific settings
config_entries += self.mass.player.providers[self._prov_id].player_config_entries
- if self.is_group or not self.group_parent:
- config_entries += [ # play on power on setting
- ("play_power_on", False, "player_power_play"),
- ]
+ # hass integration
if self.mass.config['base'].get('homeassistant',{}).get("enabled"):
# append hass specific config entries
config_entries += [("hass_power_entity", "", "hass_player_power"),
'''
new_track = await self.queue.get_item(index)
self.flush()
- self.play(new_track.uri)
+ self.__play_uri(new_track.uri)
async def cmd_queue_load(self, queue_items):
'''
:param queue_items: a list of QueueItems
'''
self.flush()
- self.play(queue_items[0].uri)
+ self.__play_uri(queue_items[0].uri)
async def cmd_queue_insert(self, queue_items, offset=0):
''' nothing to do, handled by built-in queue '''
tell player to start playing a single uri
'''
self.flush()
- self.play(uri)
+ self.__play_uri(uri)
def flush(self):
data = self.pack_stream(b"f", autostart=b"0", flags=0)
self.send_frame(b"strm", data)
- def play(self, uri):
+ def __play_uri(self, uri):
+ # TODO: replaygain
self.cur_uri = uri
self.powered = True
enable_crossfade = self.settings["crossfade_duration"] > 0
def stat_STMd(self, data):
LOGGER.info("Decoder Ready for next track")
next_item = self.queue.next_item
- self.play(next_item.uri)
+ self.__play_uri(next_item.uri)
def stat_STMe(self, data):
LOGGER.idebugnfo("Connection established")