public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download: 
* 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