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,
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,
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 ? ')' : ']');
- }
}
#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 &&
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)
{
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)
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)
{
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)
{
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,