chiark / gitweb /
dot/emacs, el/dot-emacs.el: Show MPC status after play, previous, next.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 20 Jul 2017 00:17:08 +0000 (01:17 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 20 Jul 2017 00:17:08 +0000 (01:17 +0100)
Wrap the transport operations in a macro which ensures that the library
is loaded, and echoes the status afterwards.

dot/emacs
el/dot-emacs.el

index 9ef8719a76ebc15fcaa3de506b2115311cb1d925..bc89bfd869a26ae3ef6c67ed03bff713a737ce46 100644 (file)
--- a/dot/emacs
+++ b/dot/emacs
   (global-set-key [?\C-c ?m ?w] 'magit-wip-log)
   (global-set-key [?\C-c ?m ?r] 'magit-list-repositories)
   (global-set-key [?\C-c ?p ?p] 'mdw-mpc-play-or-pause)
-  (global-set-key [?\C-c ?p ?s] 'mpc-stop)
-  (global-set-key [?\C-c ?p ?<] 'mpc-prev)
-  (global-set-key [?\C-c ?p ?>] 'mpc-next)
+  (global-set-key [?\C-c ?p ?s] 'mdw-mpc-stop)
+  (global-set-key [?\C-c ?p ?<] 'mdw-mpc-prev)
+  (global-set-key [?\C-c ?p ?>] 'mdw-mpc-next)
   (global-set-key [?\C-c ?p ??] 'mdw-mpc-now-playing)
   (global-set-key [?\C-c ?k] 'compile)
   (global-set-key [?\C-x ?3] 'mdw-split-window-horizontally)
index c189f4dd66fe675c60c4c5c13e0e4fc60a9d4ba7..5f2708502af9edae62e11111c924be29f9f9e168 100644 (file)
@@ -3769,13 +3769,6 @@ (defun mdw-repolist-column-unpushed-to-upstream (_id)
 ;;;--------------------------------------------------------------------------
 ;;; MPC configuration.
 
-(defun mdw-mpc-play-or-pause ()
-  (interactive)
-  (require 'mpc)
-  (if (member (cdr (assq 'state (mpc-cmd-status))) '("play"))
-      (mpc-pause)
-    (mpc-play)))
-
 (setq mpc-browser-tags '(Artist|Composer|Performer Album|Playlist))
 
 (defun mdw-mpc-now-playing ()
@@ -3820,9 +3813,21 @@ (defun mdw-mpc-now-playing ()
          (t
           (message "mpd in unknown state `%s'" state)))))
 
-(autoload 'mpc-next "mpc")
-(autoload 'mpc-prev "mpc")
-(autoload 'mpc-stop "mpc")
+(defmacro mdw-define-mpc-wrapper (func bvl interactive &rest body)
+  `(defun ,func ,bvl
+     (interactive ,@interactive)
+     (require 'mpc)
+     ,@body
+     (mdw-mpc-now-playing)))
+
+(mdw-define-mpc-wrapper mdw-mpc-play-or-pause () nil
+  (if (member (cdr (assq 'state (mpc-cmd-status))) '("play"))
+      (mpc-pause)
+    (mpc-play)))
+
+(mdw-define-mpc-wrapper mdw-mpc-next () nil (mpc-next))
+(mdw-define-mpc-wrapper mdw-mpc-prev () nil (mpc-prev))
+(mdw-define-mpc-wrapper mdw-mpc-stop () nil (mpc-stop))
 
 (defun mdw-mpc-hack-lines (arg interactivep func)
   (if (and interactivep (use-region-p))