mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-11-04 13:30:08 -05:00
ucm: add cdev
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
cdc9dd50bf
commit
aaf55f1641
3 changed files with 19 additions and 3 deletions
|
|
@ -133,6 +133,9 @@ static int execute_sequence(snd_use_case_mgr_t *uc_mgr ATTRIBUTE_UNUSED,
|
||||||
list_for_each(pos, seq) {
|
list_for_each(pos, seq) {
|
||||||
s = list_entry(pos, struct sequence_element, list);
|
s = list_entry(pos, struct sequence_element, list);
|
||||||
switch (s->type) {
|
switch (s->type) {
|
||||||
|
case SEQUENCE_ELEMENT_TYPE_CDEV:
|
||||||
|
uc_error("cdev not yet implemented: '%s'", s->data.cdev);
|
||||||
|
break;
|
||||||
case SEQUENCE_ELEMENT_TYPE_CSET:
|
case SEQUENCE_ELEMENT_TYPE_CSET:
|
||||||
uc_error("cset not yet implemented: '%s'", s->data.cset);
|
uc_error("cset not yet implemented: '%s'", s->data.cset);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -188,6 +188,7 @@ static int parse_supported_device(snd_use_case_mgr_t *uc_mgr ATTRIBUTE_UNUSED,
|
||||||
*
|
*
|
||||||
* Sequence controls elements are in the following form:-
|
* Sequence controls elements are in the following form:-
|
||||||
*
|
*
|
||||||
|
* cdev "hw:0,0"
|
||||||
* cset "element_id_syntax value_syntax"
|
* cset "element_id_syntax value_syntax"
|
||||||
* usleep time
|
* usleep time
|
||||||
* exec "any unix command with arguments"
|
* exec "any unix command with arguments"
|
||||||
|
|
@ -233,6 +234,16 @@ static int parse_sequence(snd_use_case_mgr_t *uc_mgr ATTRIBUTE_UNUSED,
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
list_add_tail(&curr->list, base);
|
list_add_tail(&curr->list, base);
|
||||||
|
|
||||||
|
if (strcmp(cmd, "cdev") == 0) {
|
||||||
|
curr->type = SEQUENCE_ELEMENT_TYPE_CDEV;
|
||||||
|
err = parse_string(n, &curr->data.cdev);
|
||||||
|
if (err < 0) {
|
||||||
|
uc_error("error: cdev requires a string!");
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (strcmp(cmd, "cset") == 0) {
|
if (strcmp(cmd, "cset") == 0) {
|
||||||
curr->type = SEQUENCE_ELEMENT_TYPE_CSET;
|
curr->type = SEQUENCE_ELEMENT_TYPE_CSET;
|
||||||
err = parse_string(n, &curr->data.cset);
|
err = parse_string(n, &curr->data.cset);
|
||||||
|
|
|
||||||
|
|
@ -42,9 +42,10 @@
|
||||||
#define MAX_FILE 256
|
#define MAX_FILE 256
|
||||||
#define ALSA_USE_CASE_DIR ALSA_CONFIG_DIR "/ucm"
|
#define ALSA_USE_CASE_DIR ALSA_CONFIG_DIR "/ucm"
|
||||||
|
|
||||||
#define SEQUENCE_ELEMENT_TYPE_CSET 1
|
#define SEQUENCE_ELEMENT_TYPE_CDEV 1
|
||||||
#define SEQUENCE_ELEMENT_TYPE_SLEEP 2
|
#define SEQUENCE_ELEMENT_TYPE_CSET 2
|
||||||
#define SEQUENCE_ELEMENT_TYPE_EXEC 3
|
#define SEQUENCE_ELEMENT_TYPE_SLEEP 3
|
||||||
|
#define SEQUENCE_ELEMENT_TYPE_EXEC 4
|
||||||
|
|
||||||
struct ucm_value {
|
struct ucm_value {
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
|
|
@ -57,6 +58,7 @@ struct sequence_element {
|
||||||
unsigned int type;
|
unsigned int type;
|
||||||
union {
|
union {
|
||||||
long sleep; /* Sleep time in msecs if sleep element, else 0 */
|
long sleep; /* Sleep time in msecs if sleep element, else 0 */
|
||||||
|
char *cdev;
|
||||||
char *cset;
|
char *cset;
|
||||||
char *exec;
|
char *exec;
|
||||||
} data;
|
} data;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue