mirror of
				https://github.com/alsa-project/alsa-lib.git
				synced 2025-10-29 05:40:25 -04:00 
			
		
		
		
	Fixed hw_params cmasks
This commit is contained in:
		
							parent
							
								
									35632e8dd8
								
							
						
					
					
						commit
						083e9a2b09
					
				
					 1 changed files with 7 additions and 2 deletions
				
			
		|  | @ -480,6 +480,7 @@ int snd_pcm_hw_params_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, | ||||||
| 	snd_pcm_hw_params_t save; | 	snd_pcm_hw_params_t save; | ||||||
| 	int v; | 	int v; | ||||||
| 	unsigned int max1 = val, min2 = add(val, 1); | 	unsigned int max1 = val, min2 = add(val, 1); | ||||||
|  | 	unsigned int hw_cmask; | ||||||
| 	save = *params; | 	save = *params; | ||||||
| 	v = snd_pcm_hw_params_max(pcm, params, var, max1); | 	v = snd_pcm_hw_params_max(pcm, params, var, max1); | ||||||
| 	if (v >= 0) { | 	if (v >= 0) { | ||||||
|  | @ -501,7 +502,9 @@ int snd_pcm_hw_params_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, | ||||||
| 		assert(v >= 0); | 		assert(v >= 0); | ||||||
| 	} | 	} | ||||||
|  _end: |  _end: | ||||||
|  | 	hw_cmask = params->hw_cmask; | ||||||
| 	v = snd_pcm_hw_params_set(pcm, params, var, v); | 	v = snd_pcm_hw_params_set(pcm, params, var, v); | ||||||
|  | 	params->hw_cmask |= hw_cmask; | ||||||
| 	assert(v >= 0); | 	assert(v >= 0); | ||||||
| 	return v; | 	return v; | ||||||
| } | } | ||||||
|  | @ -618,7 +621,7 @@ int snd_pcm_hw_params_info_fifo_size(const snd_pcm_hw_params_t *params) | ||||||
| void snd_pcm_hw_params_choose(snd_pcm_t *pcm, snd_pcm_hw_params_t *params) | void snd_pcm_hw_params_choose(snd_pcm_t *pcm, snd_pcm_hw_params_t *params) | ||||||
| { | { | ||||||
| 	int err; | 	int err; | ||||||
| 	unsigned int hw_cmask = 0; | 	unsigned int hw_cmask = params->hw_cmask; | ||||||
| 
 | 
 | ||||||
| 	err = snd_pcm_hw_params_first(pcm, params, SND_PCM_HW_PARAM_ACCESS); | 	err = snd_pcm_hw_params_first(pcm, params, SND_PCM_HW_PARAM_ACCESS); | ||||||
| 	assert(err >= 0); | 	assert(err >= 0); | ||||||
|  | @ -676,7 +679,9 @@ int snd_pcm_hw_refine(snd_pcm_t *pcm, snd_pcm_hw_params_t *params) | ||||||
| int snd_pcm_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t *params) | int snd_pcm_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t *params) | ||||||
| { | { | ||||||
| 	int err; | 	int err; | ||||||
| 	params->hw_cmask = 0; | 	err = snd_pcm_hw_refine(pcm, params); | ||||||
|  | 	if (err < 0) | ||||||
|  | 		return err; | ||||||
| 	snd_pcm_hw_params_choose(pcm, params); | 	snd_pcm_hw_params_choose(pcm, params); | ||||||
| 	if (pcm->mmap_channels) { | 	if (pcm->mmap_channels) { | ||||||
| 		err = snd_pcm_munmap(pcm); | 		err = snd_pcm_munmap(pcm); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Abramo Bagnara
						Abramo Bagnara