Lines Matching +full:re +full:- +full:config
1 // SPDX-License-Identifier: GPL-2.0
18 #include "alsa-local.h"
50 static int snd_config_load_string(snd_config_t **config, const char *s, in snd_config_load_string() argument
57 assert(config && s); in snd_config_load_string()
74 *config = dst; in snd_config_load_string()
81 snd_config_t *config; in get_alsalib_config() local
84 err = snd_config_load_string(&config, alsa_config, strlen(alsa_config)); in get_alsalib_config()
86 ksft_print_msg("Unable to parse custom alsa-lib configuration: %s\n", in get_alsalib_config()
90 return config; in get_alsalib_config()
97 for (conf = conf_cards; conf; conf = conf->next) { in conf_data_by_card()
98 if (conf->card == card) { in conf_data_by_card()
100 ksft_print_msg("using hw card config %s for card %d\n", in conf_data_by_card()
101 conf->filename, card); in conf_data_by_card()
117 ksft_exit_fail_msg("config save\n"); in dump_config_tree()
154 len = readlink(path, link, sizeof(link) - 1); in sysfs_get()
178 len = read(fd, path, sizeof(path)-1); in sysfs_get()
183 while (len > 0 && path[len-1] == '\n') in sysfs_get()
184 len--; in sysfs_get()
192 static bool sysfs_match(const char *sysfs_root, snd_config_t *config) in sysfs_match() argument
197 regex_t re; in sysfs_match() local
201 snd_config_for_each(i, next, config) { in sysfs_match()
215 if (regcomp(&re, regex_string, REG_EXTENDED)) in sysfs_match()
217 ret = regexec(&re, v, 1, match, 0); in sysfs_match()
218 regfree(&re); in sysfs_match()
230 for (data = conf_cards; data; data = data->next) { in assign_card_config()
231 snd_config_search(data->config, "sysfs", &sysfs_card_config); in assign_card_config()
235 data->card = card; in assign_card_config()
258 if (dirent->d_type == DT_DIR) in filename_filter()
260 flen = strlen(dirent->d_name); in filename_filter()
263 if (strncmp(&dirent->d_name[flen-5], ".conf", 5) == 0) in filename_filter()
271 snd_config_t *config, *sysfs_config, *card_config, *sysfs_card_config, *node; in match_config() local
274 config = conf_load_from_file(filename); in match_config()
275 if (snd_config_search(config, "sysfs", &sysfs_config) || in match_config()
278 if (snd_config_search(config, "card", &card_config) || in match_config()
292 data->filename = filename; in match_config()
293 data->config = node; in match_config()
294 data->card = -1; in match_config()
295 if (snd_config_get_id(node, &data->config_id)) in match_config()
297 data->next = conf_cards; in match_config()
313 size_t sl = strlen(fn) + strlen(namelist[j]->d_name) + 2; in conf_load()
317 sprintf(filename, "%s/%s", fn, namelist[j]->d_name); in conf_load()
334 conf_cards = conf->next; in conf_free()
335 snd_config_delete(conf->config); in conf_free()
345 return conf->config; in conf_by_card()
356 if (ret != -ENOENT && ret < 0) in conf_get_by_keys()
373 if (ret == -ENOENT) in conf_get_subtree()
387 return -1; in conf_get_count()
389 if (ret == -ENOENT) in conf_get_count()
390 return -1; in conf_get_count()
410 if (ret == -ENOENT) in conf_get_string()
428 if (ret == -ENOENT) in conf_get_long()
445 if (ret == -ENOENT) in conf_get_bool()
463 if (ret == -ENOENT) in conf_get_string_array()