X-Git-Url: http://christophe.rhodes.io/gitweb/?p=squeeze-el.git;a=blobdiff_plain;f=squeeze.el;h=95bfdf140f358be70e5d1de1e16a4e825629fb68;hp=c64eaef2ec337ddaf540cfdeec57f4e882cb649f;hb=ac46829f42f950bc74751e458646c708b3616d6c;hpb=122b649dda17fcaf053d5ca950d79a272a114300 diff --git a/squeeze.el b/squeeze.el index c64eaef..95bfdf1 100644 --- a/squeeze.el +++ b/squeeze.el @@ -61,7 +61,7 @@ (defun squeeze-update-mixer-volume (player value) (let ((current (squeeze-player-volume player))) - (if (string-match "^[+-]" value) + (if (string-match "^[-+]" value) (when current (setf (squeeze-player-volume player) (+ current (string-to-number value)))) (setf (squeeze-player-volume player) (string-to-number value))))) @@ -80,8 +80,8 @@ (player (squeeze-find-player id))) (squeeze-update-power player state)) t) - ((string-match "^mixer volume \\([+-]?[0-9]*\\)" substring) - (let ((value (match-string 1 substring)) + ((string-match "^mixer volume \\(\\(?:-\\|%2B\\)?[0-9]*\\)" substring) + (let ((value (url-unhex-string (match-string 1 substring))) (player (squeeze-find-player id))) (squeeze-update-mixer-volume player value)) t)))))) @@ -169,27 +169,31 @@ (interactive) (unless id (setq id (get-text-property (point) 'squeeze-playerid))) - (comint-send-string (get-buffer-process "*squeeze*") (format "%s power ?\n" id))) + (when id + (comint-send-string (get-buffer-process "*squeeze*") (format "%s power ?\n" id)))) (defun squeeze-control-volume-up (&optional id inc) (interactive) (unless inc (setq inc 5)) (unless id (setq id (get-text-property (point) 'squeeze-playerid))) - (comint-send-string (get-buffer-process "*squeeze*") (format "%s mixer volume %+d\n" id inc))) + (when id + (comint-send-string (get-buffer-process "*squeeze*") (format "%s mixer volume %+d\n" id inc)))) (defun squeeze-control-volume-down (&optional id inc) (interactive) (unless inc (setq inc 5)) (unless id (setq id (get-text-property (point) 'squeeze-playerid))) - (comint-send-string (get-buffer-process "*squeeze*") (format "%s mixer volume %+d\n" id (- inc)))) + (when id + (comint-send-string (get-buffer-process "*squeeze*") (format "%s mixer volume %+d\n" id (- inc))))) (defun squeeze-control-query-mixer-volume (&optional id) (interactive) (unless id (setq id (get-text-property (point) 'squeeze-playerid))) - (comint-send-string (get-buffer-process "*squeeze*") (format "%s mixer volume ?\n" id))) + (when id + (comint-send-string (get-buffer-process "*squeeze*") (format "%s mixer volume ?\n" id)))) (defun squeeze-control-player-face (player) (let ((power (squeeze-player-power player)))