aboutsummaryrefslogtreecommitdiff
path: root/emms-volume-amixer.el
diff options
context:
space:
mode:
authorWenbin Ye <wenbinye@gmail.com>2006-11-27 15:41:00 +0000
committerWenbin Ye <wenbinye@gmail.com>2006-11-27 15:41:00 +0000
commit3ba64d032d74107a7e0cbaf376a6d803b0883db9 (patch)
treef1caf215413a7138c871d59de476e80e7ca6e3b9 /emms-volume-amixer.el
parent358e193b021835ff0b9de91b35959ed518bb9455 (diff)
Fix lyrics minibuffer display. Amixer display playback and more useful commands
darcs-hash:20061127154113-1e472-b3fb81d5e2e6e3669932a4927e30d18f2cb118da.gz
Diffstat (limited to 'emms-volume-amixer.el')
-rw-r--r--emms-volume-amixer.el37
1 files changed, 29 insertions, 8 deletions
diff --git a/emms-volume-amixer.el b/emms-volume-amixer.el
index 7a35435..379dfdb 100644
--- a/emms-volume-amixer.el
+++ b/emms-volume-amixer.el
@@ -49,17 +49,38 @@
(defun emms-volume-amixer-sset-master (var)
"Change amixer master volume by VAR."
- (start-process "mixer" nil "amixer" "sset" emms-volume-amixer-control var))
-
-(defun emms-volume-amixer-raise ()
- "Increase volume by 2%."
- (interactive)
- (emms-volume-amixer-sset-master "2%+"))
+ (message "Playback channels: %s"
+ (with-temp-buffer
+ (when (zerop
+ (call-process "amixer" nil (current-buffer) nil
+ "sset" emms-volume-amixer-control
+ (format "%d%%%s" (abs var)
+ (if (< var 0) "-" "+"))))
+ (if (re-search-backward "\\[\\([0-9]+%\\)\\]" nil t)
+ (match-string 1))))))
+
+(defvar emms-volume-amixer-raise-commands
+ '(?p ?k up ?+ ?=))
+(defvar emms-volume-amixer-lower-commands
+ '(?n ?j down ?-))
+
+(defun emms-volume-amixer-raise (&optional arg)
+ (interactive "P")
+ (if arg
+ (emms-volume-amixer-sset-master -2)
+ (emms-volume-amixer-sset-master 2))
+ (let (command)
+ (while (progn
+ (setq command (read-event))
+ (cond ((member command emms-volume-amixer-raise-commands)
+ (emms-volume-amixer-sset-master 2))
+ ((member command emms-volume-amixer-lower-commands)
+ (emms-volume-amixer-sset-master -2)))))
+ (setq unread-command-events (list command))))
(defun emms-volume-amixer-lower ()
- "Decrease volume by 2%."
(interactive)
- (emms-volume-amixer-sset-master "2%-"))
+ (emms-volume-amixer-raise -1))
(provide 'emms-volume-amixer)