1// SPDX-License-Identifier: GPL-2.0
2//
3// kselftest configuration helpers for the hw specific configuration
4//
5// Original author: Jaroslav Kysela <perex@perex.cz>
6// Copyright (c) 2022 Red Hat Inc.
7
8#ifndef __ALSA_LOCAL_H
9#define __ALSA_LOCAL_H
10
11#include <alsa/asoundlib.h>
12
13snd_config_t *get_alsalib_config(void);
14
15snd_config_t *conf_load_from_file(const char *filename);
16void conf_load(void);
17void conf_free(void);
18snd_config_t *conf_by_card(int card);
19snd_config_t *conf_get_subtree(snd_config_t *root, const char *key1, const char *key2);
20int conf_get_count(snd_config_t *root, const char *key1, const char *key2);
21const char *conf_get_string(snd_config_t *root, const char *key1, const char *key2, const char *def);
22long conf_get_long(snd_config_t *root, const char *key1, const char *key2, long def);
23int conf_get_bool(snd_config_t *root, const char *key1, const char *key2, int def);
24void conf_get_string_array(snd_config_t *root, const char *key1, const char *key2,
25			   const char **array, int array_size, const char *def);
26
27struct card_cfg_data {
28	int card;
29	snd_config_t *config;
30	const char *filename;
31	const char *config_id;
32	struct card_cfg_data *next;
33};
34
35extern struct card_cfg_data *conf_cards;
36
37#endif /* __ALSA_LOCAL_H */
38