diff --git a/jail_audio.cpp b/jail_audio.cpp index 587b70e..176aef9 100644 --- a/jail_audio.cpp +++ b/jail_audio.cpp @@ -125,14 +125,15 @@ Uint32 JA_UpdateCallback(void *userdata, SDL_TimerID timerID, Uint32 interval) { if (channels[i].times != 0) { - if (SDL_GetAudioStreamAvailable(channels[i].stream) < (channels[i].sound->length/2)) + if (SDL_GetAudioStreamAvailable(channels[i].stream) < (channels[i].sound->length/2)) { SDL_PutAudioStreamData(channels[i].stream, channels[i].sound->buffer, channels[i].sound->length); - if (channels[i].times>0) channels[i].times--; + if (channels[i].times>0) channels[i].times--; + } + } + else + { + if (SDL_GetAudioStreamAvailable(channels[i].stream) == 0) JA_StopChannel(i); } - } - else - { - if (SDL_GetAudioStreamAvailable(channels[i].stream) == 0) JA_StopChannel(i); } } @@ -140,17 +141,18 @@ Uint32 JA_UpdateCallback(void *userdata, SDL_TimerID timerID, Uint32 interval) return 30; } -void JA_Init(const int freq, const SDL_AudioFormat format, const int channels) +void JA_Init(const int freq, const SDL_AudioFormat format, const int num_channels) { #ifdef DEBUG SDL_SetLogPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG); #endif SDL_Log("Iniciant JailAudio..."); - JA_audioSpec = {format, channels, freq }; + JA_audioSpec = {format, num_channels, freq }; if (!sdlAudioDevice) SDL_CloseAudioDevice(sdlAudioDevice); sdlAudioDevice = SDL_OpenAudioDevice(SDL_AUDIO_DEVICE_DEFAULT_PLAYBACK, &JA_audioSpec); SDL_Log( (sdlAudioDevice==0) ? "Failed to initialize SDL audio!\n" : "OK!\n"); + for (int i=0;i