mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2026-03-05 01:40:11 -05:00
ucm: unify snd_use_case_geti(), add snd_use_case_card_list() template
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
0ae6c43b86
commit
3a34394508
2 changed files with 34 additions and 8 deletions
|
|
@ -245,14 +245,16 @@ int snd_use_case_get(snd_use_case_mgr_t *uc_mgr,
|
||||||
* \brief Get current - integer
|
* \brief Get current - integer
|
||||||
* \param uc_mgr Use case manager
|
* \param uc_mgr Use case manager
|
||||||
* \param identifier
|
* \param identifier
|
||||||
* \return Value if success, otherwise a negative error code
|
* \param value result
|
||||||
|
* \return Zero if success, otherwise a negative error code
|
||||||
*
|
*
|
||||||
* Known identifiers:
|
* Known identifiers:
|
||||||
* _devstatus/<device> - return status for given device
|
* _devstatus/<device> - return status for given device
|
||||||
* _modstatus/<modifier> - return status for given modifier
|
* _modstatus/<modifier> - return status for given modifier
|
||||||
*/
|
*/
|
||||||
long snd_use_case_geti(snd_use_case_mgr_t *uc_mgr,
|
int snd_use_case_geti(snd_use_case_mgr_t *uc_mgr,
|
||||||
const char *identifier);
|
const char *identifier,
|
||||||
|
long *value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set new
|
* \brief Set new
|
||||||
|
|
@ -310,6 +312,21 @@ int snd_use_case_mgr_close(snd_use_case_mgr_t *uc_mgr);
|
||||||
*/
|
*/
|
||||||
int snd_use_case_mgr_reset(snd_use_case_mgr_t *uc_mgr);
|
int snd_use_case_mgr_reset(snd_use_case_mgr_t *uc_mgr);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* helper functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Obtain a list of cards
|
||||||
|
* \param uc_mgr Use case manager (may be NULL - card list)
|
||||||
|
* \param list Returned allocated list
|
||||||
|
* \return Number of list entries if success, otherwise a negative error code
|
||||||
|
*/
|
||||||
|
static inline int snd_use_case_card_list(const char **list[])
|
||||||
|
{
|
||||||
|
return snd_use_case_get_list(NULL, NULL, list);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \}
|
* \}
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -944,8 +944,9 @@ long modifier_status(snd_use_case_mgr_t *uc_mgr,
|
||||||
* \param identifier
|
* \param identifier
|
||||||
* \return Value if success, otherwise a negative error code
|
* \return Value if success, otherwise a negative error code
|
||||||
*/
|
*/
|
||||||
long snd_use_case_geti(snd_use_case_mgr_t *uc_mgr,
|
int snd_use_case_geti(snd_use_case_mgr_t *uc_mgr,
|
||||||
const char *identifier)
|
const char *identifier,
|
||||||
|
long *value)
|
||||||
{
|
{
|
||||||
char *str, *str1;
|
char *str, *str1;
|
||||||
long err;
|
long err;
|
||||||
|
|
@ -964,11 +965,19 @@ long snd_use_case_geti(snd_use_case_mgr_t *uc_mgr,
|
||||||
} else {
|
} else {
|
||||||
str = NULL;
|
str = NULL;
|
||||||
}
|
}
|
||||||
if (check_identifier(identifier, "_devstatus"))
|
if (check_identifier(identifier, "_devstatus")) {
|
||||||
err = device_status(uc_mgr, str);
|
err = device_status(uc_mgr, str);
|
||||||
else if (check_identifier(identifier, "_modstatus"))
|
if (err >= 0) {
|
||||||
|
*value = err;
|
||||||
|
err = 0;
|
||||||
|
}
|
||||||
|
} else if (check_identifier(identifier, "_modstatus")) {
|
||||||
err = modifier_status(uc_mgr, str);
|
err = modifier_status(uc_mgr, str);
|
||||||
else
|
if (err >= 0) {
|
||||||
|
*value = err;
|
||||||
|
err = 0;
|
||||||
|
}
|
||||||
|
} else
|
||||||
err = -EINVAL;
|
err = -EINVAL;
|
||||||
if (str)
|
if (str)
|
||||||
free(str);
|
free(str);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue