SeekMusicStream initial implementation (#2006)

This commit is contained in:
Uneven Prankster 2021-09-22 16:55:13 -03:00 committed by GitHub
parent 9607ea5c0a
commit 19ef765382
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 0 deletions

View file

@ -1656,6 +1656,28 @@ void StopMusicStream(Music music)
}
}
// Seek music to a certain position (in seconds)
void SeekMusicStream(Music music, float position)
{
unsigned int positionInFrames = (unsigned int)(position * music.stream.sampleRate);
switch (music.ctxType)
{
#if defined(SUPPORT_FILEFORMAT_WAV)
case MUSIC_AUDIO_WAV: drwav_seek_to_pcm_frame((drwav *)music.ctxData, positionInFrames); break;
#endif
#if defined(SUPPORT_FILEFORMAT_OGG)
case MUSIC_AUDIO_OGG: stb_vorbis_seek_frame((stb_vorbis *)music.ctxData, positionInFrames); break;
#endif
#if defined(SUPPORT_FILEFORMAT_FLAC)
case MUSIC_AUDIO_FLAC: drflac_seek_to_pcm_frame((drflac *)music.ctxData, positionInFrames); break;
#endif
#if defined(SUPPORT_FILEFORMAT_MP3)
case MUSIC_AUDIO_MP3: drmp3_seek_to_pcm_frame((drmp3 *)music.ctxData, positionInFrames); break;
#endif
default: break;
}
}
// Update (re-fill) music buffers if data already processed
void UpdateMusicStream(Music music)
{