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