]> git.alsa-project.org Git - alsa-lib.git/commitdiff
sign fixes
authorAbramo Bagnara <abramo@alsa-project.org>
Wed, 14 Feb 2001 13:20:23 +0000 (13:20 +0000)
committerAbramo Bagnara <abramo@alsa-project.org>
Wed, 14 Feb 2001 13:20:23 +0000 (13:20 +0000)
src/pcm/pcm_local.h

index 0bcd15b1e91589d2f8d60f4696d1109d3b366977..edeb5f70f1fe636340d51b1c1841d159f1924e28 100644 (file)
@@ -208,10 +208,10 @@ static inline snd_pcm_uframes_t snd_pcm_mmap_playback_avail(snd_pcm_t *pcm)
 {
        snd_pcm_sframes_t avail;
        avail = *pcm->hw_ptr + pcm->buffer_size - *pcm->appl_ptr;
-       if (avail >= pcm->boundary)
-               avail -= pcm->boundary;
-       else if (avail < 0)
+       if (avail < 0)
                avail += pcm->boundary;
+       else if ((snd_pcm_uframes_t) avail >= pcm->boundary)
+               avail -= pcm->boundary;
        return avail;
 }
 
@@ -226,16 +226,10 @@ static inline snd_pcm_uframes_t snd_pcm_mmap_capture_avail(snd_pcm_t *pcm)
 
 static inline snd_pcm_uframes_t snd_pcm_mmap_avail(snd_pcm_t *pcm)
 {
-       snd_pcm_sframes_t avail;
-       avail = *pcm->hw_ptr - *pcm->appl_ptr;
-       if (pcm->stream == SND_PCM_STREAM_PLAYBACK) {
-               avail += pcm->buffer_size;
-               if (avail >= pcm->boundary)
-                       avail -= pcm->boundary;
-       }
-       if (avail < 0)
-               avail += pcm->boundary;
-       return avail;
+       if (pcm->stream == SND_PCM_STREAM_PLAYBACK)
+               return snd_pcm_mmap_playback_avail(pcm);
+       else
+               return snd_pcm_mmap_capture_avail(pcm);
 }
 
 static inline snd_pcm_sframes_t snd_pcm_mmap_playback_hw_avail(snd_pcm_t *pcm)