From 69c0b6b2957c89445cca794e3f24058ae95e3f1e Mon Sep 17 00:00:00 2001 From: deuce <> Date: Tue, 30 Sep 2008 04:27:07 +0000 Subject: [PATCH] Fix partial writei() --- src/xpdev/xpbeep.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/xpdev/xpbeep.c b/src/xpdev/xpbeep.c index f80f8a6f36..f1c56f31df 100644 --- a/src/xpdev/xpbeep.c +++ b/src/xpdev/xpbeep.c @@ -634,7 +634,7 @@ void xp_play_sample_thread(void *data) int written=0; while(written < sample_size) { - ret=alsa_api->snd_pcm_writei(playback_handle, sample_buffer, sample_size); + ret=alsa_api->snd_pcm_writei(playback_handle, sample_buffer+written, sample_size-written); if(ret < 0) { if(written==0) { /* Go back and try OSS */ @@ -782,7 +782,7 @@ BOOL DLLCALL xp_play_sample(const unsigned char *sample, size_t sample_size, BOO int written=0; while(written < sample_size) { - ret=alsa_api->snd_pcm_writei(playback_handle, sample, sample_size); + ret=alsa_api->snd_pcm_writei(playback_handle, sample_written, sample_size-written); if(ret < 0) { if(written==0) { /* Go back and try OSS */ -- GitLab