A new path replace previous one. NOTE: mpd version should >=0.15.1. Sine 0.15.1 mpd add single mode.
However, sine 0.15.1 it seems the output of listallinfo have some change. emms-cache-set-from-mpd-all can not set it correctly. ----------------------------------------------------------------------- >From 98e810cfdcba464bd16d5607330fde39b2069ef6 Mon Sep 17 00:00:00 2001 From: S.P.Tseng <[email protected]> Date: Tue, 1 Sep 2009 21:21:19 +0800 Subject: [PATCH] emms-player-mpd: support mpd single mode. --- lisp/emms-player-mpd.el | 16 +++++++++++++--- lisp/emms.el | 6 ++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/lisp/emms-player-mpd.el b/lisp/emms-player-mpd.el index fa8f911..2db211c 100644 --- a/lisp/emms-player-mpd.el +++ b/lisp/emms-player-mpd.el @@ -692,9 +692,10 @@ main EMMS playlist buffer." nil) ((string= state "play") (setq emms-player-mpd-last-state "play") - (unless (or (null song) - (and (stringp emms-player-mpd-current-song) - (string= song emms-player-mpd-current-song))) + (unless (and (or (null song) + (and (stringp emms-player-mpd-current-song) + (string= song emms-player-mpd-current-song))) + (if emms-repeat-track (not (= time 0)) t)) (let ((emms-player-stopped-p t)) (emms-player-stopped)) (emms-player-mpd-select-song emms-player-mpd-current-song song) @@ -1017,6 +1018,15 @@ from other functions." (interactive) (emms-player-mpd-send "previous" nil #'ignore)) +(defun emms-player-mpd-toggle-single () + (when (eq (emms-player-for + (emms-playlist-current-selected-track)) 'emms-player-mpd) + (emms-player-mpd-send + (concat "single " (if emms-repeat-track "1" "0")) + nil #'ignore))) + +(add-hook 'emms-toggle-repeat-track-hooks 'emms-player-mpd-toggle-single) + ;;; Volume (defun emms-volume-mpd-change (amount) diff --git a/lisp/emms.el b/lisp/emms.el index 3c5402d..b693a73 100644 --- a/lisp/emms.el +++ b/lisp/emms.el @@ -238,6 +238,11 @@ Use `emms-player-paused-p' to find the current state." :group 'emms :type 'hook) +(defcustom emms-toggle-repeat-track-hooks nil + "*Hook run when repeat track toggle." + :group 'emms + :type 'hook) + (defcustom emms-seek-seconds 10 "The number of seconds to seek forward or backward when seeking. This is a number in seconds." @@ -501,6 +506,7 @@ See `emms-repeat-playlist'." See `emms-repeat-track'." (interactive) (setq emms-repeat-track (not emms-repeat-track)) + (run-hooks 'emms-toggle-repeat-track-hooks) (if emms-repeat-track (message "Will repeat the current track.") (message "Will advance to the next track after this one."))) -- 1.6.4.2 _______________________________________________ Emms-patches mailing list [email protected] http://lists.gnu.org/mailman/listinfo/emms-patches
