From 1519725d4a09feeeca978f09fa366dee984d8bd9 Mon Sep 17 00:00:00 2001 From: Raimon Zamora Date: Tue, 26 Nov 2024 14:37:23 +0100 Subject: [PATCH] =?UTF-8?q?-=20[NEW]=20JA=5FSetMusicPosition()=20i=20JA=5F?= =?UTF-8?q?GetMusicPosition(),=20per=20a=20obtindre=20o=20especificar=20la?= =?UTF-8?q?=20posici=C3=B3=20de=20la=20m=C3=BAsica=20en=20segons=20(decima?= =?UTF-8?q?ls).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jail_audio.cpp | 13 +++++++++++++ jail_audio.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/jail_audio.cpp b/jail_audio.cpp index e58f22e..d561221 100644 --- a/jail_audio.cpp +++ b/jail_audio.cpp @@ -81,6 +81,7 @@ void JA_Init(const int freq, const SDL_AudioFormat format, const int 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"); SDL_PauseAudioDevice(sdlAudioDevice, 0); } @@ -191,6 +192,18 @@ int JA_SetMusicVolume(int volume) return JA_musicVolume; } +void JA_SetMusicPosition(float value) +{ + if (!current_music) return; + current_music->pos = value * JA_freq; +} + +float JA_GetMusicPosition() +{ + if (!current_music) return 0; + return float(current_music->pos)/float(JA_freq); +} + void JA_EnableMusic(const bool value) { if (!value && current_music != NULL && current_music->state==JA_MUSIC_PLAYING) JA_StopMusic(); diff --git a/jail_audio.h b/jail_audio.h index eac8a82..c04b6a9 100644 --- a/jail_audio.h +++ b/jail_audio.h @@ -19,6 +19,8 @@ void JA_StopMusic(); JA_Music_state JA_GetMusicState(); void JA_DeleteMusic(JA_Music_t *music); int JA_SetMusicVolume(int volume); +void JA_SetMusicPosition(float value); +float JA_GetMusicPosition(); void JA_EnableMusic(const bool value); JA_Sound_t *JA_NewSound(Uint8* buffer, Uint32 length);