]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Uniformed some internal names. Bug fixes
authorAbramo Bagnara <abramo@alsa-project.org>
Mon, 15 Jan 2001 15:15:24 +0000 (15:15 +0000)
committerAbramo Bagnara <abramo@alsa-project.org>
Mon, 15 Jan 2001 15:15:24 +0000 (15:15 +0000)
16 files changed:
src/pcm/pcm.c
src/pcm/pcm_adpcm.c
src/pcm/pcm_alaw.c
src/pcm/pcm_copy.c
src/pcm/pcm_file.c
src/pcm/pcm_linear.c
src/pcm/pcm_local.h
src/pcm/pcm_mmap.c
src/pcm/pcm_mulaw.c
src/pcm/pcm_multi.c
src/pcm/pcm_params.c
src/pcm/pcm_plug.c
src/pcm/pcm_rate.c
src/pcm/pcm_route.c
src/pcm/pcm_share.c
src/pcm/pcm_shm.c

index 2cbce95e46037edd2b15908394b34346f67ef3f5..1a3640776878eca171fcd46536034c9eb23de3dd 100644 (file)
@@ -572,28 +572,28 @@ snd_pcm_sframes_t snd_pcm_bytes_to_frames(snd_pcm_t *pcm, ssize_t bytes)
 {
        assert(pcm);
        assert(pcm->setup);
-       return bytes * 8 / pcm->bits_per_frame;
+       return bytes * 8 / pcm->frame_bits;
 }
 
 ssize_t snd_pcm_frames_to_bytes(snd_pcm_t *pcm, snd_pcm_sframes_t frames)
 {
        assert(pcm);
        assert(pcm->setup);
-       return frames * pcm->bits_per_frame / 8;
+       return frames * pcm->frame_bits / 8;
 }
 
 int snd_pcm_bytes_to_samples(snd_pcm_t *pcm, ssize_t bytes)
 {
        assert(pcm);
        assert(pcm->setup);
-       return bytes * 8 / pcm->bits_per_sample;
+       return bytes * 8 / pcm->sample_bits;
 }
 
 ssize_t snd_pcm_samples_to_bytes(snd_pcm_t *pcm, int samples)
 {
        assert(pcm);
        assert(pcm->setup);
-       return samples * pcm->bits_per_sample / 8;
+       return samples * pcm->sample_bits / 8;
 }
 
 int snd_pcm_open(snd_pcm_t **pcmp, char *name, 
@@ -739,8 +739,8 @@ void snd_pcm_areas_from_buf(snd_pcm_t *pcm, snd_pcm_channel_area_t *areas,
        unsigned int channels = pcm->channels;
        for (channel = 0; channel < channels; ++channel, ++areas) {
                areas->addr = buf;
-               areas->first = channel * pcm->bits_per_sample;
-               areas->step = pcm->bits_per_frame;
+               areas->first = channel * pcm->sample_bits;
+               areas->step = pcm->frame_bits;
        }
 }
 
@@ -752,7 +752,7 @@ void snd_pcm_areas_from_bufs(snd_pcm_t *pcm, snd_pcm_channel_area_t *areas,
        for (channel = 0; channel < channels; ++channel, ++areas, ++bufs) {
                areas->addr = *bufs;
                areas->first = 0;
-               areas->step = pcm->bits_per_sample;
+               areas->step = pcm->sample_bits;
        }
 }
 
index 31c3f76ccc4b06ce2c25f98a61066fcf40e372fc..d31170e3b7c9e6159b5cf1b0d9c9c7fef2af89e7 100644 (file)
@@ -419,8 +419,6 @@ static int snd_pcm_adpcm_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params)
                SND_PCM_HW_PARBIT_TICK_TIME;
        err = snd_pcm_hw_params_refine(&sparams, links, params);
        assert(err >= 0);
-       err = _snd_pcm_hw_refine(&sparams);
-       assert(err >= 0);
        err = snd_pcm_hw_params(slave, &sparams);
        params->cmask = 0;
        sparams.cmask = ~0U;
index 1be95dbf210da8a331e3c19a2ed910f30608ed31..a4167a607c620482e21e409d34e64ac82d8ab101 100644 (file)
@@ -301,8 +301,6 @@ static int snd_pcm_alaw_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params)
                SND_PCM_HW_PARBIT_TICK_TIME;
        err = snd_pcm_hw_params_refine(&sparams, links, params);
        assert(err >= 0);
-       err = _snd_pcm_hw_refine(&sparams);
-       assert(err >= 0);
        err = snd_pcm_hw_params(slave, &sparams);
        params->cmask = 0;
        sparams.cmask = ~0U;
