Sophie

Sophie

distrib > Mandriva > cooker > x86_64 > media > contrib-release-src > by-pkgid > 77f46a5fa57c474300cfe46baf4761f8 > files > 2

vice-sdl-2.3-2.src.rpm

--- trunk/vice/src/sounddrv/soundalsa.c	2009/01/18 22:37:28	20033
+++ trunk/vice/src/sounddrv/soundalsa.c	2009/01/19 15:54:21	20034
@@ -167,17 +167,14 @@
 
 static int alsa_bufferspace(void)
 {
-    int err;
-    snd_pcm_sframes_t delay;
-
-    if ((err = snd_pcm_delay(handle, &delay)) < 0) {
-	if ((err = xrun_recovery(handle, err)) < 0) {
-	    log_message(LOG_DEFAULT, "Delay error: %s", snd_strerror(err));
-	}
-	return alsa_bufsize;
-    }
-
-    return alsa_bufsize - delay;
+    snd_pcm_sframes_t space = snd_pcm_avail_update(handle);
+    /* keep alsa values real. Someone else figures out under/overruns, which
+     * these results most likely signify. */
+    if (space < 0)
+        space = 0;
+    if (space > alsa_bufsize)
+        space = alsa_bufsize;
+    return space;
 }
 
 static void alsa_close(void)