diff options
author | Mark Oteiza <mvoteiza@udel.edu> | 2015-10-15 12:32:59 -0400 |
---|---|---|
committer | Mark Oteiza <mvoteiza@udel.edu> | 2015-10-15 12:32:59 -0400 |
commit | 5110c952069e593cb95593f7b3c41d67cb4559d6 (patch) | |
tree | 2fcd8690209a9b6b1a57c704499b63052ec0e79e /lisp/mpc.el | |
parent | 59def59158f9c5081664253e30362d0061a2a64f (diff) | |
download | emacs-5110c952069e593cb95593f7b3c41d67cb4559d6.tar.gz |
Add commands for controlling MPD modes
* lisp/mpc.el (mpc-cmd-consume, mpc-cmd-random, mpc-cmd-repeat)
(mpc-cmd-single): New functions.
(mpc-consume, mpc-repeat, mpc-single, mpc-shuffle): New commands.
(mpc-mode-menu): Add new commands as menu items.
Diffstat (limited to 'lisp/mpc.el')
-rw-r--r-- | lisp/mpc.el | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/lisp/mpc.el b/lisp/mpc.el index 55123ef1d71..8cbea4fbbbf 100644 --- a/lisp/mpc.el +++ b/lisp/mpc.el @@ -796,6 +796,22 @@ The songs are returned as alists." ;; (setq mpc-queue-back nil mpc-queue nil) ) +(defun mpc-cmd-consume (&optional arg) + "Set consume mode state." + (mpc-proc-cmd (list "consume" arg) #'mpc-status-refresh)) + +(defun mpc-cmd-random (&optional arg) + "Set random (shuffle) mode state." + (mpc-proc-cmd (list "random" arg) #'mpc-status-refresh)) + +(defun mpc-cmd-repeat (&optional arg) + "Set repeat mode state." + (mpc-proc-cmd (list "repeat" arg) #'mpc-status-refresh)) + +(defun mpc-cmd-single (&optional arg) + "Set single mode state." + (mpc-proc-cmd (list "single" arg) #'mpc-status-refresh)) + (defun mpc-cmd-pause (&optional arg callback) "Pause or resume playback of the queue of songs." (let ((cb callback)) @@ -1121,6 +1137,16 @@ If PLAYLIST is t or nil or missing, use the main playlist." ["Play/Pause" mpc-toggle-play] ["Next Track" mpc-next] ["Previous Track" mpc-prev] + "--" + ["Repeat Playlist" mpc-repeat :style toggle + :selected (member '(repeat . "1") mpc-status)] + ["Shuffle Playlist" mpc-shuffle :style toggle + :selected (member '(random . "1") mpc-status)] + ["Repeat Single Track" mpc-single :style toggle + :selected (member '(single . "1") mpc-status)] + ["Consume Mode" mpc-consume :style toggle + :selected (member '(consume . "1") mpc-status)] + "--" ["Add new browser" mpc-tagbrowser] ["Update DB" mpc-update] ["Quit" mpc-quit])) @@ -2336,6 +2362,30 @@ This is used so that they can be compared with `eq', which is needed for (mpc-status-stop) (if proc (delete-process proc)))) +(defun mpc-consume () + "Toggle consume mode: removing played songs from the playlist." + (interactive) + (mpc-cmd-consume + (if (string= "0" (cdr (assq 'consume (mpc-cmd-status)))) "1" "0"))) + +(defun mpc-repeat () + "Toggle repeat mode." + (interactive) + (mpc-cmd-repeat + (if (string= "0" (cdr (assq 'repeat (mpc-cmd-status)))) "1" "0"))) + +(defun mpc-single () + "Toggle single mode." + (interactive) + (mpc-cmd-single + (if (string= "0" (cdr (assq 'single (mpc-cmd-status)))) "1" "0"))) + +(defun mpc-shuffle () + "Toggle shuffling of the playlist (random mode)." + (interactive) + (mpc-cmd-random + (if (string= "0" (cdr (assq 'random (mpc-cmd-status)))) "1" "0"))) + (defun mpc-stop () "Stop playing the current queue of songs." (interactive) |