mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
Fixed a bug in interval printing. Added missing mmap functions. Added _try hw_params variant.
This commit is contained in:
parent
6171d0fc20
commit
e618ef6f00
4 changed files with 94 additions and 12 deletions
|
|
@ -105,6 +105,10 @@ int mask_single(const mask_t *mask);
|
|||
int snd_pcm_hw_params_any(snd_pcm_t *pcm, snd_pcm_hw_params_t *params);
|
||||
int snd_pcm_hw_param_any(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var);
|
||||
int snd_pcm_hw_param_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int par);
|
||||
int snd_pcm_hw_param_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int par);
|
||||
int snd_pcm_hw_param_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var, unsigned int val);
|
||||
int snd_pcm_hw_param_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
|
|
@ -113,24 +117,30 @@ int snd_pcm_hw_param_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
|||
unsigned int var, unsigned int val);
|
||||
int snd_pcm_hw_param_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var, unsigned int min, unsigned int max);
|
||||
int snd_pcm_hw_param_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int par);
|
||||
int snd_pcm_hw_param_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int par);
|
||||
int snd_pcm_hw_param_set(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var, unsigned int val);
|
||||
int snd_pcm_hw_param_mask(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var, const mask_t *mask);
|
||||
int snd_pcm_hw_param_min_try(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var, unsigned int val);
|
||||
int snd_pcm_hw_param_max_try(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var, unsigned int val);
|
||||
int snd_pcm_hw_param_minmax_try(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var, unsigned int min, unsigned int max);
|
||||
int snd_pcm_hw_param_set_try(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var, unsigned int val);
|
||||
int snd_pcm_hw_param_mask_try(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var, const mask_t *mask);
|
||||
int snd_pcm_hw_param_value(const snd_pcm_hw_params_t *params,
|
||||
unsigned int var);
|
||||
unsigned int var);
|
||||
const mask_t *snd_pcm_hw_param_value_mask(const snd_pcm_hw_params_t *params,
|
||||
unsigned int var);
|
||||
unsigned int var);
|
||||
const interval_t *snd_pcm_hw_param_value_interval(const snd_pcm_hw_params_t *params,
|
||||
unsigned int var);
|
||||
unsigned int var);
|
||||
unsigned int snd_pcm_hw_param_value_min(const snd_pcm_hw_params_t *params,
|
||||
unsigned int var);
|
||||
unsigned int var);
|
||||
unsigned int snd_pcm_hw_param_value_max(const snd_pcm_hw_params_t *params,
|
||||
unsigned int var);
|
||||
unsigned int var);
|
||||
int snd_pcm_hw_params_try_explain_failure(snd_pcm_t *pcm,
|
||||
snd_pcm_hw_params_t *fail,
|
||||
snd_pcm_hw_params_t *success,
|
||||
|
|
|
|||
|
|
@ -308,12 +308,13 @@ int interval_mulkdiv(interval_t *a, unsigned int k,
|
|||
|
||||
void interval_print(const interval_t *i, FILE *fp)
|
||||
{
|
||||
if (interval_single(i)) {
|
||||
if (interval_empty(i))
|
||||
fprintf(fp, "NONE");
|
||||
else if (interval_single(i))
|
||||
fprintf(fp, "%u", interval_value(i));
|
||||
} else {
|
||||
else
|
||||
fprintf(fp, "%c%u %u%c",
|
||||
i->openmin ? '(' : '[',
|
||||
i->min, i->max,
|
||||
i->openmax ? ')' : ']');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,6 +34,16 @@
|
|||
#endif
|
||||
|
||||
|
||||
const snd_pcm_channel_area_t *snd_pcm_mmap_running_areas(snd_pcm_t *pcm)
|
||||
{
|
||||
return pcm->running_areas;
|
||||
}
|
||||
|
||||
const snd_pcm_channel_area_t *snd_pcm_mmap_stopped_areas(snd_pcm_t *pcm)
|
||||
{
|
||||
return pcm->stopped_areas;
|
||||
}
|
||||
|
||||
const snd_pcm_channel_area_t *snd_pcm_mmap_areas(snd_pcm_t *pcm)
|
||||
{
|
||||
if (pcm->stopped_areas &&
|
||||
|
|
|
|||
|
|
@ -308,6 +308,18 @@ int snd_pcm_hw_param_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
|||
return snd_pcm_hw_param_value_min(params, var);
|
||||
}
|
||||
|
||||
int snd_pcm_hw_param_min_try(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var, unsigned int val)
|
||||
{
|
||||
snd_pcm_hw_params_t save;
|
||||
int err;
|
||||
save = *params;
|
||||
err = snd_pcm_hw_param_min(pcm, params, var, val);
|
||||
if (err < 0)
|
||||
*params = save;
|
||||
return err;
|
||||
}
|
||||
|
||||
int _snd_pcm_hw_param_max(snd_pcm_hw_params_t *params, int hw,
|
||||
unsigned int var, unsigned int val)
|
||||
{
|
||||
|
|
@ -347,6 +359,18 @@ int snd_pcm_hw_param_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
|||
return snd_pcm_hw_param_value_max(params, var);
|
||||
}
|
||||
|
||||
int snd_pcm_hw_param_max_try(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var, unsigned int val)
|
||||
{
|
||||
snd_pcm_hw_params_t save;
|
||||
int err;
|
||||
save = *params;
|
||||
err = snd_pcm_hw_param_max(pcm, params, var, val);
|
||||
if (err < 0)
|
||||
*params = save;
|
||||
return err;
|
||||
}
|
||||
|
||||
int _snd_pcm_hw_param_minmax(snd_pcm_hw_params_t *params, int hw,
|
||||
unsigned int var,
|
||||
unsigned int min, unsigned int max)
|
||||
|
|
@ -409,6 +433,19 @@ int snd_pcm_hw_param_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int snd_pcm_hw_param_minmax_try(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var,
|
||||
unsigned int min, unsigned int max)
|
||||
{
|
||||
snd_pcm_hw_params_t save;
|
||||
int err;
|
||||
save = *params;
|
||||
err = snd_pcm_hw_param_minmax(pcm, params, var, min, max);
|
||||
if (err < 0)
|
||||
*params = save;
|
||||
return err;
|
||||
}
|
||||
|
||||
int _snd_pcm_hw_param_set(snd_pcm_hw_params_t *params, int hw,
|
||||
unsigned int var, unsigned int val)
|
||||
{
|
||||
|
|
@ -448,6 +485,18 @@ int snd_pcm_hw_param_set(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
|||
return snd_pcm_hw_param_value(params, var);
|
||||
}
|
||||
|
||||
int snd_pcm_hw_param_set_try(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var, unsigned int val)
|
||||
{
|
||||
snd_pcm_hw_params_t save;
|
||||
int err;
|
||||
save = *params;
|
||||
err = snd_pcm_hw_param_set(pcm, params, var, val);
|
||||
if (err < 0)
|
||||
*params = save;
|
||||
return err;
|
||||
}
|
||||
|
||||
int _snd_pcm_hw_param_mask(snd_pcm_hw_params_t *params, int hw,
|
||||
unsigned int var, const mask_t *val)
|
||||
{
|
||||
|
|
@ -484,6 +533,18 @@ int snd_pcm_hw_param_mask(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int snd_pcm_hw_param_mask_try(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
|
||||
unsigned int var, const mask_t *val)
|
||||
{
|
||||
snd_pcm_hw_params_t save;
|
||||
int err;
|
||||
save = *params;
|
||||
err = snd_pcm_hw_param_mask(pcm, params, var, val);
|
||||
if (err < 0)
|
||||
*params = save;
|
||||
return err;
|
||||
}
|
||||
|
||||
/* Inside configuration space defined by PARAMS set PAR to the available value
|
||||
nearest to VAL. Reduce configuration space accordingly.
|
||||
This function cannot be called for SND_PCM_HW_PARAM_ACCESS,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue