X-Git-Url: http://christophe.rhodes.io/gitweb/?p=squeeze-el.git;a=blobdiff_plain;f=squeeze.el;h=c3430946074110addd69f88c5c01a3bb90406a36;hp=0d23a0c6d23dbeb5dd0349215b53ee8d3ec79024;hb=abf91c38a4422821c03c56f295e1a865ed13812d;hpb=454563fcec34bdfa3ba4921d06c6fc809e193957 diff --git a/squeeze.el b/squeeze.el index 0d23a0c..c343094 100644 --- a/squeeze.el +++ b/squeeze.el @@ -17,12 +17,14 @@ (define-derived-mode squeeze-mode comint-mode "Squeeze" "Major mode for interacting with the Squeezebox Server CLI.\\" + (add-to-list 'completion-at-point-functions 'squeeze-complete-command-at-point) (add-hook 'comint-preoutput-filter-functions 'url-unhex-string nil t) (add-hook 'comint-preoutput-filter-functions 'squeeze-update-state nil t)) (defvar squeeze-control-mode-map (let ((map (make-sparse-keymap))) (define-key map (kbd "SPC") 'squeeze-control-toggle-power) + (define-key map (kbd "f") 'squeeze-control-play-favorite) (define-key map (kbd "g") 'squeeze-control-refresh) (define-key map (kbd "+") 'squeeze-control-volume-up) (define-key map (kbd "-") 'squeeze-control-volume-down) @@ -178,6 +180,13 @@ (setq id (get-text-property (point) 'squeeze-playerid))) (comint-send-string (get-buffer-process "*squeeze*") (format "%s power\n" id))) +(defun squeeze-control-play-favorite (&optional favorite id) + (interactive "nFavourite: ") + (unless id + (setq id (get-text-property (point) 'squeeze-playerid))) + (comint-send-string (get-buffer-process "*squeeze*") + (format "%s favorites playlist play item_id:%d\n" id favorite))) + (defun squeeze-control-query-power (&optional id) (interactive) (unless id @@ -226,6 +235,8 @@ (let ((squeeze-control-inhibit-display t)) (squeeze-control-query-players) (accept-process-output (get-buffer-process "*squeeze*")) + (squeeze-control-query-syncgroups) + (accept-process-output (get-buffer-process "*squeeze*")) (dolist (player squeeze-players) (squeeze-control-query-power (squeeze-player-playerid player)) (accept-process-output (get-buffer-process "*squeeze*"))