diff options
Diffstat (limited to 'extra/alsa-utils')
-rwxr-xr-x | extra/alsa-utils/90alsa | 13 | ||||
-rw-r--r-- | extra/alsa-utils/PKGBUILD | 42 | ||||
-rwxr-xr-x | extra/alsa-utils/alsa | 62 | ||||
-rw-r--r-- | extra/alsa-utils/alsa.conf.d | 15 | ||||
-rw-r--r-- | extra/alsa-utils/alsaconf.patch | 32 |
5 files changed, 164 insertions, 0 deletions
diff --git a/extra/alsa-utils/90alsa b/extra/alsa-utils/90alsa new file mode 100755 index 000000000..9f18bef24 --- /dev/null +++ b/extra/alsa-utils/90alsa @@ -0,0 +1,13 @@ +#!/bin/sh +# +# 90alsa: suspend/wakeup ALSA devices + +case "$1" in +hibernate|suspend) +;; +thaw|resume) +aplay -d 1 /dev/zero +;; +*) exit $NA +;; +esac diff --git a/extra/alsa-utils/PKGBUILD b/extra/alsa-utils/PKGBUILD new file mode 100644 index 000000000..f71ae7d95 --- /dev/null +++ b/extra/alsa-utils/PKGBUILD @@ -0,0 +1,42 @@ +# $Id: PKGBUILD 110704 2011-02-21 18:04:49Z tpowa $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> +# Contributor: judd <jvinet@zeroflux.org> + +pkgname=alsa-utils +pkgver=1.0.24.2 +pkgrel=1 +pkgdesc="An alternative implementation of Linux sound support" +arch=('i686' 'x86_64') +url="http://www.alsa-project.org" +#can not use >=$pkgver due to use of letters in alsa-lib update versioning +depends=("alsa-lib>1.0.24" 'dialog' 'pciutils' 'ncurses' 'psmisc') +makedepends=('xmlto' 'docbook-xsl') +license=('GPL') +source=(ftp://ftp.alsa-project.org/pub/utils/$pkgname-${pkgver}.tar.bz2 + alsa + alsaconf.patch + alsa.conf.d + 90alsa) +backup=(etc/conf.d/alsa) + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + patch -Np1 -i ../alsaconf.patch + ./configure --prefix=/usr + make +} + +package() { + cd ${srcdir}/${pkgname}-${pkgver} + make DESTDIR=${pkgdir} install + install -D -m755 ../alsa ${pkgdir}/etc/rc.d/alsa + install -D -m644 ../alsa.conf.d ${pkgdir}/etc/conf.d/alsa + install -D -m755 ../90alsa ${pkgdir}/etc/pm/sleep.d/90alsa + # dir where to save ALSA state + install -d ${pkgdir}/var/lib/alsa +} +md5sums=('8238cd57cb301d1c36bcf0ecb59ce6b2' + '2ba1a1cbf653bf1a69f8a720fd6549da' + '62ebef77d5617d0036012cc541dcf23c' + '4c8ae9f976c7df5e271a4cb91ccc7767' + '529216f6a46e61a546640e08ea7a0879') diff --git a/extra/alsa-utils/alsa b/extra/alsa-utils/alsa new file mode 100755 index 000000000..1e7b57fa3 --- /dev/null +++ b/extra/alsa-utils/alsa @@ -0,0 +1,62 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/conf.d/alsa +. /etc/rc.d/functions + +case "$1" in + start) + stat_busy "Restoring ALSA Levels" + if [[ ! -e /var/lib/alsa/asound.state ]]; then + /usr/sbin/alsactl $ALSA_ARGS store || { stat_fail; exit 1; } + fi + if /usr/sbin/alsactl $ALSA_ARGS restore; then + stat_done + add_daemon alsa + else + stat_fail + exit 1 + fi + + POWERSAVE=${POWERSAVE:-0} + if [[ -e /sys/module/snd_ac97_codec/parameters/power_save ]] \ + && (( $POWERSAVE )); then + echo $POWERSAVE > /sys/module/snd_ac97_codec/parameters/power_save + [[ -c /dev/dsp ]] && echo 1 > /dev/dsp + fi + if [[ -e /sys/module/snd_hda_intel/parameters/power_save ]] \ + && (( $POWERSAVE )); then + echo $POWERSAVE > /sys/module/snd_hda_intel/parameters/power_save + [[ -c /dev/dsp ]] && echo 1 > /dev/dsp + fi + ;; + stop) + SAVE_VOLUME=${SAVE_VOLUME:-yes} + if [[ "$SAVE_VOLUME" = "yes" ]]; then + stat_busy "Saving ALSA Levels" + /usr/sbin/alsactl $ALSA_ARGS store || { stat_fail; exit 1; } + else + stat_busy "Stopping ALSA" + fi + if [ "$MUTE_VOLUME" == "yes" ]; then + /usr/bin/amixer -q set Master 0 mute || { stat_fail; exit 1; } + fi + stat_done + rm_daemon alsa + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + force-restart) + stat_busy "Trying to TERM or KILL processes that are blocking ALSA..." + FILES="$(ls -1 /dev/snd/* | grep -vi control)" + fuser -k -SIGTERM $FILES + fuser -k $FILES + stat_done + $0 restart + ;; + *) + echo "usage: $0 {start|stop|restart|force-restart}" +esac diff --git a/extra/alsa-utils/alsa.conf.d b/extra/alsa-utils/alsa.conf.d new file mode 100644 index 000000000..bd50dcca2 --- /dev/null +++ b/extra/alsa-utils/alsa.conf.d @@ -0,0 +1,15 @@ +# Arguments for alsactl +# example: ALSA_ARGS="--file /var/lib/alsa/asound.state" +ALSA_ARGS="--file /var/lib/alsa/asound.state" + +# Enables powersaving mode for AC97 and hda_intel audio chips. +# Set to 1 to enable powersaving. +# Set to 0 to disable powersaving (default). +POWERSAVE=0 + +# Whether to save volume levels when stopped ("yes" or "no"). +SAVE_VOLUME="yes" + +# Whether to mute the master volume when stopped ("yes" or "no"). +# Useful for bad audio cards which make a noise on system poweroff. +MUTE_VOLUME="no" diff --git a/extra/alsa-utils/alsaconf.patch b/extra/alsa-utils/alsaconf.patch new file mode 100644 index 000000000..ec79fe93f --- /dev/null +++ b/extra/alsa-utils/alsaconf.patch @@ -0,0 +1,32 @@ +diff -Naur alsa-utils-1.0.9a-orig/alsaconf/alsaconf.in alsa-utils-1.0.9a/alsaconf/alsaconf.in +--- alsa-utils-1.0.9a-orig/alsaconf/alsaconf.in 2005-03-24 00:24:52.000000000 -0800 ++++ alsa-utils-1.0.9a/alsaconf/alsaconf.in 2005-07-18 09:25:02.000000000 -0700 +@@ -58,6 +58,8 @@ + distribution="redhat" + elif test -f /etc/fedora-release && grep -q "Fedora" /etc/fedora-release; then + distribution="fedora" ++elif test -f /etc/arch-release && grep -q "Arch" /etc/arch-release; then ++ distribution="arch" + elif [ -f /etc/slackware-version -o -f /etc/slamd64-version ]; then + distribution="slackware" + else +@@ -382,6 +384,8 @@ + rcalsasound=/etc/rc.d/init.d/alsasound + elif [ -x /etc/init.d/alsa ]; then + rcalsasound=/etc/init.d/alsa ++elif [ -x /etc/rc.d/alsa ]; then ++ rcalsasound=/etc/rc.d/alsa + else + rcalsasound=rcalsasound + fi +--- alsa-utils-1.0.9a-orig/alsaconf/alsaconf.in 2010-01-03 19:44:08.000000000 +0100 ++++ alsa-utils-1.0.9a-orig/alsaconf/alsaconf.in 2010-01-03 19:44:08.000000000 +0100 +@@ -315,7 +315,7 @@ + 3.[789]*) + ;; + *) +- cfgout="/etc/modprobe.d/sound" ++ cfgout="/etc/modprobe.d/sound.conf" + cfgoldout="" + ;; + esac |