# snd-modules
#
# This service is to load sound modules

start on runlevel 2

script

	# By default, an upstart task will automatically exit on an error. We
	# want the task to complete even if any of our commands return an error
	# so we turn off the exit-on-error option
	set +e
    
	# We insmod the sound modules (in dependency order) to prevent the overhead of
	# multiple modprobe processes
	/sbin/insmod /lib/modules/`uname -r`/kernel/sound/soundcore.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/acore/snd.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/acore/seq/snd-seq-device.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/acore/snd-timer.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/acore/seq/snd-seq.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/acore/oss/snd-mixer-oss.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/acore/snd-page-alloc.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/acore/snd-pcm.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/acore/snd-hwdep.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/acore/snd-rawmidi.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/acore/seq/snd-seq-midi-event.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/pci/hda/snd-hda-intel.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/acore/oss/snd-pcm-oss.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/acore/seq/snd-seq-dummy.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/acore/seq/oss/snd-seq-oss.ko
	/sbin/insmod /lib/modules/`uname -r`/ubuntu/sound/alsa-driver/acore/seq/snd-seq-midi.ko

	# Now that sound modules have been loaded, run amixer commands to set up
	# default capture settings
	/usr/bin/amixer set "Input Source" "Front Mic"
	/usr/bin/amixer set "Capture" cap
	/usr/bin/amixer set "Capture" 80%
	/usr/bin/amixer set "Digital" 80%
	/usr/bin/amixer set "Front" 100%
	/usr/bin/amixer set "Headphone" 100%
	/usr/bin/amixer set "Speaker" 100%

	# Re-enable the exit-on-error option now that we're done
	set -e
    
end script
