# HG changeset patch # User alex # Date 1088241667 0 # Node ID c1371fce726759d692f5459e6e900c4ca101f6a6 # Parent 9709ce10194980af6a9710a92e10605792f2d153 make the internal sdl mixer optional, idea by Reimar Doffinger diff -r 9709ce101949 -r c1371fce7267 libao2/ao_sdl.c --- a/libao2/ao_sdl.c Sat Jun 26 09:14:20 2004 +0000 +++ b/libao2/ao_sdl.c Sat Jun 26 09:21:07 2004 +0000 @@ -35,6 +35,9 @@ LIBAO_EXTERN(sdl) +// turn this on if you want to use the slower SDL_MixAudio +#undef USE_SDL_INTERNAL_MIXER + // Samplesize used by the SDLlib AudioSpec struct #ifdef WIN32 #define SAMPLESIZE 2048 @@ -53,7 +56,9 @@ static unsigned int buf_write=0; static unsigned int buf_read_pos=0; static unsigned int buf_write_pos=0; +#ifdef USE_SDL_INTERNAL_MIXER static unsigned char volume=SDL_MIX_MAXVOLUME; +#endif static int full_buffers=0; static int buffered_bytes=0; @@ -87,7 +92,11 @@ x=BUFFSIZE-buf_read_pos; if(x>len) x=len; if (x>buffered_bytes) x=buffered_bytes; +#ifdef USE_SDL_INTERNAL_MIXER SDL_MixAudio(data+len2,buffer[buf_read]+buf_read_pos,x,volume); +#else + memcpy(data+len2,buffer[buf_read]+buf_read_pos,x); +#endif len2+=x; len-=x; buffered_bytes-=x; buf_read_pos+=x; if(buf_read_pos>=BUFFSIZE){ @@ -121,6 +130,7 @@ // to set/get/query special features/parameters static int control(int cmd,void *arg){ +#ifdef USE_SDL_INTERNAL_MIXER switch (cmd) { case AOCONTROL_GET_VOLUME: { @@ -137,7 +147,8 @@ return CONTROL_OK; } } - return -1; +#endif + return CONTROL_UNKNOWN; } // SDL Callback function