/* Play some of a stream previously started with OGG_play() */ int OGG_playAudio(OGG_music *music, Uint8 *snd, int len) { int mixable; while((len > 0) && music->playing) { if(!music->len_available) OGG_getsome(music); mixable = len; if(mixable > music->len_available) mixable = music->len_available; if(music->volume == MIX_MAX_VOLUME) SDL_memcpy(snd, music->snd_available, (size_t)mixable); else { SDL_MixAudioFormat(snd, music->snd_available, mixer.format, (Uint32)mixable, music->volume); } music->len_available -= mixable; music->snd_available += mixable; len -= mixable; snd += mixable; } return len; }
/* Play some of a stream previously started with OGG_play() */ int OGG_playAudio(OGG_music *music, Uint8 *snd, int len) { int mixable; while ( (len > 0) && music->playing ) { if ( ! music->len_available ) { OGG_getsome(music); } mixable = len; if ( mixable > music->len_available ) { mixable = music->len_available; } if ( music->volume == MIX_MAX_VOLUME ) { memcpy(snd, music->snd_available, mixable); } else { SDL_MixAudio(snd, music->snd_available, mixable, music->volume); } music->len_available -= mixable; music->snd_available += mixable; len -= mixable; snd += mixable; } return len; }