mirror of
				https://github.com/alsa-project/alsa-lib.git
				synced 2025-11-03 09:01:52 -05:00 
			
		
		
		
	Added argument handling for the slave PCMs.
The configuration root (snd_config) can be specified for the internal routines. The pcm_hooks code was recoded (independent code moved to control/setup.c). Improved the pcm_multi plugin (added master configuration).
This commit is contained in:
		
							parent
							
								
									61bf03ce70
								
							
						
					
					
						commit
						bf780a25a5
					
				
					 29 changed files with 1179 additions and 1070 deletions
				
			
		| 
						 | 
				
			
			@ -734,7 +734,7 @@ static int snd_pcm_meter_add_scope_conf(snd_pcm_t *pcm, const char *name,
 | 
			
		|||
 | 
			
		||||
			
 | 
			
		||||
int _snd_pcm_meter_open(snd_pcm_t **pcmp, const char *name,
 | 
			
		||||
			snd_config_t *conf, 
 | 
			
		||||
			snd_config_t *root, snd_config_t *conf, 
 | 
			
		||||
			snd_pcm_stream_t stream, int mode)
 | 
			
		||||
{
 | 
			
		||||
	snd_config_iterator_t i, next;
 | 
			
		||||
| 
						 | 
				
			
			@ -743,6 +743,7 @@ int _snd_pcm_meter_open(snd_pcm_t **pcmp, const char *name,
 | 
			
		|||
	snd_config_t *slave = NULL, *sconf;
 | 
			
		||||
	long frequency = -1;
 | 
			
		||||
	snd_config_t *scopes = NULL;
 | 
			
		||||
	const char *args;
 | 
			
		||||
	snd_config_for_each(i, next, conf) {
 | 
			
		||||
		snd_config_t *n = snd_config_iterator_entry(i);
 | 
			
		||||
		const char *id = snd_config_get_id(n);
 | 
			
		||||
| 
						 | 
				
			
			@ -775,10 +776,10 @@ int _snd_pcm_meter_open(snd_pcm_t **pcmp, const char *name,
 | 
			
		|||
		SNDERR("slave is not defined");
 | 
			
		||||
		return -EINVAL;
 | 
			
		||||
	}
 | 
			
		||||
	err = snd_pcm_slave_conf(slave, &sconf, 0);
 | 
			
		||||
	err = snd_pcm_slave_conf(root, slave, &sconf, &args, 0);
 | 
			
		||||
	if (err < 0)
 | 
			
		||||
		return err;
 | 
			
		||||
	err = snd_pcm_open_slave(&spcm, sconf, stream, mode);
 | 
			
		||||
	err = snd_pcm_open_slave(&spcm, root, sconf, args, stream, mode);
 | 
			
		||||
	if (err < 0)
 | 
			
		||||
		return err;
 | 
			
		||||
	err = snd_pcm_meter_open(pcmp, name, frequency > 0 ? (unsigned int) frequency : FREQUENCY, spcm, 1);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue