summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Kangas <stefan@marxist.se>2021-09-30 01:17:24 +0200
committerStefan Kangas <stefan@marxist.se>2021-09-30 01:17:53 +0200
commit758753431af51f7ac79a55d426b915443e66a077 (patch)
treeb252ddf9ed3e2bac893b28de3aba3c22ac96b76f
parent49c748e336ee3c50e28d2aeda6396efc358d961b (diff)
downloademacs-758753431af51f7ac79a55d426b915443e66a077.tar.gz
emacs-758753431af51f7ac79a55d426b915443e66a077.tar.bz2
emacs-758753431af51f7ac79a55d426b915443e66a077.zip
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".
-rw-r--r--etc/NEWS5
-rw-r--r--lisp/mpc.el13
2 files changed, 18 insertions, 0 deletions
diff --git a/etc/NEWS b/etc/NEWS
index 0c5a1004e7f..25164d53642 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -3026,6 +3026,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)