diff --git a/examples/audio/audio_module_playing.c b/examples/audio/audio_module_playing.c index 516ba1c17..0c10efc93 100644 --- a/examples/audio/audio_module_playing.c +++ b/examples/audio/audio_module_playing.c @@ -70,7 +70,7 @@ int main(void) // Restart music playing (stop and play) if (IsKeyPressed(KEY_SPACE)) { - StopMusicStream(xm); + StopMusicStream(&xm); PlayMusicStream(xm); } diff --git a/examples/audio/audio_music_stream.c b/examples/audio/audio_music_stream.c index b53d42922..36f1fb5cd 100644 --- a/examples/audio/audio_music_stream.c +++ b/examples/audio/audio_music_stream.c @@ -42,7 +42,7 @@ int main(void) // Restart music playing (stop and play) if (IsKeyPressed(KEY_SPACE)) { - StopMusicStream(music); + StopMusicStream(&music); PlayMusicStream(music); } diff --git a/src/raudio.c b/src/raudio.c index 59167fc82..d432829be 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -1378,32 +1378,32 @@ void ResumeMusicStream(Music music) } // Stop music playing (close stream) -void StopMusicStream(Music music) +void StopMusicStream(Music* music) { - StopAudioStream(music.stream); + StopAudioStream(music->stream); // Restart music context - switch (music.ctxType) + switch (music->ctxType) { #if defined(SUPPORT_FILEFORMAT_OGG) - case MUSIC_AUDIO_OGG: stb_vorbis_seek_start((stb_vorbis *)music.ctxData); break; + case MUSIC_AUDIO_OGG: stb_vorbis_seek_start((stb_vorbis *)music->ctxData); break; #endif #if defined(SUPPORT_FILEFORMAT_FLAC) case MUSIC_AUDIO_FLAC: /* TODO: Restart FLAC context */ break; #endif #if defined(SUPPORT_FILEFORMAT_MP3) - case MUSIC_AUDIO_MP3: drmp3_seek_to_pcm_frame((drmp3 *)music.ctxData, 0); break; + case MUSIC_AUDIO_MP3: drmp3_seek_to_pcm_frame((drmp3 *)music->ctxData, 0); break; #endif #if defined(SUPPORT_FILEFORMAT_XM) - case MUSIC_MODULE_XM: jar_xm_reset((jar_xm_context_t *)music.ctxData); break; + case MUSIC_MODULE_XM: jar_xm_reset((jar_xm_context_t *)music->ctxData); break; #endif #if defined(SUPPORT_FILEFORMAT_MOD) - case MUSIC_MODULE_MOD: jar_mod_seek_start((jar_mod_context_t *)music.ctxData); break; + case MUSIC_MODULE_MOD: jar_mod_seek_start((jar_mod_context_t *)music->ctxData); break; #endif default: break; } - music.sampleLeft = music.sampleCount; + music->sampleLeft = music->sampleCount; } // Update (re-fill) music buffers if data already processed @@ -1488,7 +1488,7 @@ void UpdateMusicStream(Music* music) // Reset audio stream for looping if (streamEnding) { - StopMusicStream(*music); // Stop music (and reset) + StopMusicStream(music); // Stop music (and reset) // Decrease loopCount to stop when required if (music->loopCount > 1) @@ -1496,10 +1496,6 @@ void UpdateMusicStream(Music* music) music->loopCount--; // Decrease loop count PlayMusicStream(*music); // Play again } - else - { - if (music->loopCount == 0) PlayMusicStream(*music); - } } else { diff --git a/src/raudio.h b/src/raudio.h index 304304604..8cf2f8a9e 100644 --- a/src/raudio.h +++ b/src/raudio.h @@ -168,7 +168,7 @@ Music LoadMusicStream(const char *fileName); // Load music st void UnloadMusicStream(Music music); // Unload music stream void PlayMusicStream(Music music); // Start music playing void UpdateMusicStream(Music* music); // Updates buffers for music streaming -void StopMusicStream(Music music); // Stop music playing +void StopMusicStream(Music* music); // Stop music playing void PauseMusicStream(Music music); // Pause music playing void ResumeMusicStream(Music music); // Resume playing paused music bool IsMusicPlaying(Music music); // Check if music is playing diff --git a/src/raylib.h b/src/raylib.h index abfaa19d7..f81f5f465 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1378,7 +1378,7 @@ RLAPI Music LoadMusicStream(const char *fileName); // Load mu RLAPI void UnloadMusicStream(Music music); // Unload music stream RLAPI void PlayMusicStream(Music music); // Start music playing RLAPI void UpdateMusicStream(Music* music); // Updates buffers for music streaming -RLAPI void StopMusicStream(Music music); // Stop music playing +RLAPI void StopMusicStream(Music* music); // Stop music playing RLAPI void PauseMusicStream(Music music); // Pause music playing RLAPI void ResumeMusicStream(Music music); // Resume playing paused music RLAPI bool IsMusicPlaying(Music music); // Check if music is playing