mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-12-21 08:56:52 -05: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