From 8c1ca578d12c905ff5a7bf1fe1ac752e645e5dd7 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Tue, 15 Sep 2020 15:48:37 -0300 Subject: old "wait when done playing" code I haven't tested this since writing it in July so I have no idea what it does! :D --- backend.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'backend.js') diff --git a/backend.js b/backend.js index e75b1a8..0864d09 100644 --- a/backend.js +++ b/backend.js @@ -68,6 +68,7 @@ class QueuePlayer extends EventEmitter { this.pauseNextTrack = false this.queueEndMode = 'end' // end, loop, shuffle this.alwaysStartPaused = false + this.waitWhenDonePlaying = false this.playedTrackToEnd = false this.timeData = null @@ -444,7 +445,10 @@ class QueuePlayer extends EventEmitter { if (playingThisTrack) { this.playedTrackToEnd = true - this.playNext(item) + this.emit('done playing', this.playingTrack) + if (!this.waitWhenDonePlaying && !this.playNext(item)) { + this.clearPlayingTrack() + } } } @@ -695,6 +699,7 @@ export default class Backend extends EventEmitter { this.queuePlayers = [] this.alwaysStartPaused = false + this.waitWhenDonePlaying = false this.recordStore = new RecordStore() this.throttleMetadata = throttlePromise(10) @@ -727,6 +732,7 @@ export default class Backend extends EventEmitter { } queuePlayer.alwaysStartPaused = this.alwaysStartPaused + queuePlayer.waitWhenDonePlaying = this.waitWhenDonePlaying this.queuePlayers.push(queuePlayer) this.emit('added queue player', queuePlayer) @@ -862,6 +868,13 @@ export default class Backend extends EventEmitter { } } + setWaitWhenDonePlaying(value) { + this.waitWhenDonePlaying = !!value + for (const queuePlayer of this.queuePlayers) { + queuePlayer.waitWhenDonePlaying = !!value + } + } + async stopPlayingAll() { for (const queuePlayer of this.queuePlayers) { await queuePlayer.stopPlaying() -- cgit 1.3.0-6-gf8a5