index e2bb724e98e5a924e708c8969ec45d794891937b..d5773dcebea24447b21fb9d10fd21586249a09b0 100644 (file)
@@ -76,8 +76,6 @@ static int snd_pcm_copy_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
        links = ~SND_PCM_HW_PARBIT_ACCESS;
        err = snd_pcm_hw_params_refine(&sparams, links, params);
        assert(err >= 0);
-       err = _snd_pcm_hw_refine(&sparams);
-       assert(err >= 0);
        err = snd_pcm_hw_params(slave, &sparams);
        params->cmask = 0;
        sparams.cmask = ~0U;
index ca2f8c8092aa2c29fea5dff08486a92188ac32ca..3da9043f5f5e8c76199e58fc7b1139605c9337aa 100644 (file)
@@ -335,8 +335,8 @@ static int snd_pcm_file_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params)
        for (channel = 0; channel < slave->channels; ++channel) {
                snd_pcm_channel_area_t *a = &file->wbuf_areas[channel];
                a->addr = file->wbuf;
-               a->first = slave->bits_per_sample * channel;
-               a->step = slave->bits_per_frame;
+               a->first = slave->sample_bits * channel;
+               a->step = slave->frame_bits;
        }
        return 0;
 }
index 4c30e9e99fea678252484134b53e068eb36d88c6..1d3313382e3c1c1dcf7c826dcc6c900343ee567f 100644 (file)
@@ -153,8 +153,6 @@ static int snd_pcm_linear_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
                SND_PCM_HW_PARBIT_TICK_TIME;
        err = snd_pcm_hw_params_refine(&sparams, links, params);
        assert(err >= 0);
-       err = _snd_pcm_hw_refine(&sparams);
-       assert(err >= 0);
        err = snd_pcm_hw_params(slave, &sparams);
        params->cmask = 0;
        sparams.cmask = ~0U;
