aboutsummaryrefslogtreecommitdiffstats
path: root/src/audioOutput_ao.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/audioOutput_ao.c')
-rw-r--r--src/audioOutput_ao.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/audioOutput_ao.c b/src/audioOutput_ao.c
index 023b7f4a9..6db54f2a5 100644
--- a/src/audioOutput_ao.c
+++ b/src/audioOutput_ao.c
@@ -44,6 +44,18 @@ static AoData * newAoData() {
return ret;
}
+static void audioOutputAo_error() {
+ if(errno==AO_ENOTLIVE) {
+ ERROR("not a live ao device\n");
+ }
+ else if(errno==AO_EOPENDEVICE) {
+ ERROR("not able to open audio device\n");
+ }
+ else if(errno==AO_EBADOPTION) {
+ ERROR("bad driver option\n");
+ }
+}
+
static void audioOutputAo_initDriver(AudioOutput * audioOutput) {
ao_info * ai;
char * dup;
@@ -183,7 +195,7 @@ static int audioOutputAo_play(AudioOutput * audioOutput, char * playChunk,
send = ad->writeSize > size ? size : ad->writeSize;
if(ao_play(ad->device, playChunk, send)==0) {
- audioError();
+ audioOutputAo_error();
ERROR("closing audio device due to write error\n");
audioOutputAo_closeDevice(audioOutput);
return -1;