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")))))