fix ALSA write handling

This commit is contained in:
Sen 2025-03-20 12:03:01 +01:00
parent c50dcea4e3
commit 0e9b8803af

View file

@ -112,12 +112,16 @@ aud_write16
#else #else
wav_write16(&dev->wav, data, blocksize); wav_write16(&dev->wav, data, blocksize);
#endif #endif
rc = blocksize;
} }
else { else {
fwrite(data, 1, blocksize * dev->channels * SND_SMPSIZE, stdout); fwrite(data, 1, blocksize * dev->channels * SND_SMPSIZE, stdout);
rc = blocksize;
}
if(rc > 0) {
data += rc * dev->channels;
samples -= rc;
} }
data += blocksize * dev->channels;
samples -= blocksize;
if(dev->handle) { if(dev->handle) {
if(rc == -EAGAIN || (rc >= 0 && (size_t)rc < blocksize)) { if(rc == -EAGAIN || (rc >= 0 && (size_t)rc < blocksize)) {
snd_pcm_wait(dev->handle, 100); snd_pcm_wait(dev->handle, 100);