diff options
author | Wenbin Ye <wenbinye@gmail.com> | 2006-11-27 15:41:00 +0000 |
---|---|---|
committer | Wenbin Ye <wenbinye@gmail.com> | 2006-11-27 15:41:00 +0000 |
commit | 3ba64d032d74107a7e0cbaf376a6d803b0883db9 (patch) | |
tree | f1caf215413a7138c871d59de476e80e7ca6e3b9 /emms-volume-amixer.el | |
parent | 358e193b021835ff0b9de91b35959ed518bb9455 (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.el | 37 |
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) |