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);