]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Fixes and rename
authorAbramo Bagnara <abramo@alsa-project.org>
Mon, 4 Dec 2000 10:07:51 +0000 (10:07 +0000)
committerAbramo Bagnara <abramo@alsa-project.org>
Mon, 4 Dec 2000 10:07:51 +0000 (10:07 +0000)
src/pcm/pcm.c
src/pcm/pcm_local.h

index d39d35c3ac1a0940f4f07d67a71372e1be0b7dab..5eaa2d405194ebe308d5717d5939ac26eab80fb5 100644 (file)
@@ -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 */
index ba94da8de86420c9d1e92b8074621c7b2568bc80..fbb45e4f79a3eb3fb4c405f77516e8486587a538 100644 (file)
@@ -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;