mirror of
				https://github.com/alsa-project/alsa-lib.git
				synced 2025-11-03 09:01:52 -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) {
 | 
			
		||||
		s = list_entry(pos, struct sequence_element, list);
 | 
			
		||||
		switch (s->type) {
 | 
			
		||||
		case SEQUENCE_ELEMENT_TYPE_CDEV:
 | 
			
		||||
			uc_error("cdev not yet implemented: '%s'", s->data.cdev);
 | 
			
		||||
			break;
 | 
			
		||||
		case SEQUENCE_ELEMENT_TYPE_CSET:
 | 
			
		||||
			uc_error("cset not yet implemented: '%s'", s->data.cset);
 | 
			
		||||
			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:-
 | 
			
		||||
 *
 | 
			
		||||
 * cdev "hw:0,0"
 | 
			
		||||
 * cset "element_id_syntax value_syntax"
 | 
			
		||||
 * usleep time
 | 
			
		||||
 * 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;
 | 
			
		||||
		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) {
 | 
			
		||||
			curr->type = SEQUENCE_ELEMENT_TYPE_CSET;
 | 
			
		||||
			err = parse_string(n, &curr->data.cset);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,9 +42,10 @@
 | 
			
		|||
#define MAX_FILE		256
 | 
			
		||||
#define ALSA_USE_CASE_DIR	ALSA_CONFIG_DIR "/ucm"
 | 
			
		||||
 | 
			
		||||
#define SEQUENCE_ELEMENT_TYPE_CSET	1
 | 
			
		||||
#define SEQUENCE_ELEMENT_TYPE_SLEEP	2
 | 
			
		||||
#define SEQUENCE_ELEMENT_TYPE_EXEC	3
 | 
			
		||||
#define SEQUENCE_ELEMENT_TYPE_CDEV	1
 | 
			
		||||
#define SEQUENCE_ELEMENT_TYPE_CSET	2
 | 
			
		||||
#define SEQUENCE_ELEMENT_TYPE_SLEEP	3
 | 
			
		||||
#define SEQUENCE_ELEMENT_TYPE_EXEC	4
 | 
			
		||||
 | 
			
		||||
struct ucm_value {
 | 
			
		||||
        struct list_head list;
 | 
			
		||||
| 
						 | 
				
			
			@ -57,6 +58,7 @@ struct sequence_element {
 | 
			
		|||
	unsigned int type;
 | 
			
		||||
	union {
 | 
			
		||||
		long sleep; /* Sleep time in msecs if sleep element, else 0 */
 | 
			
		||||
		char *cdev;
 | 
			
		||||
		char *cset;
 | 
			
		||||
		char *exec;
 | 
			
		||||
	} data;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue