« get me outta code hell

mtui - Music Text User Interface - user-friendly command line music player
about summary refs log tree commit diff
path: root/backend.js
diff options
context:
space:
mode:
Diffstat (limited to 'backend.js')
-rw-r--r--backend.js14
1 files changed, 13 insertions, 1 deletions
diff --git a/backend.js b/backend.js
index 51419da..e2213d5 100644
--- a/backend.js
+++ b/backend.js
@@ -511,10 +511,22 @@ class QueuePlayer extends EventEmitter {
   }
 
   async playOrSeek(item, time) {
+    if (!isTrack(item)) {
+      // This only makes sense to call with individual tracks!
+      return
+    }
+
     if (item === this.playingTrack) {
       this.seekTo(time)
     } else {
-      this.queue(item, this.playingTrack)
+      // Queue the track, but only if it's not already in the queue, so that we
+      // respect an existing queue order.
+      const queue = this.queueGrouplike
+      const queueIndex = queue.items.indexOf(item)
+      if (queueIndex === -1) {
+        this.queue(item, this.playingTrack)
+      }
+
       this.play(item, time)
     }
   }