ALSA project - the C library reference
|
Configuration helper functions. More...
Macros | |
#define | ALSA_CONFIG_PATH_VAR "ALSA_CONFIG_PATH" |
Functions | |
int | snd_config_substitute (snd_config_t *dst, snd_config_t *src) |
Substitutes one configuration node to another. More... | |
int | snd_config_get_type_ascii (const char *ascii, snd_config_type_t *type) |
Converts an ASCII string to a configuration node type. More... | |
snd_config_type_t | snd_config_get_type (const snd_config_t *config) |
Returns the type of a configuration node. More... | |
int | snd_config_is_array (const snd_config_t *config) |
Returns if the compound is an array (and count of items). More... | |
int | snd_config_is_empty (const snd_config_t *config) |
Returns if the compound has no fields (is empty). More... | |
int | snd_config_get_id (const snd_config_t *config, const char **id) |
Returns the id of a configuration node. More... | |
int | snd_config_set_id (snd_config_t *config, const char *id) |
Sets the id of a configuration node. More... | |
int | snd_config_top (snd_config_t **config) |
Creates a top level configuration node. More... | |
int | snd_config_load (snd_config_t *config, snd_input_t *in) |
Loads a configuration tree. More... | |
int | snd_config_load_override (snd_config_t *config, snd_input_t *in) |
Loads a configuration tree and overrides existing configuration nodes. More... | |
int | snd_config_add (snd_config_t *parent, snd_config_t *child) |
Adds a child to a compound configuration node. More... | |
int | snd_config_add_after (snd_config_t *after, snd_config_t *child) |
Adds a child after another child configuration node. More... | |
int | snd_config_add_before (snd_config_t *before, snd_config_t *child) |
Adds a child before another child configuration node. More... | |
int | snd_config_merge (snd_config_t *dst, snd_config_t *src, int override) |
In-place merge of two config handles. More... | |
int | snd_config_remove (snd_config_t *config) |
Removes a configuration node from its tree. More... | |
int | snd_config_delete (snd_config_t *config) |
Frees a configuration node. More... | |
int | snd_config_delete_compound_members (const snd_config_t *config) |
Deletes the children of a node. More... | |
int | snd_config_make (snd_config_t **config, const char *id, snd_config_type_t type) |
Creates a configuration node. More... | |
int | snd_config_make_integer (snd_config_t **config, const char *id) |
Creates an integer configuration node. More... | |
int | snd_config_make_integer64 (snd_config_t **config, const char *id) |
Creates a 64-bit-integer configuration node. More... | |
int | snd_config_make_real (snd_config_t **config, const char *id) |
Creates a real number configuration node. More... | |
int | snd_config_make_string (snd_config_t **config, const char *id) |
Creates a string configuration node. More... | |
int | snd_config_make_pointer (snd_config_t **config, const char *id) |
Creates a pointer configuration node. More... | |
int | snd_config_make_compound (snd_config_t **config, const char *id, int join) |
Creates an empty compound configuration node. More... | |
int | snd_config_make_path (snd_config_t **config, snd_config_t *root, const char *key, int join, int override) |
Creates an empty compound configuration node in the path. More... | |
int | snd_config_imake_integer (snd_config_t **config, const char *id, const long value) |
Creates an integer configuration node with the given initial value. More... | |
int | snd_config_imake_integer64 (snd_config_t **config, const char *id, const long long value) |
Creates a 64-bit-integer configuration node with the given initial value. More... | |
int | snd_config_imake_real (snd_config_t **config, const char *id, const double value) |
Creates a real number configuration node with the given initial value. More... | |
int | snd_config_imake_string (snd_config_t **config, const char *id, const char *value) |
Creates a string configuration node with the given initial value. More... | |
int | snd_config_imake_safe_string (snd_config_t **config, const char *id, const char *value) |
int | snd_config_imake_pointer (snd_config_t **config, const char *id, const void *value) |
Creates a pointer configuration node with the given initial value. More... | |
int | snd_config_set_integer (snd_config_t *config, long value) |
Changes the value of an integer configuration node. More... | |
int | snd_config_set_integer64 (snd_config_t *config, long long value) |
Changes the value of a 64-bit-integer configuration node. More... | |
int | snd_config_set_real (snd_config_t *config, double value) |
Changes the value of a real-number configuration node. More... | |
int | snd_config_set_string (snd_config_t *config, const char *value) |
Changes the value of a string configuration node. More... | |
int | snd_config_set_pointer (snd_config_t *config, const void *value) |
Changes the value of a pointer configuration node. More... | |
int | snd_config_set_ascii (snd_config_t *config, const char *ascii) |
Changes the value of a configuration node. More... | |
int | snd_config_get_integer (const snd_config_t *config, long *ptr) |
Returns the value of an integer configuration node. More... | |
int | snd_config_get_integer64 (const snd_config_t *config, long long *ptr) |
Returns the value of a 64-bit-integer configuration node. More... | |
int | snd_config_get_real (const snd_config_t *config, double *ptr) |
Returns the value of a real-number configuration node. More... | |
int | snd_config_get_ireal (const snd_config_t *config, double *ptr) |
Returns the value of a real or integer configuration node. More... | |
int | snd_config_get_string (const snd_config_t *config, const char **ptr) |
Returns the value of a string configuration node. More... | |
int | snd_config_get_pointer (const snd_config_t *config, const void **ptr) |
Returns the value of a pointer configuration node. More... | |
int | snd_config_get_ascii (const snd_config_t *config, char **ascii) |
Returns the value of a configuration node as a string. More... | |
int | snd_config_test_id (const snd_config_t *config, const char *id) |
Compares the id of a configuration node to a given string. More... | |
int | snd_config_save (snd_config_t *config, snd_output_t *out) |
Dumps the contents of a configuration node or tree. More... | |
int | snd_config_search (snd_config_t *config, const char *key, snd_config_t **result) |
Searches for a node in a configuration tree. More... | |
int | snd_config_searcha (snd_config_t *root, snd_config_t *config, const char *key, snd_config_t **result) |
Searches for a node in a configuration tree, expanding aliases. More... | |
int | snd_config_searchv (snd_config_t *config, snd_config_t **result,...) |
Searches for a node in a configuration tree. More... | |
int | snd_config_searchva (snd_config_t *root, snd_config_t *config, snd_config_t **result,...) |
Searches for a node in a configuration tree, expanding aliases. More... | |
int | snd_config_search_alias (snd_config_t *config, const char *base, const char *key, snd_config_t **result) |
Searches for a node in a configuration tree, expanding aliases. More... | |
int | snd_config_search_hooks (snd_config_t *config, const char *key, snd_config_t **result) |
Searches for a node in a configuration tree and expands hooks. More... | |
int | snd_config_searcha_hooks (snd_config_t *root, snd_config_t *config, const char *key, snd_config_t **result) |
Searches for a node in a configuration tree, expanding aliases and hooks. More... | |
int | snd_config_searchva_hooks (snd_config_t *root, snd_config_t *config, snd_config_t **result,...) |
Searches for a node in a configuration tree, expanding aliases and hooks. More... | |
int | snd_config_search_alias_hooks (snd_config_t *config, const char *base, const char *key, snd_config_t **result) |
Searches for a node in a configuration tree, using an alias and expanding hooks. More... | |
int | snd_config_hook_load (snd_config_t *root, snd_config_t *config, snd_config_t **dst, snd_config_t *private_data) |
Loads and parses the given configurations files. More... | |
snd_config_t * | _snd_config_hook_private_data (int card, const char *driver) |
int | snd_config_hook_load_for_all_cards (snd_config_t *root, snd_config_t *config, snd_config_t **dst, snd_config_t *private_data) |
Loads and parses the given configurations files for each installed sound card. More... | |
int | snd_config_update_r (snd_config_t **_top, snd_config_update_t **_update, const char *cfgs) |
Updates a configuration tree by rereading the configuration files (if needed). More... | |
int | snd_config_update (void) |
Updates snd_config by rereading the global configuration files (if needed). More... | |
int | snd_config_update_ref (snd_config_t **top) |
Updates snd_config and takes its reference. More... | |
void | snd_config_ref (snd_config_t *cfg) |
Take the reference of the config tree. More... | |
void | snd_config_unref (snd_config_t *cfg) |
Unreference the config tree. More... | |
int | snd_config_update_free (snd_config_update_t *update) |
Frees a private update structure. More... | |
int | snd_config_update_free_global (void) |
Frees the global configuration tree in snd_config. More... | |
snd_config_iterator_t | snd_config_iterator_first (const snd_config_t *config) |
Returns an iterator pointing to a node's first child. More... | |
snd_config_iterator_t | snd_config_iterator_next (const snd_config_iterator_t iterator) |
Returns an iterator pointing to the next sibling. More... | |
snd_config_iterator_t | snd_config_iterator_end (const snd_config_t *config) |
Returns an iterator that ends a node's children list. More... | |
snd_config_t * | snd_config_iterator_entry (const snd_config_iterator_t iterator) |
Returns the configuration node handle pointed to by an iterator. More... | |
int | snd_config_copy (snd_config_t **dst, snd_config_t *src) |
Creates a copy of a configuration node. More... | |
int | snd_config_evaluate (snd_config_t *config, snd_config_t *root, snd_config_t *private_data, snd_config_t **result) |
Evaluates a configuration node at runtime. More... | |
int | snd_config_expand (snd_config_t *config, snd_config_t *root, const char *args, snd_config_t *private_data, snd_config_t **result) |
Expands a configuration node, applying arguments and functions. More... | |
int | snd_config_search_definition (snd_config_t *config, const char *base, const char *name, snd_config_t **result) |
Searches for a definition in a configuration tree, using aliases and expanding hooks and arguments. More... | |
size_t | page_size (void) |
size_t | page_align (size_t size) |
size_t | page_ptr (size_t object_offset, size_t object_size, size_t *offset, size_t *mmap_offset) |
Variables | |
snd_config_t * | snd_config = NULL |
Configuration top-level node (the global configuration). More... | |
Configuration helper functions.
Tree based, full nesting configuration functions.
See the Configuration files page for more details.
#define ALSA_CONFIG_PATH_VAR "ALSA_CONFIG_PATH" |
The name of the environment variable containing the files list for snd_config_update.
int snd_config_get_type_ascii | ( | const char * | ascii, |
snd_config_type_t * | type | ||
) |
Converts an ASCII string to a configuration node type.
[in] | ascii | A string containing a configuration node type. |
[out] | type | The node type corresponding to ascii. |
This function recognizes at least the following node types:
int snd_config_hook_load | ( | snd_config_t * | root, |
snd_config_t * | config, | ||
snd_config_t ** | dst, | ||
snd_config_t * | private_data | ||
) |
Loads and parses the given configurations files.
[in] | root | Handle to the root configuration node. |
[in] | config | Handle to the configuration node for this hook. |
[out] | dst | The function puts the handle to the configuration node loaded from the file(s) at the address specified by dst. |
[in] | private_data | Handle to the private data configuration node. |
See Hooks in configuration files for an example.
int snd_config_hook_load_for_all_cards | ( | snd_config_t * | root, |
snd_config_t * | config, | ||
snd_config_t ** | dst, | ||
snd_config_t * | private_data | ||
) |
Loads and parses the given configurations files for each installed sound card.
[in] | root | Handle to the root configuration node. |
[in] | config | Handle to the configuration node for this hook. |
[out] | dst | The function puts the handle to the configuration node loaded from the file(s) at the address specified by dst. |
[in] | private_data | Handle to the private data configuration node. |
This function works like snd_config_hook_load, but the files are loaded once for each sound card. The driver name is available with the private_string
function to customize the file name.
int snd_config_search_alias | ( | snd_config_t * | config, |
const char * | base, | ||
const char * | key, | ||
snd_config_t ** | result | ||
) |
Searches for a node in a configuration tree, expanding aliases.
[in] | config | Handle to the root of the configuration (sub)tree to search. |
[in] | base | Search key base, or NULL . |
[in] | key | Search key suffix. |
[out] | result | When result != NULL , the function puts the handle to the node found at the address specified by result. |
This functions searches for a child node of config, allowing aliases, like snd_config_searcha. However, alias definitions are searched below config (there is no separate root parameter), and base specifies a seach key that identifies a compound node that is used to search for an alias definitions that is not found directly below config and that does not contain a period. In other words, when "id"
is not found in config, this function also tries "base.id"
.
int snd_config_search_alias_hooks | ( | snd_config_t * | config, |
const char * | base, | ||
const char * | key, | ||
snd_config_t ** | result | ||
) |
Searches for a node in a configuration tree, using an alias and expanding hooks.
[in] | config | Handle to the root of the configuration (sub)tree to search. |
[in] | base | Search key base, or NULL . |
[in] | key | Search key suffix. |
[out] | result | The function puts the handle to the node found at the address specified by result. |
This functions searches for a child node of config, allowing aliases, like snd_config_search_alias, and expanding hooks, like snd_config_search_hooks.
int snd_config_search_hooks | ( | snd_config_t * | config, |
const char * | key, | ||
snd_config_t ** | result | ||
) |
Searches for a node in a configuration tree and expands hooks.
[in,out] | config | Handle to the root of the configuration (sub)tree to search. |
[in] | key | Search key: one or more node keys, separated with dots. |
[out] | result | The function puts the handle to the node found at the address specified by result. |
This functions searches for a child node of config like snd_config_search, but any compound nodes to be searched that contain hooks are modified by the respective hook functions.
int snd_config_searcha | ( | snd_config_t * | root, |
snd_config_t * | config, | ||
const char * | key, | ||
snd_config_t ** | result | ||
) |
Searches for a node in a configuration tree, expanding aliases.
[in] | root | Handle to the root configuration node containing alias definitions. |
[in] | config | Handle to the root of the configuration (sub)tree to search. |
[in] | key | Search key: one or more node keys, separated with dots. |
[out] | result | When result != NULL , the function puts the handle to the node found at the address specified by result. |
This functions searches for a child node of config like snd_config_search. However, any compound node can also be identified by an alias, which is a string node whose value is taken as the id of a compound node below root.
root must be a compound node. root and config may be the same node.
For example, with the following configuration, the call
would return the node with id d:
int snd_config_searcha_hooks | ( | snd_config_t * | root, |
snd_config_t * | config, | ||
const char * | key, | ||
snd_config_t ** | result | ||
) |
Searches for a node in a configuration tree, expanding aliases and hooks.
[in] | root | Handle to the root configuration node containing alias definitions. |
[in,out] | config | Handle to the root of the configuration (sub)tree to search. |
[in] | key | Search key: one or more node keys, separated with dots. |
[out] | result | The function puts the handle to the node found at the address specified by result. |
This function searches for a child node of config, allowing aliases, like snd_config_searcha, and expanding hooks, like snd_config_search_hooks.
int snd_config_searchva | ( | snd_config_t * | root, |
snd_config_t * | config, | ||
snd_config_t ** | result, | ||
... | |||
) |
Searches for a node in a configuration tree, expanding aliases.
[in] | root | Handle to the root configuration node containing alias definitions. |
[in] | config | Handle to the root of the configuration (sub)tree to search. |
[out] | result | When result != NULL , the function puts the handle to the node found at the address specified by result. |
[in] | ... | One or more concatenated dot separated search keys, terminated with NULL . |
This function searches for a child node of config, allowing aliases, like snd_config_searcha, but the search key is the concatenation of all passed seach key strings, like with snd_config_searchv.
int snd_config_searchva_hooks | ( | snd_config_t * | root, |
snd_config_t * | config, | ||
snd_config_t ** | result, | ||
... | |||
) |
Searches for a node in a configuration tree, expanding aliases and hooks.
[in] | root | Handle to the root configuration node containing alias definitions. |
[in,out] | config | Handle to the root of the configuration (sub)tree to search. |
[out] | result | The function puts the handle to the node found at the address specified by result. |
[in] | ... | One or more concatenated dot separated search keys, terminated with NULL . |
This function searches for a child node of config, allowing aliases and expanding hooks like snd_config_searcha_hooks, but the search key is the concatenation of all passed seach key strings, like with snd_config_searchv.
int snd_config_substitute | ( | snd_config_t * | dst, |
snd_config_t * | src | ||
) |
Substitutes one configuration node to another.
dst | Handle to the destination node. |
src | Handle to the source node. Must not be the same as dst. |
If both nodes are compounds, the source compound node members will be moved to the destination compound node. The original destination compound node members will be deleted (overwritten).
If the destination node is a compound and the source node is an ordinary type, the compound members are deleted (including their contents).
Otherwise, the source node's value replaces the destination node's value.
In any case, a successful call to this function frees the source node.