« 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/ui.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui.js')
-rw-r--r--ui.js10
1 files changed, 10 insertions, 0 deletions
diff --git a/ui.js b/ui.js
index 6e7aad1..7a524ee 100644
--- a/ui.js
+++ b/ui.js
@@ -135,6 +135,8 @@ class AppElement extends FocusElement {
       this.seekBack(10)
     } else if (telc.isCaselessLetter(keyBuf, 'p') || telc.isCaselessLetter(keyBuf, 'k')) {
       this.togglePause()
+    } else if (telc.isEscape(keyBuf)) {
+      this.clearPlayingTrack()
     } else if (telc.isShiftUp(keyBuf)) {
       this.playPreviousTrack(this.playingTrack)
     } else if (telc.isShiftDown(keyBuf)) {
@@ -190,6 +192,13 @@ class AppElement extends FocusElement {
     this.player.togglePause()
   }
 
+  stopPlaying() {
+    // We emit this so playTrack doesn't immediately start a new track.
+    // We aren't *actually* about to play a new track.
+    this.emit('playing new track')
+    this.player.kill()
+  }
+
   async queueGrouplikeItem(topItem, play = true, afterItem = null) {
     const newTrackIndex = this.queueGrouplike.items.length
 
@@ -367,6 +376,7 @@ class AppElement extends FocusElement {
 
   clearPlayingTrack() {
     this.playingTrack = null
+    this.stopPlaying()
     this.playbackInfoElement.clearInfo()
   }
 }