From 821355361ccf360cd1867278178bc6fb32d8abab Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Fri, 27 Feb 2004 23:13:26 +0000 Subject: audio cleanups git-svn-id: https://svn.musicpd.org/mpd/trunk@109 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/audio.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'src/audio.c') diff --git a/src/audio.c b/src/audio.c index d1f8d863c..d8abc5648 100644 --- a/src/audio.c +++ b/src/audio.c @@ -131,12 +131,11 @@ int isCurrentAudioFormat(AudioFormat * audioFormat) { int initAudio(AudioFormat * audioFormat) { ao_sample_format format; - if(!audio_device) { - if(!isCurrentAudioFormat(audioFormat)) { - finishAudio(); - return 0; - } + if(audio_device && !isCurrentAudioFormat(audioFormat)) { + finishAudio(); + } + if(!audio_device) { format.bits = audioFormat->bits; format.rate = audioFormat->sampleRate; format.byte_format = AO_FMT_NATIVE; @@ -157,24 +156,29 @@ int initAudio(AudioFormat * audioFormat) { } -void playAudio(char * playChunk, int size) { +int playAudio(char * playChunk, int size) { int send; - if(audio_device==NULL) return 0; + if(audio_device==NULL) { + ERROR("trying to play w/ the audio device being open!\n"); + return -1; + } while(size>0) { send = audio_write_size>size?size:audio_write_size; - if(!ao_play(audio_device,playChunk,send)) { + if(ao_play(audio_device,playChunk,send)==0) { audioError(); ERROR("closing audio device due to write error\n"); finishAudio(); - return; + return -1; } playChunk+=send; size-=send; } + + return 0; } void finishAudio() { -- cgit v1.2.3