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

    Add: (listen-current-track)
---
 listen-lib.el | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/listen-lib.el b/listen-lib.el
index 9dc14e087a..be9a7e7331 100644
--- a/listen-lib.el
+++ b/listen-lib.el
@@ -116,6 +116,13 @@ return a list of values; otherwise return the sole value."
   (or listen-player
       (setf listen-player (make-listen-player-vlc))))
 
+(cl-defun listen-current-track (&optional (player listen-player))
+  "Return track playing on PLAYER, if any."
+  ;; TODO: Use this where appropriate.
+  (when-let ((player)
+             (queue (alist-get :queue (listen-player-etc player))))
+    (listen-queue-current queue)))
+
 (defun listen-format-seconds (seconds)
   "Return SECONDS formatted as an hour:minute:second-style duration."
   (format-seconds "%h:%z%.2m:%.2s" seconds))
@@ -128,6 +135,9 @@ return a list of values; otherwise return the sole value."
 (cl-defgeneric listen--length (player)
   "Return duration in seconds of PLAYER's current track.")
 
+(cl-defgeneric listen--playing-p (player)
+  "Return non-nil if PLAYER is playing.")
+
 (cl-defmethod listen--running-p ((player listen-player))
   "Return non-nil if PLAYER is running."
   (process-live-p (listen-player-process player)))

Reply via email to