From 3d6c5b9bb1f9a42cebc61cbe3b0b5fb69bc146e8 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 | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'backend.js') diff --git a/backend.js b/backend.js index f2c4d59..f2610d0 100644 --- a/backend.js +++ b/backend.js @@ -70,6 +70,7 @@ class QueuePlayer extends EventEmitter { this.queueGrouplike = {name: 'Queue', isTheQueue: true, items: []} this.pauseNextTrack = false this.alwaysStartPaused = false + this.waitWhenDonePlaying = false this.playedTrackToEnd = false this.timeData = null @@ -458,7 +459,8 @@ class QueuePlayer extends EventEmitter { if (playingThisTrack) { this.playedTrackToEnd = true - if (!this.playNext(item)) { + this.emit('done playing', this.playingTrack) + if (!this.waitWhenDonePlaying && !this.playNext(item)) { this.clearPlayingTrack() } } @@ -646,6 +648,7 @@ class Backend extends EventEmitter { this.queuePlayers = [] this.alwaysStartPaused = false + this.waitWhenDonePlaying = false this.recordStore = new RecordStore() this.throttleMetadata = throttlePromise(10) @@ -678,12 +681,14 @@ class Backend extends EventEmitter { } queuePlayer.alwaysStartPaused = this.alwaysStartPaused + queuePlayer.waitWhenDonePlaying = this.waitWhenDonePlaying this.queuePlayers.push(queuePlayer) this.emit('added queue player', queuePlayer) for (const event of [ 'playing', + 'done playing', 'queue', 'distribute-queue', 'unqueue', @@ -811,6 +816,13 @@ 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