#!/bin/bash

#
# configure sound card
#

### BEGIN INIT INFO
# Provides:          sc_hardware_audio
# Required-Start:    $local_fs
# Required-Stop:     $null
# Should-Start:      $remote_fs hwscan sc_hardware_prepare
# Should-Stop:       $null
# Default-Start:     2 3 5
# Default-Stop:
# Description:       configure sound system
### END INIT INFO

. /etc/rc.status
rc_reset

# source SmartClient config
test -r /etc/smartclient/sc_hardware && . /etc/smartclient/sc_hardware

statusfile=/var/tmp/sc_hardware_audio
HWINFO_TMP="/var/tmp/hwinfo_sound"

do_sound_card_config()
{
    hwinfo --sound > $HWINFO_TMP
    driver=$( cat $HWINFO_TMP | grep 'Activation Cmd:.*snd' | tr -d \" )
    set dummy $driver
    driver=$6
    
    cat >/etc/modprobe.d/sound <<EOF
# sc_hardware_audio
options $driver enable=1 index=0
alias snd-card-0 $driver
EOF

    SYSFSBUSID=`cat $HWINFO_TMP | sed -n -e 's/SysFS BusID: //p' | head -1 | sed 's/ //g'`
    # PCI bus is assumed 
    BUSID="bus-pci-$SYSFSBUSID"
    HWCFG_FILE="/etc/sysconfig/hardware/hwcfg-$BUSID"
    
    (
            echo "# sc_hardware_audio"
            echo "MODULE='$driver'"
            echo "MODULE_OPTIONS=''"
            echo "STARTMODE='auto'"
    ) >"$HWCFG_FILE"

    echo $driver >$statusfile
}



case "$1" in
    start)
        echo -n "SmartClient audio configuration"

        if [ -f $statusfile ]; then
            rc_status -s
        else
            do_sound_card_config
            rc_status -v
        fi
        ;;
    stop)
        ;;
	
    restart)
	rm -f $statusfile
	$0 start
	;;
    *)
	echo "Usage: $0 {start|stop|restart}"
	exit 1
esac
