#!/bin/sh
# Taken from alsasound with mods for TC
start() {
drivers=`lspci -k | grep -e "Kernel modules" | grep -e "snd" | cut -f 2 -d :`
  for i in $drivers; do
    if [ "$i" != off ]; then
      echo -n "Starting sound driver: $i "
	echo " "
      modprobe $i && module_loaded=1
    fi
  done


modprobe snd-pcm-oss > /dev/null
modprobe snd-seq-oss > /dev/null
modprobe snd-mixer-oss > /dev/null


  if [ -f /etc/asound.state ]; then
    /usr/local/sbin/alsactl restore
  else
/usr/local/bin/amixer -s -q <<EOF
set Master 75% unmute
set Master -12dB
set 'Master Mono' 75% unmute
set 'Master Mono' -12dB
set Front 75% unmute
set Front -12dB
set PCM 90% unmute
set PCM 0dB
mixer Synth 90% unmute
mixer Synth 0dB
mixer CD 90% unmute
mixer CD 0dB
# mute mic
set Mic 0% mute
# ESS 1969 chipset has 2 PCM channels
set PCM,1 90% unmute
set PCM,1 0dB
# Trident/YMFPCI/emu10k1
set Wave 100% unmute
set Music 100% unmute
set AC97 100% unmute
# CS4237B chipset:
set 'Master Digital' 75% unmute
# Envy24 chips with analog outs
set DAC 90% unmute
set DAC -12dB
set DAC,0 90% unmute
set DAC,0 -12dB
set DAC,1 90% unmute
set DAC,1 -12dB
# some notebooks use headphone instead of master
set Headphone 75% unmute
set Headphone -12dB
set Playback 100% unmute
# turn off digital switches
set "SB Live Analog/Digital Output Jack" off
set "Audigy Analog/Digital Output Jack" off
EOF
fi
}

stop() {



  /usr/local/sbin/alsactl store

  lsmod | grep -E "^snd" | grep -Ev "(snd-page-alloc|snd_page_alloc)" | while read line; do \
     /sbin/rmmod `echo $line | cut -d ' ' -f 1`; \
  done
  
  /sbin/rmmod soundcore 2> /dev/null
  /sbin/rmmod gameport 2> /dev/null

 
}

case "$1" in
  start)
	start
        ;;
  stop)
        stop
        ;;
  *)
        echo "Usage: alsasound {start|stop}"
        exit 1
esac
