From: Abramo Bagnara Date: Mon, 4 Dec 2000 10:07:51 +0000 (+0000) Subject: Fixes and rename X-Git-Tag: v1.0.3~1062 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=da48c7553afc67d2bb7a03da97e0e6e9171c00d2;p=alsa-lib.git Fixes and rename --- diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c index d39d35c3..5eaa2d40 100644 --- a/src/pcm/pcm.c +++ b/src/pcm/pcm.c @@ -585,7 +585,7 @@ int snd_pcm_dump_hw_setup(snd_pcm_t *pcm, FILE *fp) fprintf(fp, "subformat : %s\n", assoc(pcm->subformat, snd_pcm_subformat_names)); fprintf(fp, "channels : %d\n", pcm->channels); fprintf(fp, "rate : %d\n", pcm->rate); - fprintf(fp, "exact rate : %g (%d/%d)\n", (double) pcm->rate_master / pcm->rate_divisor, pcm->rate_master, pcm->rate_divisor); + fprintf(fp, "exact rate : %g (%d/%d)\n", (double) pcm->rate_num / pcm->rate_den, pcm->rate_num, pcm->rate_den); fprintf(fp, "msbits : %d\n", pcm->msbits); fprintf(fp, "fragment_size: %ld\n", (long)pcm->fragment_size); fprintf(fp, "fragments : %d\n", pcm->fragments); @@ -1427,10 +1427,10 @@ int snd_pcm_hw_info_complete(snd_pcm_hw_info_t *info) if (bits_min == bits_max) info->msbits = bits_min; } - if (info->rate_divisor == 0 && + if (info->rate_den == 0 && info->rate_min == info->rate_max) { - info->rate_master = info->rate_min; - info->rate_divisor = 1; + info->rate_num = info->rate_min; + info->rate_den = 1; } return 0; } @@ -1815,7 +1815,6 @@ long snd_pcm_hw_info_par_nearest_next(const snd_pcm_hw_info_t *info, snd_pcm_t *pcm) { unsigned long min, max; - unsigned long d1, d2; unsigned long max1, min2; snd_pcm_hw_info_t i1, i2; int err1 = -EINVAL; @@ -1825,23 +1824,24 @@ long snd_pcm_hw_info_par_nearest_next(const snd_pcm_hw_info_t *info, i1 = *info; i2 = *info; if (value < 0) { - d1 = 0; - d2 = 0; + max1 = best; + min2 = best + 1; } else { long diff = value - best; if (diff < 0) { - d1 = -diff + 1; - d2 = -diff; + if (value > 1) + max1 = value - 1; + else + max1 = 0; + min2 = best - diff; } else { - d1 = diff + 1; - d2 = diff + 1; + if (best > (unsigned long) diff) + max1 = best - diff - 1; + else + max1 = 0; + min2 = value + 1; } } - if (best > d1) - max1 = best - d1; - else - max1 = 0; - min2 = best + d2; max1 = snd_pcm_hw_info_par_refine_max(&i1, param, max1); min2 = snd_pcm_hw_info_par_refine_min(&i2, param, min2); if (min <= max1) { @@ -1959,8 +1959,8 @@ int _snd_pcm_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t *params) pcm->info = info.info; pcm->msbits = info.msbits; - pcm->rate_master = info.rate_master; - pcm->rate_divisor = info.rate_divisor; + pcm->rate_num = info.rate_num; + pcm->rate_den = info.rate_den; pcm->fifo_size = info.fifo_size; /* Default sw params */ diff --git a/src/pcm/pcm_local.h b/src/pcm/pcm_local.h index ba94da8d..fbb45e4f 100644 --- a/src/pcm/pcm_local.h +++ b/src/pcm/pcm_local.h @@ -113,8 +113,8 @@ struct _snd_pcm { size_t boundary; /* pointers wrap point */ unsigned int info; /* Info for returned setup */ unsigned int msbits; /* used most significant bits */ - unsigned int rate_master; /* Exact rate is rate_master / */ - unsigned int rate_divisor; /* rate_divisor */ + unsigned int rate_num; /* rate numerator */ + unsigned int rate_den; /* rate denominator */ size_t fifo_size; /* chip FIFO size in frames */ size_t buffer_size; size_t bits_per_sample;