* Re: [gentoo-dev] RC script review request for alsa-driver
@ 2002-04-27 20:15 99% ` Martin Schlemmer
0 siblings, 0 replies; 1+ results
From: Martin Schlemmer @ 2002-04-27 20:15 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 515 bytes --]
On Sat, 2002-04-27 at 21:29, Arcady Genkin wrote:
> Who's our RC-scripts guy, I forget?
>
> I'd like to request a quick review of the startup script for
> the alsa-driver package. The file is:
>
> /usr/portage/media-sound/alsa-driver/files/alsasound
>
> I adopted it from the script, provided with the alsa-driver tarball.
>
This should be a start ... some cosmetic cleanups might be
needed.
Greetings,
--
Martin Schlemmer
Gentoo Linux Developer, Desktop Team Developer
Cape Town, South Africa
[-- Attachment #2: alsasound --]
[-- Type: text/plain, Size: 3897 bytes --]
#!/sbin/runscript
# $Header: /home/cvsroot/gentoo-x86/media-sound/alsa-driver/files/alsasound,v 1.4 2002/04/27 20:07:06 agenkin Exp $
#
# alsasound This shell script takes care of starting and stopping
# the ALSA sound driver.
#
# This script requires /usr/sbin/alsactl and /usr/bin/aconnect programs
# from the alsa-utils package.
#
# Copyright (c) by Jaroslav Kysela <perex@suse.cz>
#
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
alsactl=/usr/sbin/alsactl
asoundcfg=/etc/asound.state
aconnect=/usr/bin/aconnect
alsascrdir=/etc/alsa.d
depend() {
need modules
provide alsa-modules
}
start() {
# Start driver if it isn't already up.
if [ -d /proc/asound ]
then
eerror "ALSA driver is already running."
return 1
fi
#
# insert all sound modules
#
ebegin "Starting ALSA"
drivers="`/sbin/modprobe -c | \
grep -E "^[[:space:]]*alias[[:space:]]+snd-card-[[:digit:]]" | \
awk '{print $3}'`"
for i in ${drivers}
do
if [ "${i}" != "off" ]
then
einfon "Starting sound driver: $i "
/sbin/modprobe $i
eend 0
fi
done
#
# insert sequencer modules
#
if [ x"${START_ALSA_SEQ}" = xyes -a -r /proc/asound/seq/drivers ]
then
t="`cut -d , -f 1 /proc/asound/seq/drivers`"
if [ "x${t}" != "x" ]
then
/sbin/modprobe ${t}
fi
fi
#
# restore driver settings
#
if [ -d /proc/asound ]
then
if [ ! -r ${asoundcfg} ]
then
ewarn "No mixer config in ${asoundcfg}, you have to unmute your card!"
else
if [ -x ${alsactl} ]
then
${alsactl} -f ${asoundcfg} restore
else
eerror "ERROR: alsactl not found!"
fi
fi
fi
#
# run card-dependent scripts
for i in ${drivers}
do
t=${i##snd-}
if [ -x ${alsascrdir}/${t} ]
then
${alsascrdir}/${t}
fi
done
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/*"
fuser -k ${ossdevs} ${alsadevs} &> /dev/null
#
# remove all sequencer connections if any
#
if [ -f /proc/asound/seq/clients -a -x ${aconnect} ]
then
${aconnect} --removeall
fi
}
stop() {
if [ ! -d /proc/asound ]
then
eerror "ALSA driver is not loaded."
return 0
fi
ebegin "Stopping ALSA"
# Call terminate function first to kill the processes, holding the drivers.
terminate
#
# store driver settings
#
if [ -x ${alsactl} ]
then
${alsactl} -f ${asoundcfg} store
else
ewarn -n "WARNING: !!!alsactl not found!!! "
fi
#
# remove all sound modules
#
/sbin/lsmod | grep -E "^snd" | grep -v "snd-rme9652-mem" | while read line; do \
/sbin/rmmod `echo $line | cut -d ' ' -f 1`; \
done
# remove the 2.2 soundcore module (if possible)
/sbin/rmmod soundcore 2> /dev/null
/sbin/rmmod gameport 2> /dev/null
eend 0
}
^ permalink raw reply [relevance 99%]
Results 1-1 of 1 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2002-04-27 19:29 [gentoo-dev] RC script review request for alsa-driver Arcady Genkin
2002-04-27 20:15 99% ` Martin Schlemmer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox