diff --git a/music_assistant/constants.py b/music_assistant/constants.py index 448f6f9d6..31a1a8b34 100755 --- a/music_assistant/constants.py +++ b/music_assistant/constants.py @@ -1,6 +1,6 @@ """All constants for Music Assistant.""" -__version__ = "0.0.33" +__version__ = "0.0.34" REQUIRED_PYTHON_VER = "3.7" CONF_USERNAME = "username" diff --git a/music_assistant/models/player_queue.py b/music_assistant/models/player_queue.py index bf36b3712..da642fd48 100755 --- a/music_assistant/models/player_queue.py +++ b/music_assistant/models/player_queue.py @@ -503,7 +503,11 @@ async def async_update_state(self): self._next_queue_startindex = self.next_index self._cur_index = new_index # check if a new track is loaded, wait for the streamdetails - if self._last_item != self.cur_item and self.cur_item.streamdetails: + if ( + self.cur_item + and self._last_item != self.cur_item + and self.cur_item.streamdetails + ): # new active item in queue self.mass.signal_event(EVENT_QUEUE_UPDATED, self.to_dict()) # invalidate previous streamdetails diff --git a/music_assistant/player_manager.py b/music_assistant/player_manager.py index dc5b8386c..c1defb0c7 100755 --- a/music_assistant/player_manager.py +++ b/music_assistant/player_manager.py @@ -419,7 +419,7 @@ async def async_cmd_power_off(self, player_id: str) -> None: for child_player_id in player.group_childs: child_player = self.get_player(child_player_id) if child_player and child_player.powered: - await self.async_cmd_power_off(child_player_id) + self.mass.add_job(self.async_cmd_power_off(child_player_id)) else: # if this was the last powered player in the group, turn off group for parent_player_id in player.group_parents: @@ -433,9 +433,8 @@ async def async_cmd_power_off(self, player_id: str) -> None: child_player = self.get_player(child_player_id) if child_player and child_player.powered: has_powered_players = True - break if not has_powered_players: - await self.async_cmd_power_off(parent_player_id) + self.mass.add_job(self.async_cmd_power_off(parent_player_id)) async def async_cmd_power_toggle(self, player_id: str): """ @@ -561,8 +560,10 @@ async def __async_create_player_state(self, player: Player): player_state = Player(player.player_id, player.provider_id) self._players[player.player_id] = player_state setattr(player_state, "_on_update", self.__player_updated) - group_parents = self.__get_player_group_parents(player) - active_queue = self.__get_player_active_queue(player, group_parents) + player_state.group_parents = self.__get_player_group_parents(player) + active_queue = self.__get_player_active_queue( + player, player_state.group_parents + ) player_state.name = self.__get_player_name(player) player_state.powered = self.__get_player_power_state(player) if active_queue != player.player_id: