X-Git-Url: http://christophe.rhodes.io/gitweb/?p=squeeze-el.git;a=blobdiff_plain;f=squeeze.el;fp=squeeze.el;h=ee21dedb449333d082482b9a9f65cb5bd48dbff4;hp=16fdb83a37836e6dfe87cef0fc61a5d7a0e4ad09;hb=5cffc455955e6d64450aae8ba447ab83d9e5a6ac;hpb=b8ff03c88bd1683f387554c5c6f8ba5a9a38302f diff --git a/squeeze.el b/squeeze.el index 16fdb83..ee21ded 100644 --- a/squeeze.el +++ b/squeeze.el @@ -47,8 +47,28 @@ (define-key map (kbd "+") 'squeeze-control-volume-up) (define-key map (kbd "-") 'squeeze-control-volume-down) (define-key map (kbd "t") 'squeeze-control-toggle-syncgroup-display) + (define-key map (kbd ">") 'squeeze-control-next-track) + (define-key map (kbd "<") 'squeeze-control-previous-track) + (define-key map (kbd "s") 'squeeze-control-select-player) map)) +(defvar squeeze-control-current-player nil) + +(defun squeeze-control-select-player (id) + (interactive + (list (or (get-text-property (point) 'squeeze-playerid) + (let ((name (completing-read "Select player: " (mapcar 'squeeze-player-name squeeze-players)))) + (squeeze-player-playerid (squeeze-find-player-from-name name)))))) + (setq squeeze-control-current-player id)) + +(defun squeeze-control-next-track () + (interactive) + (squeeze-send-string "%s playlist index +1" squeeze-control-current-player)) + +(defun squeeze-control-previous-track () + (interactive) + (squeeze-send-string "%s playlist index -1" squeeze-control-current-player)) + (define-derived-mode squeeze-control-mode special-mode "SqueezeControl" "Major mode for controlling Squeezebox Servers.\\")