emms-help
[Top][All Lists]
Advanced

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

emms-player-mpd-sync-from-mpd does not always call callback


From: StrawberryTea
Subject: emms-player-mpd-sync-from-mpd does not always call callback
Date: Mon, 30 Dec 2024 23:19:44 -0600
User-agent: mu4e 1.12.7; emacs 31.0.50

Hello EMMS developers,

I have written a function to jump to the currently playing EMMS song but
I have noticed that the callback is not always called when syncing from
MPD. Here is my code:

(defun cae-emms-jump-to-currently-playing-track (&rest args)
  (let ((track (emms-track-get
                (emms-playlist-current-selected-track) 'name)))
    (if (and track args)
        (dired-jump nil track)
      (message "No song is currently selected.")
      (transient-setup 'cae-emms-quick-access))))

;; TODO PR something so that the callback always runs to EMMS even when tracks 
is nil.
(defadvice! cae-emms-handle-jump-to-playing-track-a (closure tracks)
  :after #'emms-player-mpd-sync-from-mpd-1
  (when (and (not tracks)
             (eq (cadr closure) #'cae-emms-jump-to-currently-playing-track))
    (funcall (cadr closure))))

;;;###autoload (autoload 'cae-emms-quick-access 
"cae/misc-applications/autoload/emms" nil t)
(transient-define-prefix cae-emms-quick-access ()
  "Jump to EMMS music directories."
  ["Quick Access"
   [("v" "VGM"
     (lambda () (interactive)
       (require 'emms)
       (dired (expand-file-name "VGM" cae-misc-applications-music-dir))))
    ("y" "Youtube Music"
     (lambda () (interactive)
       (require 'emms)
       (dired (expand-file-name "Youtube Music" 
cae-misc-applications-music-dir))))
    ("p" "Playlists"
     (lambda () (interactive)
       (require 'emms)
       (dired (expand-file-name "Playlists" cae-misc-applications-music-dir))))
    ("a" "Anime Music"
     (lambda () (interactive)
       (require 'emms)
       (dired (expand-file-name "Anime Music" 
cae-misc-applications-music-dir))))
    ("r" "Artists"
     (lambda () (interactive)
       (require 'emms)
       (dired (expand-file-name "Artists" emms-source-file-default-directory))))
    ("l" "Longplays"
     (lambda () (interactive)
       (require 'emms)
       (dired (expand-file-name "Longplays" 
emms-source-file-default-directory))))
    ("j" "Currently playing"
     (lambda () (interactive)
       (require 'emms)
       (if (executable-find "mpd")
           (emms-player-mpd-sync-from-mpd nil 
#'cae-emms-jump-to-currently-playing-track)
         (funcall #'cae-emms-jump-to-currently-playing-track))))]])

Could we make it so that emms-player-mpd-sync-from-mpd-1 calls the
callback even if tracks is nil? I think this would be a good change.

Sincerely,
StrawberryTea



reply via email to

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