branch: externals/listen
commit 43512d034b192f117c75d8a3b8d4e6f8e5edbd5c
Author: Adam Porter <[email protected]>
Commit: Adam Porter <[email protected]>

    Fix: (listen--update-metadata) Between tracks
---
 listen-mpv.el | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/listen-mpv.el b/listen-mpv.el
index 5eff0bc960..76db22f691 100755
--- a/listen-mpv.el
+++ b/listen-mpv.el
@@ -61,12 +61,17 @@
 (cl-defmethod listen--update-metadata ((player listen-player-mpv) &optional 
then)
   "Update PLAYER's metadata slot, then call THEN without arguments."
   (let ((callback (lambda (metadata)
-                    (setf (listen-player-metadata player)
-                          (map-apply (lambda (key value)
-                                       (cons (intern (downcase (symbol-name 
key))) value))
-                                     metadata))
-                    (when then
-                      (funcall then)))))
+                    (pcase metadata
+                      ((and (or `nil :unknown) value)
+                       ;; May happen between tracks.
+                       (listen-debug "Metadata response was" value))
+                      (_
+                       (setf (listen-player-metadata player)
+                             (map-apply (lambda (key value)
+                                          (cons (intern (downcase (symbol-name 
key))) value))
+                                        metadata))
+                       (when then
+                         (funcall then)))))))
     (if then
         (listen-mpv--get-property player "metadata" :then callback)
       (funcall callback (listen-mpv--get-property player "metadata")))))

Reply via email to