From 758753431af51f7ac79a55d426b915443e66a077 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Thu, 30 Sep 2021 01:17:24 +0200 Subject: [PATCH] New command mpc-goto-playing-song * lisp/mpc.el (mpc-goto-playing-song): New command to go to the currently playing song. (mpc-mode-map): Bind it to "o". --- etc/NEWS | 5 +++++ lisp/mpc.el | 13 +++++++++++++ 2 files changed, 18 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index 0c5a1004e7f..25164d53642 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -3025,6 +3025,11 @@ See 'rcirc-reconnect-attempts'. ** MPC +--- +*** New command 'mpc-goto-playing-song'. +This command, bound to 'o' in any 'mpc-mode' buffer, moves point to +the currently playing song in the "*Songs*" buffer. + --- *** New user option 'mpc-cover-image-re'. If non-nil, it is a regexp that should match a valid cover image. diff --git a/lisp/mpc.el b/lisp/mpc.el index c7ae08baee1..913146415e8 100644 --- a/lisp/mpc.el +++ b/lisp/mpc.el @@ -1150,6 +1150,7 @@ If PLAYLIST is t or nil or missing, use the main playlist." (define-key map ">" #'mpc-next) (define-key map "<" #'mpc-prev) (define-key map "g" #'mpc-seek-current) + (define-key map "o" #'mpc-goto-playing-song) map)) (easy-menu-define mpc-mode-menu mpc-mode-map @@ -2670,6 +2671,18 @@ If stopped, start playback." (mpc-select event) (mpc-play)) +(defun mpc-goto-playing-song () + "Move point to the currently playing song in the \"*Songs*\" buffer." + (interactive) + (let* ((buf (mpc-proc-buffer (mpc-proc) 'songs)) + (win (get-buffer-window buf))) + (when (and (buffer-live-p buf) win) + (select-window win) + (with-current-buffer buf + (when (and overlay-arrow-position + (eq (marker-buffer overlay-arrow-position) buf)) + (goto-char (marker-position overlay-arrow-position))))))) + ;; (defun mpc-play-tagval () ;; "Play all the songs of the tag at point." ;; (interactive) -- 2.39.5