Fix use of -ESTRPIPE where it's not available in errno
NetBSD does not have -ESTRPIPE, so use it only when defined. http://netbsd.gw.com/cgi-bin/man-cgi?errno+2+NetBSD-6.0 and https://mail-index.netbsd.org/pkgsrc-wip-discuss/2013/10/27/msg002529.html Change-Id: I92921a16fcae95f58a870aea98ca66f5a5d30a12 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
This commit is contained in:
@@ -121,6 +121,12 @@ int QAlsaAudioInput::xrun_recovery(int err)
|
|||||||
int count = 0;
|
int count = 0;
|
||||||
bool reset = false;
|
bool reset = false;
|
||||||
|
|
||||||
|
// ESTRPIPE is not available in all OSes where ALSA is available
|
||||||
|
int estrpipe = EIO;
|
||||||
|
#ifdef ESTRPIPE
|
||||||
|
estrpipe = ESTRPIPE;
|
||||||
|
#endif
|
||||||
|
|
||||||
if(err == -EPIPE) {
|
if(err == -EPIPE) {
|
||||||
errorState = QAudio::UnderrunError;
|
errorState = QAudio::UnderrunError;
|
||||||
err = snd_pcm_prepare(handle);
|
err = snd_pcm_prepare(handle);
|
||||||
@@ -131,8 +137,7 @@ int QAlsaAudioInput::xrun_recovery(int err)
|
|||||||
if (bytesAvailable <= 0)
|
if (bytesAvailable <= 0)
|
||||||
reset = true;
|
reset = true;
|
||||||
}
|
}
|
||||||
|
} else if ((err == -estrpipe)||(err == -EIO)) {
|
||||||
} else if((err == -ESTRPIPE)||(err == -EIO)) {
|
|
||||||
errorState = QAudio::IOError;
|
errorState = QAudio::IOError;
|
||||||
while((err = snd_pcm_resume(handle)) == -EAGAIN){
|
while((err = snd_pcm_resume(handle)) == -EAGAIN){
|
||||||
usleep(100);
|
usleep(100);
|
||||||
@@ -541,8 +546,10 @@ qint64 QAlsaAudioInput::read(char* data, qint64 len)
|
|||||||
if(readFrames == -EPIPE) {
|
if(readFrames == -EPIPE) {
|
||||||
errorState = QAudio::UnderrunError;
|
errorState = QAudio::UnderrunError;
|
||||||
err = snd_pcm_prepare(handle);
|
err = snd_pcm_prepare(handle);
|
||||||
|
#ifdef ESTRPIPE
|
||||||
} else if(readFrames == -ESTRPIPE) {
|
} else if(readFrames == -ESTRPIPE) {
|
||||||
err = snd_pcm_prepare(handle);
|
err = snd_pcm_prepare(handle);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
if(err != 0) break;
|
if(err != 0) break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,6 +114,12 @@ int QAlsaAudioOutput::xrun_recovery(int err)
|
|||||||
int count = 0;
|
int count = 0;
|
||||||
bool reset = false;
|
bool reset = false;
|
||||||
|
|
||||||
|
// ESTRPIPE is not available in all OSes where ALSA is available
|
||||||
|
int estrpipe = EIO;
|
||||||
|
#ifdef ESTRPIPE
|
||||||
|
estrpipe = ESTRPIPE;
|
||||||
|
#endif
|
||||||
|
|
||||||
if(err == -EPIPE) {
|
if(err == -EPIPE) {
|
||||||
errorState = QAudio::UnderrunError;
|
errorState = QAudio::UnderrunError;
|
||||||
emit errorChanged(errorState);
|
emit errorChanged(errorState);
|
||||||
@@ -121,7 +127,7 @@ int QAlsaAudioOutput::xrun_recovery(int err)
|
|||||||
if(err < 0)
|
if(err < 0)
|
||||||
reset = true;
|
reset = true;
|
||||||
|
|
||||||
} else if((err == -ESTRPIPE)||(err == -EIO)) {
|
} else if ((err == -estrpipe)||(err == -EIO)) {
|
||||||
errorState = QAudio::IOError;
|
errorState = QAudio::IOError;
|
||||||
emit errorChanged(errorState);
|
emit errorChanged(errorState);
|
||||||
while((err = snd_pcm_resume(handle)) == -EAGAIN){
|
while((err = snd_pcm_resume(handle)) == -EAGAIN){
|
||||||
|
|||||||
Reference in New Issue
Block a user