emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/listen f4aad1d915 4/5: Fix: Revert tracks individually


From: ELPA Syncer
Subject: [elpa] externals/listen f4aad1d915 4/5: Fix: Revert tracks individually
Date: Tue, 12 Mar 2024 18:58:41 -0400 (EDT)

branch: externals/listen
commit f4aad1d915f06b2b24ccf69b4c86c344f7205cb0
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>

    Fix: Revert tracks individually
    
    So if a track's metadata came from MPD and we can't read its metadata
    ourselves, we leave the track as-is.
---
 listen-queue.el | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/listen-queue.el b/listen-queue.el
index dd826f25b3..a0be851d39 100644
--- a/listen-queue.el
+++ b/listen-queue.el
@@ -532,7 +532,10 @@ with \"ffprobe\"."
 (defun listen-queue-revert-track (track)
   "Revert TRACK's metadata from disk."
   ;; TODO: Use this where appropriate.
-  (let ((new-track (car (listen-queue-tracks-for (list (listen-track-filename 
track))))))
+  (when-let ((new-track (car (listen-queue-tracks-for (list 
(listen-track-filename track))))))
+    ;; If `listen-queue-track' (and thereby `listen-queue-tracks-for') returns 
nil for a track
+    ;; (e.g. if its metadata can't be read), leave it alone (e.g. its metadata 
might have come from
+    ;; by MPD).
     (dolist (slot '(artist title album number date genre etc))
       ;; FIXME: Store metadata in its own slot and don't misuse etc slot.
       (setf (cl-struct-slot-value 'listen-track slot track)
@@ -662,14 +665,7 @@ disk."
 
 (defun listen-queue-reload (queue)
   "Reload QUEUE's tracks from disk."
-  ;; FIXME: If a track's metadata can't be read by 
`listen-info--decode-info-fields',
-  ;; `listen-queue-track' will return nil for it instead of a track.  This 
means that, for a few
-  ;; filetypes that, e.g. MPD can read but `listen-info' can't, this function 
will end up discarding
-  ;; tracks that might have metadata from MPD and that VLC could play.
-  (setf (listen-queue-tracks queue)
-        (listen-queue-tracks-for (mapcar (lambda (track)
-                                           (expand-file-name 
(listen-track-filename track)))
-                                         (listen-queue-tracks queue)))))
+  (mapc #'listen-queue-revert-track (listen-queue-tracks queue)))
 
 (defun listen-queue-order-by ()
   "Order the queue by the column at point.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]