>From 41896888a9cbb035800370eeca80391aa2615af5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20F=C3=A9lix=20Rezende=20Ribeiro?= Date: Mon, 26 Aug 2019 23:24:43 -0300 Subject: [PATCH 2/2] Implement mixer auto-detection. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lisp/emms-volume.el: Initial definition of ‘emms-volume-change-function’ tries mixer auto-detection, falling back to an instructive message on failure. NEWS: Add entry about this feature. --- NEWS | 2 ++ lisp/emms-volume.el | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 57c5340..032b22a 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,8 @@ News since version 5.2 - emms-volume-mixerctl.el: implementation for changing volume using mixerctl. + - Initial definition of `emms-volume-change-function' tries mixer + auto-detection, falling back to an instructive message on failure. News since version 5.1 diff --git a/lisp/emms-volume.el b/lisp/emms-volume.el index 45b1d4d..30cce92 100644 --- a/lisp/emms-volume.el +++ b/lisp/emms-volume.el @@ -59,7 +59,12 @@ :group 'emms) ;; General volume setting related code. -(defcustom emms-volume-change-function 'emms-volume-amixer-change +(defcustom emms-volume-change-function + (cond + ((executable-find "amixer") 'emms-volume-amixer-change) + ((executable-find "pactl") 'emms-volume-pulse-change) + ((executable-find "mixerctl") emms-volume-mixerctl-change) + ((t #'(lambda (amount) (user-error "%s" "No supported mixer found. Please, define ‘emms-volume-change-function’."))))) "*The function to use to change the volume. If you have your own functions for changing volume, set this." :type '(choice (const :tag "Amixer" emms-volume-amixer-change) -- 2.7.4