diff options
author | Oleg Pykhalov <go.wigust@gmail.com> | 2018-06-24 13:18:53 +0300 |
---|---|---|
committer | 宋文武 <iyzsong@member.fsf.org> | 2018-06-25 23:29:46 +0800 |
commit | 1e3861eb00a2e9531bc4326b37a31405e34cc0ff (patch) | |
tree | 2e90b1a999b14502d9891ada884dddac2695e53d /gnu/services/sound.scm | |
parent | a87cb7a73bc4f9df614ffdb2ce2c51aa04c379e5 (diff) |
services: alsa-service-type: Fix the loading of 'pulse' plugin.
Fixes <https://bugs.gnu.org/31591>.
* gnu/services/sound.scm (<alsa-configuration>)[alsa-plugins]: New field.
(alsa-config-file): Use 'pcm_type.pulse' and 'ctl_type.pulse' to specify file
paths to the 'pulse' plugin.
* doc/guix.texi (Sound Services): Document this.
Co-authored-by: 宋文武 <iyzsong@member.fsf.org>
Diffstat (limited to 'gnu/services/sound.scm')
-rw-r--r-- | gnu/services/sound.scm | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/gnu/services/sound.scm b/gnu/services/sound.scm index 5fe555e8b6..f2dd24402f 100644 --- a/gnu/services/sound.scm +++ b/gnu/services/sound.scm @@ -26,6 +26,7 @@ #:use-module (guix packages) #:use-module (guix records) #:use-module (guix store) + #:use-module (gnu packages linux) #:use-module (gnu packages pulseaudio) #:use-module (ice-9 match) #:export (alsa-configuration @@ -44,17 +45,31 @@ (define-record-type* <alsa-configuration> alsa-configuration make-alsa-configuration alsa-configuration? + (alsa-plugins alsa-configuration-alsa-plugins ;<package> + (default alsa-plugins)) (pulseaudio? alsa-configuration-pulseaudio? ;boolean (default #t)) (extra-options alsa-configuration-extra-options ;string (default ""))) -(define (alsa-config-file config) - "Return the ALSA configuration file corresponding to CONFIG." - (plain-file "asound.conf" - (string-append "# Generated by 'alsa-service'.\n\n" - (if (alsa-configuration-pulseaudio? config) - "# Use PulseAudio by default +(define alsa-config-file + ;; Return the ALSA configuration file. + (match-lambda + (($ <alsa-configuration> alsa-plugins pulseaudio? extra-options) + (apply mixed-text-file "asound.conf" + `("# Generated by 'alsa-service'.\n\n" + ,@(if pulseaudio? + `("# Use PulseAudio by default +pcm_type.pulse { + lib \"" ,#~(string-append #$alsa-plugins:pulseaudio + "/lib/alsa-lib/libasound_module_pcm_pulse.so") "\" +} + +ctl_type.pulse { + lib \"" ,#~(string-append #$alsa-plugins:pulseaudio + "/lib/alsa-lib/libasound_module_ctl_pulse.so") "\" +} + pcm.!default { type pulse fallback \"sysdefault\" @@ -67,10 +82,9 @@ pcm.!default { ctl.!default { type pulse fallback \"sysdefault\" -} -" - "") - (alsa-configuration-extra-options config)))) +}\n\n") + '()) + ,extra-options))))) (define (alsa-etc-service config) (list `("asound.conf" ,(alsa-config-file config)))) |