From b6b3bf452e5af94cb98a6e8206c7b05f20b3dc97 Mon Sep 17 00:00:00 2001 From: Raimon Zamora Date: Wed, 27 Nov 2024 13:33:07 +0100 Subject: [PATCH] =?UTF-8?q?-=20[FIX]=20La=20m=C3=BAsica=20duraba=20el=20do?= =?UTF-8?q?ble,=20i=20ho=20completaba=20amb=20roido?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jail_audio.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/jail_audio.cpp b/jail_audio.cpp index d561221..55ab056 100644 --- a/jail_audio.cpp +++ b/jail_audio.cpp @@ -41,7 +41,7 @@ SDL_AudioDeviceID sdlAudioDevice = 0; void audioCallback(void * userdata, uint8_t * stream, int len) { SDL_memset(stream, 0, len); if (current_music != NULL && current_music->state == JA_MUSIC_PLAYING) { - const int size = SDL_min(len, current_music->samples*2-current_music->pos); + const int size = SDL_min(len, (current_music->samples-current_music->pos)*2); SDL_MixAudioFormat(stream, (Uint8*)(current_music->output+current_music->pos), AUDIO_S16, size, JA_musicVolume); current_music->pos += size/2; if (size < len) { @@ -74,14 +74,26 @@ void audioCallback(void * userdata, uint8_t * stream, int len) { } } -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 channels) +{ + #ifdef DEBUG + SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG); + #endif + + SDL_Log("Iniciant JailAudio..."); JA_freq = freq; JA_format = format; JA_channels = channels; SDL_AudioSpec audioSpec{JA_freq, JA_format, JA_channels, 0, 1024, 0, 0, audioCallback, NULL}; if (sdlAudioDevice != 0) SDL_CloseAudioDevice(sdlAudioDevice); sdlAudioDevice = SDL_OpenAudioDevice(NULL, 0, &audioSpec, NULL, 0); - if (sdlAudioDevice==0) printf("Failed to initialize SDL audio!\n"); + if (sdlAudioDevice==0) + { + SDL_Log("FAILED!\n"); + SDL_Log("Failed to initialize SDL audio!\n"); + } else { + SDL_Log("OK!\n"); + } SDL_PauseAudioDevice(sdlAudioDevice, 0); } @@ -102,6 +114,7 @@ JA_Music_t *JA_LoadMusic(Uint8* buffer, Uint32 length) SDL_AudioCVT cvt; SDL_BuildAudioCVT(&cvt, AUDIO_S16, chan, samplerate, JA_format, JA_channels, JA_freq); + SDL_Log("Music length: %f\n", float(music->samples)/float(JA_freq)); if (cvt.needed) { cvt.len = music->samples * chan * 2; cvt.buf = (Uint8 *) SDL_malloc(cvt.len * cvt.len_mult);