diff options
author | 2004-06-08 02:34:45 +0000 | |
---|---|---|
committer | 2004-06-08 02:34:45 +0000 | |
commit | 331d5b72e9fa70ab3731e02c28151bd2b48171b1 (patch) | |
tree | 33cd3062d7418d00ecf86be028f3979d9f7ee410 /media-sound/alsa-utils | |
parent | stable on amd64 (diff) | |
download | historical-331d5b72e9fa70ab3731e02c28151bd2b48171b1.tar.gz historical-331d5b72e9fa70ab3731e02c28151bd2b48171b1.tar.bz2 historical-331d5b72e9fa70ab3731e02c28151bd2b48171b1.zip |
Small beautification changes to init script.
Diffstat (limited to 'media-sound/alsa-utils')
-rw-r--r-- | media-sound/alsa-utils/ChangeLog | 5 | ||||
-rw-r--r-- | media-sound/alsa-utils/Manifest | 22 | ||||
-rw-r--r-- | media-sound/alsa-utils/files/alsasound | 200 |
3 files changed, 130 insertions, 97 deletions
diff --git a/media-sound/alsa-utils/ChangeLog b/media-sound/alsa-utils/ChangeLog index 24028276a059..f4511e8f6297 100644 --- a/media-sound/alsa-utils/ChangeLog +++ b/media-sound/alsa-utils/ChangeLog @@ -1,6 +1,9 @@ # ChangeLog for media-sound/alsa-utils # Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-sound/alsa-utils/ChangeLog,v 1.55 2004/05/31 05:00:04 eradicator Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-sound/alsa-utils/ChangeLog,v 1.56 2004/06/08 02:34:45 eradicator Exp $ + + 07 Jun 2004; Jeremy Huddleston <eradicator@gentoo.org> files/alsasound: + Small beautification changes to init script. *alsa-utils-1.0.5 (30 May 2004) diff --git a/media-sound/alsa-utils/Manifest b/media-sound/alsa-utils/Manifest index 914729f32783..23b52b861b19 100644 --- a/media-sound/alsa-utils/Manifest +++ b/media-sound/alsa-utils/Manifest @@ -1,15 +1,15 @@ -MD5 27c2e4580bbf6205adcea7729a5d8034 alsa-utils-0.9.2.ebuild 918 -MD5 c01e2ebca94ad9bec046fa1892d20a1d alsa-utils-1.0.4.ebuild 1834 -MD5 13a5bd581f45f973053558d110a9d5a3 alsa-utils-0.9.0_rc2.ebuild 933 -MD5 6f3ee27370fe01f303df374274ea86c8 alsa-utils-1.0.3.ebuild 1719 -MD5 02f563a274eed85780c02580dba6ee1d alsa-utils-0.9.8.ebuild 1771 -MD5 72d78c6d9aa3ed694a7b2fac133e97f8 alsa-utils-0.5.10-r8.ebuild 975 -MD5 9879fc3facfe9a30b132ccc7c2ae1f38 alsa-utils-1.0.5.ebuild 1737 -MD5 7325a7d14057751a3e06d95cdd686610 ChangeLog 9453 +MD5 0a3ad1402c1a17018d3c37b34fbd4b7d alsa-utils-0.9.2.ebuild 794 +MD5 e7a2004346c34727c16f0428b5c4034c alsa-utils-1.0.4.ebuild 1801 +MD5 c7def99ae6079be0bcefcf120fbf9af5 alsa-utils-0.9.0_rc2.ebuild 827 +MD5 22cca6913d00252a0020a67365c7f098 alsa-utils-1.0.3.ebuild 1686 +MD5 262115edcd0bc73f4d4a4a4725a13948 alsa-utils-0.9.8.ebuild 1645 +MD5 21cca59866032a8911f3390d5d787c11 alsa-utils-0.5.10-r8.ebuild 941 +MD5 90c029af926527eba22793e077d88341 alsa-utils-1.0.5.ebuild 1704 +MD5 a3a8286be8297480c8fa34b512dffd7a ChangeLog 9574 MD5 a1eaeb2ae801daeb712c90c060e922dc metadata.xml 158 -MD5 849ba596e61a5b0ea0ef6b91726737be alsa-utils-1.0.2.ebuild 1726 +MD5 b2717443eb0404be2e474f4ecf70c82a alsa-utils-1.0.2.ebuild 1693 MD5 d331cfdb897b5cd5b0a3eca37ff47b9b files/alsa-utils-1.0.4-alsaconf.patch 1182 -MD5 f8aff370f9c369682ac793f5b3f4886e files/alsa-modules.conf-rc 1158 +MD5 4d91cb34977dfd90022f085560ea00a9 files/alsa-modules.conf-rc 1157 MD5 59a93bf64737644e4001cbb6ad5387b4 files/digest-alsa-utils-0.9.0_rc2 71 MD5 55414f65ffecf5f44fa35295dae8bf19 files/digest-alsa-utils-0.9.2 69 MD5 c393c831cb8bcda375cd4690e85b3495 files/digest-alsa-utils-0.9.8 69 @@ -20,4 +20,4 @@ MD5 c6aff50de146998a737abed55b3dd9f1 files/digest-alsa-utils-1.0.5 69 MD5 f20045fc395596290d5a6d807ba311fc files/alsa-utils-0.5.10-aplay-destdir.diff 626 MD5 dcc66ee6a9db24006a4158e2be0da3f2 files/alsa-0.5.10 392 MD5 a82c4c173c1d617bae9967438c659bac files/digest-alsa-utils-0.5.10-r8 70 -MD5 05244869ff11048008b6e9549fbf69d8 files/alsasound 5476 +MD5 09d13d4431ea046e482470e70cc55130 files/alsasound 5753 diff --git a/media-sound/alsa-utils/files/alsasound b/media-sound/alsa-utils/files/alsasound index 5bdb1d8875ac..22b80ef69062 100644 --- a/media-sound/alsa-utils/files/alsasound +++ b/media-sound/alsa-utils/files/alsasound @@ -1,5 +1,5 @@ #!/sbin/runscript -# $Header: /var/cvsroot/gentoo-x86/media-sound/alsa-utils/files/alsasound,v 1.12 2004/03/31 03:10:07 eradicator Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-sound/alsa-utils/files/alsasound,v 1.13 2004/06/08 02:34:45 eradicator Exp $ # # Gentoo users: add this script to 'boot' run level. # ================================================== @@ -31,6 +31,10 @@ # John Mylchreest <johnm@gentoo.org> # July 29, 2003 +# Rewritten for better support for built-in drivers +# Jeremy Huddleston <eradicator@gentoo.org> +# 2004.06.02 + alsactl=/usr/sbin/alsactl asoundcfg=/etc/asound.state aconnect=/usr/bin/aconnect @@ -43,74 +47,96 @@ depend() { provide alsa-modules } -start() { - if [ -d /proc/asound ] && [ -z "$(grep ' no soundcards ' /proc/asound/cards)" ] ; then - ebegin "ALSA Detected" - else - ebegin "Loading ALSA drivers" - - DRIVERS="$(modprobe -c | grep -E "^[[:space:]]*alias[[:space:]]+snd-card-[[:digit:]]" | awk '{print $3}')" - - if modprobe -c | grep -q "snd.*oss$" ; then - # Test for use of OSS - einfo "Using ALSA OSS emulation" - OSS="$(modprobe -l | grep "snd.*oss" | sed -e "s:\/.*\/::" -e "s:\..*::")" - # Add oss modules to list - for i in ${OSS} - do - DRIVERS="${i} ${DRIVERS}" - done - fi - - # Fall back on the automated aliases if we don't have ALSA configured properly... - if [ -z "${DRIVERS}" ]; then - ewarn "Could not detect custom ALSA settings. Loading all detected alsa drivers." - DRIVERS="$(modprobe -c | grep pci: | awk '{ print $3 }' | grep snd.* | sort | uniq)" - fi - - [ -z "${DRIVERS}" ] && eerror "Unable to find any ALSA drivers. Have you compiled alsa-drivers correctly?" +load_modules() { + DRIVERS="$(modprobe -c | grep -E "^[[:space:]]*alias[[:space:]]+snd-card-[[:digit:]]" | awk '{print $3}')" - for DRIVER in ${DRIVERS} + if modprobe -c | grep -q "snd.*oss$" ; then + # Test for use of OSS + einfo "Using ALSA OSS emulation" + OSS="$(modprobe -l | grep "snd.*oss" | sed -e "s:\/.*\/::" -e "s:\..*::")" + # Add oss modules to list + for i in ${OSS} do - if [ ! "${DRIVER}" = off ] && - [ -z `cut -d' ' -f1 /proc/modules | egrep "^${DRIVER}\$"` ] && - [ -z `cut -d' ' -f1 /proc/modules | egrep "^${DRIVER//-/_}\$"` ]; then - einfo "Loading: ${DRIVER}" - /sbin/modprobe ${DRIVER} - fi + DRIVERS="${i} ${DRIVERS}" done + fi - sleep 1 - - if [ -f /proc/asound/seq/drivers ] ; then - # We want to ensure snd-seq is loaded as it is needed for things like timidity even if - # we don't use a real sequencer. - SEQUENCERS="snd-seq $(awk -F, '$2~/^empty$/ {print $1}' /proc/asound/seq/drivers)" - for SEQUENCER in ${SEQUENCERS} - do - if [ -z `cut -d' ' -f1 /proc/modules | egrep "^${SEQUENCER}\$"` ] && - [ -z `cut -d' ' -f1 /proc/modules | egrep "^${SEQUENCER//-/_}\$"` ]; then - einfo "Loading: ${SEQUENCER}" - [ -n "${SEQUENCER}" ] && /sbin/modprobe ${SEQUENCER} - fi - done + # Fall back on the automated aliases if we don't have ALSA configured properly... + if [ -z "${DRIVERS}" ]; then + ewarn "Could not detect custom ALSA settings. Loading all detected alsa drivers." + DRIVERS="$(modprobe -c | grep pci: | awk '{ print $3 }' | grep snd.* | sort | uniq)" + fi + + [ -z "${DRIVERS}" ] && eerror "Unable to find any ALSA drivers. Have you compiled alsa-drivers correctly?" + + for DRIVER in ${DRIVERS} + do + if [ ! "${DRIVER}" = off ] && + [ -z `cut -d' ' -f1 /proc/modules | egrep "^${DRIVER}\$"` ] && + [ -z `cut -d' ' -f1 /proc/modules | egrep "^${DRIVER//-/_}\$"` ]; then + einfo "Loading: ${DRIVER}" + /sbin/modprobe ${DRIVER} fi + done - einfo "Running card-dependent scripts" - for DRIVER in ${DRIVERS} + sleep 1 + + if [ -f /proc/asound/seq/drivers ] ; then + # We want to ensure snd-seq is loaded as it is needed for things like timidity even if + # we don't use a real sequencer. + SEQUENCERS="snd-seq $(awk -F, '$2~/^empty$/ {print $1}' /proc/asound/seq/drivers)" + for SEQUENCER in ${SEQUENCERS} do - TMP=${DRIVER##snd-} - TMP=${TMP##snd_} - [ -x "${alsascrdir}/${TMP}" ] && ${alsascrdir}/${TMP} + if [ -z `cut -d' ' -f1 /proc/modules | egrep "^${SEQUENCER}\$"` ] && + [ -z `cut -d' ' -f1 /proc/modules | egrep "^${SEQUENCER//-/_}\$"` ]; then + einfo "Loading: ${SEQUENCER}" + [ -n "${SEQUENCER}" ] && /sbin/modprobe ${SEQUENCER} + fi done - - [ ! -d /proc/asound ] && eerror "ERROR: Failed to load necessary drivers" fi + + einfo "Running card-dependent scripts" + for DRIVER in ${DRIVERS} + do + TMP=${DRIVER##snd-} + TMP=${TMP##snd_} + [ -x "${alsascrdir}/${TMP}" ] && ${alsascrdir}/${TMP} + done + + [ ! -d /proc/asound ] && eerror "ERROR: Failed to load necessary drivers" +} + +unload_modules() { + LOADED_MODULES="$(/sbin/lsmod | grep -E "^snd" | awk '{print $1}')" + for MODULE in ${LOADED_MODULES} + do + /sbin/rmmod ${MODULE} 2> /dev/null + done + /sbin/rmmod soundcore 2> /dev/null + /sbin/rmmod gameport 2> /dev/null +} + +terminate() { + # + # Kill processes holding open sound devices + # + # DEVS=`find /dev/ -follow -type c -maxdepth 1 -print 2>/dev/null | xargs ls -dils | grep "1*1[46]," | cut -d: -f2 | cut -d" " -f2; echo /proc/asound/dev/*` + ossdevs="/dev/admmidi? /dev/adsp? /dev/amidi? /dev/audio* /dev/dmfm* \ + /dev/dmmidi? /dev/dsp* /dev/dspW* /dev/midi0? /dev/mixer? /dev/music \ + /dev/patmgr? /dev/sequencer* /dev/sndstat" + alsadevs="/proc/asound/dev/* /dev/sound/* /dev/snd/*" + fuser -k $ossdevs $alsadevs 2> /dev/null 1>/dev/null - einfo "Restoring Mixer Levels" + # + # remove all sequencer connections if any + # + [ -f /proc/asound/seq/clients -a -x $aconnect ] && $aconnect --removeall +} + +restore_mixer() { if [ ! -r $asoundcfg ]; then ewarn "No mixer config in $asoundcfg, you have to unmute your card!" - eend 1 + return 1 elif [ -x $alsactl ]; then CARDS="$(cat /proc/asound/cards | awk '/: / { print $1 }')" for CARDNUM in ${CARDS} @@ -123,8 +149,33 @@ start() { done else eerror -e "ERROR: Cannot find alsactl, did you forget to install media-sound/alsa-utils?" - eend 1 + return 1 + fi + + return 0 +} + +save_mixer() { + if [ -x $alsactl ]; then + $alsactl -f $asoundcfg store + else + eerror -e "ERROR: Cannot find alsactl, did you forget to install media-sound/alsa-utils?" + return 1 + fi + + return 0 +} + +start() { + if [ -d /proc/asound ] && [ -z "$(grep ' no soundcards ' /proc/asound/cards)" ] ; then + ebegin "ALSA Detected" + else + ebegin "Loading ALSA drivers" + load_modules fi + + einfo "Restoring Mixer Levels" + restore_mixer eend 0 } @@ -136,38 +187,17 @@ stop() { ebegin "Unloading ALSA" terminate + einfo "Storing ALSA Mixer Levels" - if [ -x $alsactl ]; then - $alsactl -f $asoundcfg store - else - eerror -e "ERROR: Cannot find alsactl, did you forget to install media-sound/alsa-utils?" + if ! save_mixer; then eend 1 fi - LOADED_MODULES="$(/sbin/lsmod | grep -E "^snd" | awk '{print $1}')" einfo "Unloading modules" - for MODULE in ${LOADED_MODULES} - do - /sbin/rmmod ${MODULE} 2> /dev/null - done - /sbin/rmmod soundcore 2> /dev/null - /sbin/rmmod gameport 2> /dev/null + if ! unload_modules; then + eend 1 + fi + eend 0 } -terminate() { - # - # Kill processes holding open sound devices - # - # DEVS=`find /dev/ -follow -type c -maxdepth 1 -print 2>/dev/null | xargs ls -dils | grep "1*1[46]," | cut -d: -f2 | cut -d" " -f2; echo /proc/asound/dev/*` - ossdevs="/dev/admmidi? /dev/adsp? /dev/amidi? /dev/audio* /dev/dmfm* \ - /dev/dmmidi? /dev/dsp* /dev/dspW* /dev/midi0? /dev/mixer? /dev/music \ - /dev/patmgr? /dev/sequencer* /dev/sndstat" - alsadevs="/proc/asound/dev/* /dev/sound/* /dev/snd/*" - fuser -k $ossdevs $alsadevs 2> /dev/null 1>/dev/null - - # - # remove all sequencer connections if any - # - [ -f /proc/asound/seq/clients -a -x $aconnect ] && $aconnect --removeall -} |