(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)))))
(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))))))
(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)))