From patchwork Thu Jan 9 13:57:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leo Prikler X-Patchwork-Id: 19714 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 92E0A17A59; Thu, 9 Jan 2020 13:59:15 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 2448717A56 for ; Thu, 9 Jan 2020 13:59:15 +0000 (GMT) Received: from localhost ([::1]:60822 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ipYLC-0005i2-E5 for patchwork@mira.cbaines.net; Thu, 09 Jan 2020 08:59:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:36672) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ipYL1-0005WW-L2 for guix-patches@gnu.org; Thu, 09 Jan 2020 08:59:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ipYL0-00063n-Er for guix-patches@gnu.org; Thu, 09 Jan 2020 08:59:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:46007) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ipYL0-000630-B0 for guix-patches@gnu.org; Thu, 09 Jan 2020 08:59:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ipYL0-0005yD-AY for guix-patches@gnu.org; Thu, 09 Jan 2020 08:59:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#39052] [PATCH 1/3] services: Add pulseaudio-configuration. Resent-From: Leo Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 09 Jan 2020 13:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 39052 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 39052@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.157857829722851 (code B ref -1); Thu, 09 Jan 2020 13:59:02 +0000 Received: (at submit) by debbugs.gnu.org; 9 Jan 2020 13:58:17 +0000 Received: from localhost ([127.0.0.1]:51971 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ipYKH-0005wV-FG for submit@debbugs.gnu.org; Thu, 09 Jan 2020 08:58:17 -0500 Received: from lists.gnu.org ([209.51.188.17]:43572) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ipYKF-0005wM-B6 for submit@debbugs.gnu.org; Thu, 09 Jan 2020 08:58:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33144) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ipYKD-0005MY-KB for guix-patches@gnu.org; Thu, 09 Jan 2020 08:58:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ipYKB-00035y-Oo for guix-patches@gnu.org; Thu, 09 Jan 2020 08:58:12 -0500 Received: from mailrelay.tugraz.at ([129.27.2.202]:10311) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ipYKB-0002si-CM for guix-patches@gnu.org; Thu, 09 Jan 2020 08:58:11 -0500 Received: from localhost.localdomain (193-80-82-122.hdsl.highway.telekom.at [193.80.82.122]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 47tnkk4bVTz1DVPn for ; Thu, 9 Jan 2020 14:58:06 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 47tnkk4bVTz1DVPn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1578578286; bh=iWjSv37gdVjWFWfuXiGrbUnMfcJXyE6nu88giOwbWxQ=; h=From:To:Subject:Date:In-Reply-To:References:From; b=BzlJ979nEts5085alHzIAULge8cJnxAJjDrQx4jP8kfyC54xVOb9qhVfzr2cbtggy 2/cm8Wi/hH1HTMaR38sq4GUN2Gx/TaXHl9eSo/f+iKllzt5Tz1jrGe/d6SgHAj4ab8 cqaL76Z9vzYC1E+mZwDf6deG5dVry8DcWqZ3U6kM= From: Leo Prikler Date: Thu, 9 Jan 2020 14:57:44 +0100 Message-Id: <20200109135746.1993-2-leo.prikler@student.tugraz.at> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200109135746.1993-1-leo.prikler@student.tugraz.at> References: <20200109135746.1993-1-leo.prikler@student.tugraz.at> MIME-Version: 1.0 X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * gnu/services/sound (): New record. (pulseaudio-etc): New procedure. (pulseaudio-service-type): Update accordingly. --- gnu/services/sound.scm | 47 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/gnu/services/sound.scm b/gnu/services/sound.scm index aaca733729..f01d958ce7 100644 --- a/gnu/services/sound.scm +++ b/gnu/services/sound.scm @@ -34,6 +34,7 @@ #:export (alsa-configuration alsa-service-type + pulseaudio-configuration pulseaudio-service-type)) ;;; Commentary: @@ -106,19 +107,61 @@ ctl.!default { ;;; PulseAudio ;;; +(define-record-type* + pulseaudio-configuration make-pulseaudio-configuration + pulseaudio-configuration? + (package pulseaudio-package (default pulseaudio)) + (client-conf pulseaudio-client-conf (default '())) + (daemon-conf pulseaudio-daemon-conf (default '((flat-volumes no)))) + (default-script pulseaudio-default-script (default #f)) + (system-script pulseaudio-system-script (default #f))) + (define (pulseaudio-environment config) ;; Define this variable in the global environment such that ;; pulseaudio swh-plugins works. `(("LADSPA_PATH" . ,(file-append swh-plugins "/lib/ladspa")))) +(define (pulseaudio-conf-entry arg) + (match arg + ((key value) + (format #f "~a = ~s~%" key value)) + ((? string? _) + (string-append arg "\n")))) + +(define pulseaudio-etc + (match-lambda + (($ package client-conf daemon-conf + default-script system-script) + (let ((default.pa (if default-script + (apply mixed-text-file "default.pa" + default-script) + (file-append package "/etc/pulse/default.pa")))) + `(("pulse" + ,(file-union + "pulse" + `(("client.conf" + ,(apply mixed-text-file "client.conf" + (map pulseaudio-conf-entry client-conf))) + ("daemon.conf" + ,(apply mixed-text-file "daemon.conf" + "default-script-file = " default.pa "\n" + (map pulseaudio-conf-entry daemon-conf))) + ("default.pa" ,default.pa) + ("system.pa" + ,(if system-script + (apply mixed-text-file "system.pa" + system-script) + (file-append package "/etc/pulse/system.pa"))))))))))) + (define pulseaudio-service-type (service-type (name 'pulseaudio) (extensions (list (service-extension session-environment-service-type - pulseaudio-environment))) - (default-value #f) + pulseaudio-environment) + (service-extension etc-service-type pulseaudio-etc))) + (default-value (pulseaudio-configuration)) (description "Configure PulseAudio sound support."))) ;;; sound.scm ends here