Chore: Don't send stop when replacing queue
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Mon, 24 Feb 2025 19:33:56 +0000 (20:33 +0100)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Mon, 24 Feb 2025 19:33:56 +0000 (20:33 +0100)
music_assistant/controllers/player_queues.py

index 14d795fd4f237ba4b93b6b9bc2efd032abc6b3c8..e34b68dfaaf0c470f385f90735bdeec8d6a5deab 100644 (file)
@@ -431,7 +431,7 @@ class PlayerQueuesController(CoreController):
                         )
                     )
                     if option == QueueOption.REPLACE:
-                        self.clear(queue_id)
+                        self.clear(queue_id, skip_stop=True)
                 # collect media_items to play
                 if radio_mode:
                     radio_source.append(media_item)
@@ -578,11 +578,11 @@ class PlayerQueuesController(CoreController):
         self.update_items(queue_id, queue_items)
 
     @api_command("player_queues/clear")
-    def clear(self, queue_id: str) -> None:
+    def clear(self, queue_id: str, skip_stop: bool = False) -> None:
         """Clear all items in the queue."""
         queue = self._queues[queue_id]
         queue.radio_source = []
-        if queue.state != PlayerState.IDLE:
+        if queue.state != PlayerState.IDLE and not skip_stop:
             self.mass.create_task(self.stop(queue_id))
         queue.current_index = None
         queue.current_item = None