mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-31 22:25:35 -04:00
ucm: handle 'set _once' command
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
afb5a9cf61
commit
a570634a22
2 changed files with 22 additions and 1 deletions
|
|
@ -413,6 +413,7 @@ int snd_use_case_geti(snd_use_case_mgr_t *uc_mgr,
|
|||
* \return Zero if success, otherwise a negative error code
|
||||
*
|
||||
* Known identifiers:
|
||||
* - _once - execute the once sequence (value = NULL)
|
||||
* - _verb - set current verb = value
|
||||
* - _enadev - enable given device = value
|
||||
* - _disdev - disable given device = value
|
||||
|
|
|
|||
|
|
@ -1830,6 +1830,24 @@ int snd_use_case_geti(snd_use_case_mgr_t *uc_mgr,
|
|||
return err;
|
||||
}
|
||||
|
||||
static int set_once_user(snd_use_case_mgr_t *uc_mgr,
|
||||
const char *value)
|
||||
{
|
||||
int err;
|
||||
|
||||
if (value != NULL && *value) {
|
||||
uc_error("error: wrong value for _once (%s)", value);
|
||||
return -EINVAL;
|
||||
}
|
||||
err = execute_sequence(uc_mgr, &uc_mgr->once_list,
|
||||
&uc_mgr->value_list, NULL, NULL);
|
||||
if (err < 0) {
|
||||
uc_error("Unable to execute once sequence");
|
||||
return err;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
static int handle_transition_verb(snd_use_case_mgr_t *uc_mgr,
|
||||
struct use_case_verb *new_verb)
|
||||
{
|
||||
|
|
@ -2041,7 +2059,9 @@ int snd_use_case_set(snd_use_case_mgr_t *uc_mgr,
|
|||
int err = 0;
|
||||
|
||||
pthread_mutex_lock(&uc_mgr->mutex);
|
||||
if (strcmp(identifier, "_verb") == 0)
|
||||
if (strcmp(identifier, "_once") == 0)
|
||||
err = set_once_user(uc_mgr, value);
|
||||
else if (strcmp(identifier, "_verb") == 0)
|
||||
err = set_verb_user(uc_mgr, value);
|
||||
else if (strcmp(identifier, "_enadev") == 0)
|
||||
err = set_device_user(uc_mgr, value, 1);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue