A function is defined with the id @func
and the function name. All other values in the current compound are used as configuration for the function. If the compound func.<function_name> is defined in the root node, then the library and function from this compound configuration are used, otherwise 'snd_func_' is prefixed to the string and code from the ALSA library is used. The definition of a function looks like:
func.remove_first_char { lib "/usr/lib/libasoundextend.so" func "extend_remove_first_char" }