mirror of
				https://github.com/alsa-project/alsa-lib.git
				synced 2025-10-29 05:40:25 -04:00 
			
		
		
		
	rawmidi: do not abort when seeing the hint node
Add the hint node to the nodes that are allowed in rawmidi definitions, and factor out the detection of such nodes into a common function.
This commit is contained in:
		
							parent
							
								
									ddf9599542
								
							
						
					
					
						commit
						252fd43461
					
				
					 4 changed files with 20 additions and 6 deletions
				
			
		|  | @ -987,3 +987,19 @@ ssize_t snd_rawmidi_read(snd_rawmidi_t *rawmidi, void *buffer, size_t size) | |||
| 	assert(buffer || size == 0); | ||||
| 	return (rawmidi->ops->read)(rawmidi, buffer, size); | ||||
| } | ||||
| 
 | ||||
| int snd_rawmidi_conf_generic_id(const char *id) | ||||
| { | ||||
| 	static const char *ids[] = { | ||||
| 		"comment", | ||||
| 		"type", | ||||
| 		"hint", | ||||
| 	}; | ||||
| 	unsigned int k; | ||||
| 
 | ||||
| 	for (k = 0; k < sizeof ids / sizeof *ids; ++k) { | ||||
| 		if (strcmp(id, ids[k]) == 0) | ||||
| 			return 1; | ||||
| 	} | ||||
| 	return 0; | ||||
| } | ||||
|  |  | |||
|  | @ -337,9 +337,7 @@ int _snd_rawmidi_hw_open(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp, | |||
| 		const char *id; | ||||
| 		if (snd_config_get_id(n, &id) < 0) | ||||
| 			continue; | ||||
| 		if (strcmp(id, "comment") == 0) | ||||
| 			continue; | ||||
| 		if (strcmp(id, "type") == 0) | ||||
| 		if (snd_rawmidi_conf_generic_id(id)) | ||||
| 			continue; | ||||
| 		if (strcmp(id, "card") == 0) { | ||||
| 			err = snd_config_get_integer(n, &card); | ||||
|  |  | |||
|  | @ -57,3 +57,5 @@ int snd_rawmidi_hw_open(snd_rawmidi_t **input, snd_rawmidi_t **output, | |||
| int snd_rawmidi_virtual_open(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp, | ||||
| 			     const char *name, snd_seq_t *seq_handle, int port, | ||||
| 			     int merge, int mode); | ||||
| 
 | ||||
| int snd_rawmidi_conf_generic_id(const char *id); | ||||
|  |  | |||
|  | @ -411,9 +411,7 @@ int _snd_rawmidi_virtual_open(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp, | |||
| 		const char *id; | ||||
| 		if (snd_config_get_id(n, &id) < 0) | ||||
| 			continue; | ||||
| 		if (strcmp(id, "comment") == 0) | ||||
| 			continue; | ||||
| 		if (strcmp(id, "type") == 0) | ||||
| 		if (snd_rawmidi_conf_generic_id(id)) | ||||
| 			continue; | ||||
| 		if (strcmp(id, "slave") == 0) { | ||||
| 			err = snd_config_get_string(n, &slave_str); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Clemens Ladisch
						Clemens Ladisch