Fixed a bug in interval printing. Added missing mmap functions. Added _try hw_params variant.

This commit is contained in:
Abramo Bagnara 2000-12-30 17:20:23 +00:00
parent 6171d0fc20
commit e618ef6f00
4 changed files with 94 additions and 12 deletions

View file

@ -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_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, int snd_pcm_hw_param_any(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
unsigned int var); 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, int snd_pcm_hw_param_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
unsigned int var, unsigned int val); unsigned int var, unsigned int val);
int snd_pcm_hw_param_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, 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); unsigned int var, unsigned int val);
int snd_pcm_hw_param_minmax(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, 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); 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, int snd_pcm_hw_param_set(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
unsigned int var, unsigned int val); unsigned int var, unsigned int val);
int snd_pcm_hw_param_mask(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, int snd_pcm_hw_param_mask(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
unsigned int var, const mask_t *mask); 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, 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, 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, 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 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 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, int snd_pcm_hw_params_try_explain_failure(snd_pcm_t *pcm,
snd_pcm_hw_params_t *fail, snd_pcm_hw_params_t *fail,
snd_pcm_hw_params_t *success, snd_pcm_hw_params_t *success,

View file

@ -308,12 +308,13 @@ int interval_mulkdiv(interval_t *a, unsigned int k,
void interval_print(const interval_t *i, FILE *fp) 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)); fprintf(fp, "%u", interval_value(i));
} else { else
fprintf(fp, "%c%u %u%c", fprintf(fp, "%c%u %u%c",
i->openmin ? '(' : '[', i->openmin ? '(' : '[',
i->min, i->max, i->min, i->max,
i->openmax ? ')' : ']'); i->openmax ? ')' : ']');
}
} }

View file

@ -34,6 +34,16 @@
#endif #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) const snd_pcm_channel_area_t *snd_pcm_mmap_areas(snd_pcm_t *pcm)
{ {
if (pcm->stopped_areas && if (pcm->stopped_areas &&

View file

@ -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); 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, int _snd_pcm_hw_param_max(snd_pcm_hw_params_t *params, int hw,
unsigned int var, unsigned int val) 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); 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, int _snd_pcm_hw_param_minmax(snd_pcm_hw_params_t *params, int hw,
unsigned int var, unsigned int var,
unsigned int min, unsigned int max) 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; 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, int _snd_pcm_hw_param_set(snd_pcm_hw_params_t *params, int hw,
unsigned int var, unsigned int val) 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); 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, int _snd_pcm_hw_param_mask(snd_pcm_hw_params_t *params, int hw,
unsigned int var, const mask_t *val) 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; 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 /* Inside configuration space defined by PARAMS set PAR to the available value
nearest to VAL. Reduce configuration space accordingly. nearest to VAL. Reduce configuration space accordingly.
This function cannot be called for SND_PCM_HW_PARAM_ACCESS, This function cannot be called for SND_PCM_HW_PARAM_ACCESS,