index c465d96c4222922a7dd937dc970e225700639eef..5338b8a3312302198825daf55d53e9992713df9c 100644 (file)
@@ -113,8 +113,8 @@ struct _snd_pcm {
        unsigned int rate_den;          /* rate denominator */
        snd_pcm_uframes_t fifo_size;    /* chip FIFO size in frames */
        snd_pcm_uframes_t buffer_size;
-       unsigned int bits_per_sample;
-       unsigned int bits_per_frame;
+       unsigned int sample_bits;
+       unsigned int frame_bits;
        snd_pcm_uframes_t *appl_ptr;
        snd_pcm_uframes_t min_align;
        volatile snd_pcm_uframes_t *hw_ptr;
index d362aae6b54a9f60fe48a686718cd9afa6822fdb..27c4ebc96ef83065d344493219b6fa544a75cc8d 100644 (file)
@@ -230,13 +230,13 @@ int snd_pcm_channel_info_shm(snd_pcm_t *pcm, snd_pcm_channel_info_t *info,
        switch (pcm->access) {
        case SND_PCM_ACCESS_MMAP_INTERLEAVED:
        case SND_PCM_ACCESS_RW_INTERLEAVED:
-               info->first = info->channel * pcm->bits_per_sample;
-               info->step = pcm->bits_per_frame;
+               info->first = info->channel * pcm->sample_bits;
+               info->step = pcm->frame_bits;
                break;
        case SND_PCM_ACCESS_MMAP_NONINTERLEAVED:
        case SND_PCM_ACCESS_RW_NONINTERLEAVED:
                info->first = 0;
-               info->step = pcm->bits_per_sample;
+               info->step = pcm->sample_bits;
                break;
        default:
                assert(0);
@@ -281,7 +281,7 @@ int snd_pcm_mmap(snd_pcm_t *pcm)
                unsigned int c1;
                if (!i->addr) {
                        char *ptr;
-                       size_t size = i->first + i->step * (pcm->buffer_size - 1) + pcm->bits_per_sample;
+                       size_t size = i->first + i->step * (pcm->buffer_size - 1) + pcm->sample_bits;
                        for (c1 = c + 1; c1 < pcm->channels; ++c1) {
                                snd_pcm_channel_info_t *i1 = &pcm->mmap_channels[c1];
                                size_t s;
@@ -300,7 +300,7 @@ int snd_pcm_mmap(snd_pcm_t *pcm)
                                default:
                                        assert(0);
                                }
-                               s = i1->first + i1->step * (pcm->buffer_size - 1) + pcm->bits_per_sample;
+                               s = i1->first + i1->step * (pcm->buffer_size - 1) + pcm->sample_bits;
                                if (s > size)
                                        size = s;
                        }
index ff67c6d37386bffe064ab5490114b5f52c2b4e04..5904c5ae9b21fdfa9024e44a98765478f08c401a 100644 (file)
@@ -318,8 +318,6 @@ static int snd_pcm_mulaw_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params)
                SND_PCM_HW_PARBIT_TICK_TIME;
        err = snd_pcm_hw_params_refine(&sparams, links, params);
        assert(err >= 0);
-       err = _snd_pcm_hw_refine(&sparams);
-       assert(err >= 0);
        err = snd_pcm_hw_params(slave, &sparams);
        params->cmask = 0;
        sparams.cmask = ~0U;
index 28719ae8925c9ef38d04d014dfadc7b9833b7534..a6be1e4c5d7b9664ed781d12b862884c095ec1f9 100644 (file)
@@ -212,8 +212,6 @@ static int snd_pcm_multi_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
                                       multi->slaves[k].channels_count, 0);
                err = snd_pcm_hw_params_refine(&sparams, links, params);
                assert(err >= 0);
-               err = _snd_pcm_hw_refine(&sparams);
-               assert(err >= 0);
                err = snd_pcm_hw_params(slave, &sparams);
                params->cmask = 0;
                sparams.cmask = ~0U;
index 336e45f13027f9462d3ddc580017f3be7728d347..b9cb8a2eb0301ba88c5ad7f35dcf3b52f9665020 100644 (file)
@@ -2244,9 +2244,9 @@ int snd_pcm_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
        pcm->period_size = snd_pcm_hw_param_value(params, SND_PCM_HW_PARAM_PERIOD_SIZE, 0);
        pcm->buffer_size = snd_pcm_hw_param_value(params, SND_PCM_HW_PARAM_BUFFER_SIZE, 0);
        pcm->tick_time = snd_pcm_hw_param_value(params, SND_PCM_HW_PARAM_TICK_TIME, 0);
-       pcm->bits_per_sample = snd_pcm_format_physical_width(pcm->format);
-       pcm->bits_per_frame = pcm->bits_per_sample * pcm->channels;
-       fb = pcm->bits_per_frame;
+       pcm->sample_bits = snd_pcm_hw_param_value(params, SND_PCM_HW_PARAM_SAMPLE_BITS, 0);
+       pcm->frame_bits = snd_pcm_hw_param_value(params, SND_PCM_HW_PARAM_FRAME_BITS, 0);
+       fb = pcm->frame_bits;
        min_align = 1;
        while (fb % 8) {
                fb *= 2;
index 87b31112b0067c6cb04c30541de865dd9e484ead..4fb45f6be8183e2828bf589df2aaa334c6357197 100644 (file)
@@ -312,12 +312,15 @@ static int snd_pcm_plug_hw_link(snd_pcm_hw_params_t *params,
        if (format_never || channels_never || rate_never) {
                mask_t *mmap_mask = alloca(mask_sizeof());
                mask_load(mmap_mask, SND_PCM_ACCBIT_MMAP);
-               _snd_pcm_hw_param_mask(sparams, SND_PCM_HW_PARAM_ACCESS,
-                                      mmap_mask);
+               err = _snd_pcm_hw_param_mask(sparams, SND_PCM_HW_PARAM_ACCESS,
+                                            mmap_mask);
+               assert(err >= 0);
        } else
                mask_union(access_mask, snd_pcm_hw_param_value_mask(sparams, SND_PCM_HW_PARAM_ACCESS));
-       _snd_pcm_hw_param_mask(params, SND_PCM_HW_PARAM_ACCESS,
-                              access_mask);
+       err = _snd_pcm_hw_param_mask(params, SND_PCM_HW_PARAM_ACCESS,
+                                    access_mask);
+       if (err < 0)
+               return err;
        sparams->cmask |= scmask;
        return snd_pcm_generic_hw_link(params, sparams, slave, links);
 }
@@ -391,8 +394,8 @@ static void snd_pcm_plug_clear(snd_pcm_t *pcm)
 }
 
 typedef struct {
-       unsigned int access;
-       unsigned int format;
+       snd_pcm_access_t access;
+       snd_pcm_format_t format;
        unsigned int channels;
        unsigned int rate;
 } snd_pcm_plug_params_t;
@@ -603,18 +606,21 @@ static int snd_pcm_plug_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
        clt_params.channels = snd_pcm_hw_param_value(params, SND_PCM_HW_PARAM_CHANNELS, 0);
        clt_params.rate = snd_pcm_hw_param_value(params, SND_PCM_HW_PARAM_RATE, 0);
 
-       if (snd_pcm_hw_param_test(params, SND_PCM_HW_PARAM_ACCESS, clt_params.access))
-               slv_params.access = clt_params.access;
-       else
-               slv_params.access = snd_pcm_hw_param_first(slave, &sparams, SND_PCM_HW_PARAM_ACCESS, 0);
        slv_params.format = snd_pcm_hw_param_value(&sparams, SND_PCM_HW_PARAM_FORMAT, 0);
        slv_params.channels = snd_pcm_hw_param_value(&sparams, SND_PCM_HW_PARAM_CHANNELS, 0);
        slv_params.rate = snd_pcm_hw_param_value(&sparams, SND_PCM_HW_PARAM_RATE, 0);
-
        snd_pcm_plug_clear(pcm);
-       err = snd_pcm_plug_insert_plugins(pcm, &clt_params, &slv_params);
-       if (err < 0)
-               return err;
+       if (clt_params.format == slv_params.format &&
+           clt_params.channels == slv_params.channels &&
+           clt_params.rate == slv_params.rate &&
+           snd_pcm_hw_param_test(params, SND_PCM_HW_PARAM_ACCESS, clt_params.access))
+               slv_params.access = clt_params.access;
+       else {
+               slv_params.access = snd_pcm_hw_param_first(slave, &sparams, SND_PCM_HW_PARAM_ACCESS, 0);
+               err = snd_pcm_plug_insert_plugins(pcm, &clt_params, &slv_params);
+               if (err < 0)
+                       return err;
+       }
        err = snd_pcm_hw_params(plug->slave, params);
        if (err < 0) {
                snd_pcm_plug_clear(pcm);
index 351d853fc86b195b0ddd9b45b87f28bfd9f07ba7..23be3f4e3832c9ae93001cbfa82219bfaf1f129f 100644 (file)
@@ -335,8 +335,6 @@ static int snd_pcm_rate_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params)
                
        err = snd_pcm_hw_params_refine(&sparams, links, params);
        assert(err >= 0);
-       err = _snd_pcm_hw_refine(&sparams);
-       assert(err >= 0);
        err = snd_pcm_hw_params(slave, &sparams);
        params->cmask = 0;
        sparams.cmask = ~0U;
index c9125cb4475913c9f7ed9f70119e01c3038d24ec..761cb82ab7ff4ed742e1246c809f4823772f6be6 100644 (file)
@@ -499,7 +499,8 @@ static int snd_pcm_route_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params)
        snd_pcm_t *slave = route->plug.slave;
        int err;
        snd_pcm_hw_params_t sparams;
