The function puts the handle to the result configuration node at the address specified by result.

Returns:

A non-negative value if successful, otherwise a negative error code.

If config has arguments (defined by a child with id @args), this function replaces any string node beginning with $ with the respective argument value, or the default argument value, or nothing. Furthermore, any functions are evaluated (see snd_config_evaluate). The resulting copy of config is returned in result.

When result != NULL, the function puts the handle to the node found at the address specified by result.

Returns:

Zero if successful, otherwise a negative error code.

This function searches for a child node of config that is identified by key, which contains either the id of a direct child node of config, or a series of ids, separated with dots, where each id specifies a node that is contained in the previous compound node.

In the following example, the comment after each node shows the search key to find that node, assuming that config is a handle to the compound node with id config:

config {

a 42 # "a"

b { # "b"

c "cee" # "b.c"

d { # "b.d"

e 2.71828 # "b.d.e"

}

}

}

Errors:

-ENOENT

An id in key does not exist.

-ENOENT

config or one of its child nodes to be searched is not a compound node.

A list of configuration file names, delimited with ':'. If cfgs is NULL, the default global configuration file is used.

Returns:

0 if _top was up to date, 1 if the configuration files have been reread, otherwise a negative error code.

The variables pointed to by _top and _update can be initialized to NULL before the first call to this function. The private update information holds information about all used configuration files that allows this function to detects changes to them; this data can be freed with snd_config_update_free.

The global configuration files are specified in the environment variable ALSA_CONFIG_PATH.

Warning:

If the configuration tree is reread, all string pointers and configuration node handles previously obtained from this tree become invalid.

Errors:

Any errors encountered when parsing the input or returned by hooks or functions.