From 4aba12fa4cbe02596d77f9437af4f6505c19745d Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Thu, 20 Jul 2017 01:17:08 +0100 Subject: [PATCH] dot/emacs, el/dot-emacs.el: Show MPC status after play, previous, next. Wrap the transport operations in a macro which ensures that the library is loaded, and echoes the status afterwards. --- dot/emacs | 6 +++--- el/dot-emacs.el | 25 +++++++++++++++---------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/dot/emacs b/dot/emacs index 9ef8719..bc89bfd 100644 --- a/dot/emacs +++ b/dot/emacs @@ -616,9 +616,9 @@ (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) diff --git a/el/dot-emacs.el b/el/dot-emacs.el index c189f4d..5f27085 100644 --- a/el/dot-emacs.el +++ b/el/dot-emacs.el @@ -3769,13 +3769,6 @@ there is sadness." ;;;-------------------------------------------------------------------------- ;;; 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 @@ there is sadness." (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)) -- 2.11.0