-       unsigned int links = (SND_PCM_HW_PARBIT_PERIODS |
+       unsigned int links = (SND_PCM_HW_PARBIT_RATE |
+                             SND_PCM_HW_PARBIT_PERIODS |
                              SND_PCM_HW_PARBIT_PERIOD_SIZE |
                              SND_PCM_HW_PARBIT_PERIOD_TIME |
                              SND_PCM_HW_PARBIT_BUFFER_SIZE |
@@ -534,8 +535,6 @@ static int snd_pcm_route_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params)
 
        err = snd_pcm_hw_params_refine(&sparams, links, params);
        assert(err >= 0);
-       err = _snd_pcm_hw_refine(&sparams);
-       assert(err >= 0);
        err = snd_pcm_hw_params(slave, &sparams);
        params->cmask = 0;
        sparams.cmask = ~0U;
index ef7ac47e52294f5c08d811ce845fd602afc2b59a..99fa5b719171b83f1610ea596f01db3d1da1de00 100644 (file)
@@ -584,8 +584,6 @@ static int snd_pcm_share_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
                                      share->channels_count, 0);
                err = snd_pcm_hw_params_refine(&sparams, links, params);
                assert(err >= 0);
-               err = _snd_pcm_hw_refine(&sparams);
-               assert(err >= 0);
                err = snd_pcm_hw_params(slave->pcm, &sparams);
                params->cmask = 0;
                sparams.cmask = ~0U;
index c6b1e5bbc565833021f98c37b0e73bd4e78dccc1..1da7f3386bbbdee46596edcbc4829898d3e58fe3 100644 (file)
@@ -235,13 +235,12 @@ static int snd_pcm_shm_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params)
                                saccess_mask);
        err = snd_pcm_hw_params_refine(&sparams, links, params);
        assert(err >= 0);
-       err = _snd_pcm_hw_refine(&sparams);
-       assert(err >= 0);
        err = _snd_pcm_shm_hw_params(pcm, &sparams);
-       if (err < 0) {
-               snd_pcm_hw_params_refine(params, links, &sparams);
+       params->cmask = 0;
+       sparams.cmask = ~0U;
+       snd_pcm_hw_params_refine(params, links, &sparams);
+       if (err < 0)
                return err;
-       }
        return 0;
 }