fix ALSA write handling
This commit is contained in:
parent
c50dcea4e3
commit
0e9b8803af
1 changed files with 6 additions and 2 deletions
|
@ -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);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue