Added helper. Tiny cleanings

This commit is contained in:
Abramo Bagnara 2000-11-25 21:34:36 +00:00
parent 49affda3a0
commit 115c827b24
2 changed files with 33 additions and 7 deletions

View file

@ -91,6 +91,7 @@ ssize_t snd_pcm_readn(snd_pcm_t *pcm, void **bufs, size_t size);
int snd_pcm_dump_hw_setup(snd_pcm_t *pcm, FILE *fp);
int snd_pcm_dump_sw_setup(snd_pcm_t *pcm, FILE *fp);
int snd_pcm_dump_setup(snd_pcm_t *pcm, FILE *fp);
int snd_pcm_dump_hw_info(snd_pcm_hw_info_t *info, FILE *fp);
int snd_pcm_dump_hw_params_fail(snd_pcm_hw_params_t *params, FILE *fp);
int snd_pcm_dump_sw_params_fail(snd_pcm_sw_params_t *params, FILE *fp);
int snd_pcm_dump(snd_pcm_t *pcm, FILE *fp);
@ -101,6 +102,7 @@ int snd_pcm_unlink(snd_pcm_t *pcm);
int snd_pcm_wait(snd_pcm_t *pcm, int timeout);
ssize_t snd_pcm_avail_update(snd_pcm_t *pcm);
int snd_pcm_set_avail_min(snd_pcm_t *pcm, size_t size);
void snd_pcm_hw_info_all(snd_pcm_hw_info_t *info);
int snd_pcm_hw_params_rules(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
unsigned int count, int *rules);
int snd_pcm_hw_params_rulesv(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, ...);

View file

@ -112,8 +112,27 @@ int snd_pcm_hw_info(snd_pcm_t *pcm, snd_pcm_hw_info_t *info)
return err;
}
void snd_pcm_hw_info_all(snd_pcm_hw_info_t *info)
{
assert(info);
info->access_mask = ~0;
info->format_mask = ~0;
info->subformat_mask = ~0;
info->channels_min = 1;
info->channels_max = UINT_MAX;
info->rate_min = 1;
info->rate_max = UINT_MAX;
info->fragment_size_min = 1;
info->fragment_size_max = ULONG_MAX;
info->fragments_min = 1;
info->fragments_max = UINT_MAX;
info->buffer_size_min = 1;
info->buffer_size_max = ULONG_MAX;
}
void snd_pcm_hw_params_to_info(snd_pcm_hw_params_t *params, snd_pcm_hw_info_t *info)
{
assert(info && params);
info->access_mask = 1U << params->access;
info->format_mask = 1U << params->format;
info->subformat_mask = 1U << params->subformat;
@ -656,12 +675,13 @@ int snd_pcm_dump_setup(snd_pcm_t *pcm, FILE *fp)
return 0;
}
int snd_pcm_dump_hw_info(snd_pcm_hw_info_t *info,
FILE *fp)
int snd_pcm_dump_hw_info(snd_pcm_hw_info_t *info, FILE *fp)
{
unsigned int k;
fputs("access:", fp);
if (info->access_mask) {
if (info->access_mask == ~0)
fputs(" ALL", fp);
else if (info->access_mask) {
for (k = 0; k <= SND_PCM_ACCESS_LAST; ++k)
if (info->access_mask & (1U << k)) {
putc(' ', fp);
@ -672,7 +692,9 @@ int snd_pcm_dump_hw_info(snd_pcm_hw_info_t *info,
putc('\n', fp);
fputs("format:", fp);
if (info->format_mask) {
if (info->format_mask == ~0)
fputs(" ALL", fp);
else if (info->format_mask) {
for (k = 0; k <= SND_PCM_FORMAT_LAST; ++k)
if (info->format_mask & (1U << k)) {
putc(' ', fp);
@ -683,7 +705,9 @@ int snd_pcm_dump_hw_info(snd_pcm_hw_info_t *info,
putc('\n', fp);
fputs("subformat:", fp);
if (info->subformat_mask) {
if (info->subformat_mask == ~0)
fputs(" ALL", fp);
else if (info->subformat_mask) {
for (k = 0; k <= SND_PCM_SUBFORMAT_LAST; ++k)
if (info->subformat_mask & (1U << k)) {
putc(' ', fp);
@ -694,7 +718,7 @@ int snd_pcm_dump_hw_info(snd_pcm_hw_info_t *info,
putc('\n', fp);
fputs("channels: ", fp);
if (info->channels_min == 0 && info->channels_max == UINT_MAX)
if (info->channels_min <= 1 && info->channels_max == UINT_MAX)
fputs("ALL", fp);
else if (info->channels_min > info->channels_max)
fputs("NONE", fp);
@ -706,7 +730,7 @@ int snd_pcm_dump_hw_info(snd_pcm_hw_info_t *info,
putc('\n', fp);
fputs("rate: ", fp);
if (info->rate_min == 0 && info->rate_max == UINT_MAX)
if (info->rate_min <= 1 && info->rate_max == UINT_MAX)
fputs("ALL", fp);
else if (info->rate_min > info->rate_max)
fputs("NONE", fp);