# This is the toplevel configuration for 'alsactl init'.
# See 'man alsactl_init' for syntax.

# set root device directory in sysfs for soundcard for ATTR{} command
CONFIG{sysfs_device}="/class/sound/card$cardinfo{card}/device"
ACCESS!="$sysfsroot$config{sysfs_device}", \
	CONFIG{sysfs_device}="/class/sound/controlC$cardinfo{card}/device"

# test for extra commands
ENV{CMD}=="help", INCLUDE="help", GOTO="00main_end"
ENV{CMD}=="info", INCLUDE="info", GOTO="00main_end"
ENV{CMD}=="default", INCLUDE="default", GOTO="00main_end"
ENV{CMD}=="test", INCLUDE="test", GOTO="00main_end"
ENV{CMD}=="*", ERROR="Unknown command '$env{CMD}'\n", GOTO="00main_end"

# include files with real configuration
#
# steps are:
#   1) look for preinit subdirectory and parse all files in it
#   2) if RESULT=="skip", skip ALSA standard configuration files
#   3) do ALSA standard configuration
#   4) look for postinit subdirectory and parse all files in it
#   5) if RESULT!="true", initialize hardware using a guess method,
#      print an error message and return with exit code 99
#   6) return with exit code 0 (success)
#

RESULT="unknown"
ACCESS=="preinit", INCLUDE="preinit"
RESULT=="skip", GOTO="init_end"

# real ALSA configuration database
CARDINFO{driver}=="HDA-Intel", INCLUDE="hda", GOTO="init_end"
CARDINFO{driver}=="CA0106", INCLUDE="ca0106", GOTO="init_end"
CARDINFO{driver}=="Test", INCLUDE="test", GOTO="init_end"

LABEL="init_end"
ACCESS=="postinit", INCLUDE="postinit"
RESULT=="true", GOTO="00main_end"
ERROR="Found hardware: \"$cardinfo{driver}\" \"$cardinfo{mixername}\" \"$cardinfo{components}\" \"$attr{subsystem_vendor}\" \"$attr{subsystem_device}\"\n"
ERROR="Hardware is initialized using a generic method\n"
INCLUDE="default"
EXIT="99"

#
# label identifying end of main file
#

LABEL="00main_end"
