summaryrefslogtreecommitdiff
path: root/lisp/mpc.el
diff options
context:
space:
mode:
authorMark Oteiza <mvoteiza@udel.edu>2015-10-13 22:49:58 -0400
committerMark Oteiza <mvoteiza@udel.edu>2015-10-13 22:49:58 -0400
commit3fa424ca48f4f48a40a514153726758b6ed47892 (patch)
treec9491ffd72c1bd6bb1160d7c7d3fa54aca87cb24 /lisp/mpc.el
parenta7e6637162827a09c13e72a49412b3ab915cf473 (diff)
downloademacs-3fa424ca48f4f48a40a514153726758b6ed47892.tar.gz
Add MPC play/pause command
* lisp/mpc.el (mpc-toggle-play): New command. (mpc-mode-map): Bind it to "s". (mpc-mode-menu): Add corresponding menu item.
Diffstat (limited to 'lisp/mpc.el')
-rw-r--r--lisp/mpc.el12
1 files changed, 12 insertions, 0 deletions
diff --git a/lisp/mpc.el b/lisp/mpc.el
index 7d684d24c0f..d1524e7568b 100644
--- a/lisp/mpc.el
+++ b/lisp/mpc.el
@@ -1109,6 +1109,7 @@ If PLAYLIST is t or nil or missing, use the main playlist."
;; is applied elsewhere :-(
;; (define-key map [(double mouse-2)] 'mpc-play-at-point)
(define-key map "p" 'mpc-pause)
+ (define-key map "s" 'mpc-toggle-play)
(define-key map ">" 'mpc-next)
(define-key map "<" 'mpc-prev)
(define-key map "g" nil)
@@ -1117,6 +1118,7 @@ If PLAYLIST is t or nil or missing, use the main playlist."
(easy-menu-define mpc-mode-menu mpc-mode-map
"Menu for MPC.el."
'("MPC.el"
+ ["Play/Pause" mpc-toggle-play]
["Next track" mpc-next]
["Previous track" mpc-prev]
["Add new browser" mpc-tagbrowser]
@@ -2350,6 +2352,16 @@ This is used so that they can be compared with `eq', which is needed for
(interactive)
(mpc-cmd-pause "0"))
+(defun mpc-toggle-play ()
+ "Toggles between play and pause.
+If stopped, start playback."
+ (interactive)
+ (if (member (cdr (assq 'state (mpc-cmd-status))) '("stop"))
+ (mpc-cmd-play)
+ (if (member (cdr (assq 'state (mpc-cmd-status))) '("pause"))
+ (mpc-resume)
+ (mpc-pause))))
+
(defun mpc-play ()
"Start playing whatever is selected."
(interactive)