- [NEW] JA_SetMusicPosition() i JA_GetMusicPosition(), per a obtindre o especificar la posició de la música en segons (decimals).

This commit is contained in:
2024-11-26 14:37:23 +01:00
parent f0687f9f4d
commit 1519725d4a
2 changed files with 15 additions and 0 deletions

View File

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

View File

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