From: Marcel van der Veldt Date: Sat, 22 Jun 2019 13:05:19 +0000 (+0200) Subject: abort queue is http session ended X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=52002e093a1436e5892486967e7e8042c83963a0;p=music-assistant-server.git abort queue is http session ended --- diff --git a/music_assistant/modules/http_streamer.py b/music_assistant/modules/http_streamer.py index a387d94e..fcb6ccbf 100755 --- a/music_assistant/modules/http_streamer.py +++ b/music_assistant/modules/http_streamer.py @@ -280,19 +280,20 @@ class HTTPStreamer(): while buffer.qsize() > 1 and not cancelled.is_set(): await asyncio.sleep(1) # end of the track reached - # WIP: update actual duration to the queue for more accurate now playing info - accurate_duration = bytes_written / int(sample_rate * 4 * 2) - queue_track.duration = accurate_duration - self.mass.player.providers[player.player_provider]._player_queue[player_id][queue_index] = queue_track - # move to next queue index - queue_index += 1 - self.mass.event_loop.create_task(self.mass.player.player_queue_stream_update(player_id, queue_index, False)) - LOGGER.info("Finished Streaming queue track: %s (%s) on player %s" % (track_id, queue_track.name, player.name)) - # break out the loop if the http session is cancelled if cancelled.is_set(): + # break out the loop if the http session is cancelled break + else: + # WIP: update actual duration to the queue for more accurate now playing info + accurate_duration = bytes_written / int(sample_rate * 4 * 2) + queue_track.duration = accurate_duration + self.mass.player.providers[player.player_provider]._player_queue[player_id][queue_index] = queue_track + # move to next queue index + queue_index += 1 + self.mass.event_loop.create_task(self.mass.player.player_queue_stream_update(player_id, queue_index, False)) + LOGGER.info("Finished Streaming queue track: %s (%s) on player %s" % (track_id, queue_track.name, player.name)) # end of queue reached, pass last fadeout bits to final output - if last_fadeout_data: + if last_fadeout_data and not cancelled.is_set(): sox_proc.stdin.write(last_fadeout_data) await sox_proc.stdin.drain() sox_proc.stdin.close() diff --git a/music_assistant/modules/playerproviders/chromecast.py b/music_assistant/modules/playerproviders/chromecast.py index 9e5ffc1c..d466fab6 100644 --- a/music_assistant/modules/playerproviders/chromecast.py +++ b/music_assistant/modules/playerproviders/chromecast.py @@ -101,7 +101,10 @@ class ChromecastProvider(PlayerProvider): self._players[player_id].powered = True await self.mass.player.update_player(self._players[player_id]) elif cmd == 'volume': - self._chromecasts[player_id].set_volume(try_parse_int(cmd_args)/100) + new_volume = try_parse_int(cmd_args) + self._chromecasts[player_id].set_volume(new_volume/100) + self._players[player_id].volume_level = new_volume + await self.mass.player.update_player(self._players[player_id]) elif cmd == 'mute' and cmd_args == 'off': self._chromecasts[player_id].set_volume_muted(False) elif cmd == 'mute':