Small simplifications (#2615)
This commit is contained in:
parent
82b76149da
commit
d70e5cd26b
33
src/raudio.c
33
src/raudio.c
@ -1667,16 +1667,16 @@ void StopMusicStream(Music music)
|
|||||||
switch (music.ctxType)
|
switch (music.ctxType)
|
||||||
{
|
{
|
||||||
#if defined(SUPPORT_FILEFORMAT_WAV)
|
#if defined(SUPPORT_FILEFORMAT_WAV)
|
||||||
case MUSIC_AUDIO_WAV: drwav_seek_to_pcm_frame((drwav *)music.ctxData, 0); break;
|
case MUSIC_AUDIO_WAV: drwav_seek_to_first_pcm_frame((drwav *)music.ctxData); break;
|
||||||
#endif
|
#endif
|
||||||
#if defined(SUPPORT_FILEFORMAT_OGG)
|
#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
|
#endif
|
||||||
#if defined(SUPPORT_FILEFORMAT_FLAC)
|
#if defined(SUPPORT_FILEFORMAT_FLAC)
|
||||||
case MUSIC_AUDIO_FLAC: drflac_seek_to_pcm_frame((drflac *)music.ctxData, 0); break;
|
case MUSIC_AUDIO_FLAC: drflac__seek_to_first_frame((drflac *)music.ctxData); break;
|
||||||
#endif
|
#endif
|
||||||
#if defined(SUPPORT_FILEFORMAT_MP3)
|
#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_start_of_stream((drmp3 *)music.ctxData); break;
|
||||||
#endif
|
#endif
|
||||||
#if defined(SUPPORT_FILEFORMAT_XM)
|
#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;
|
||||||
@ -1721,7 +1721,6 @@ void UpdateMusicStream(Music music)
|
|||||||
{
|
{
|
||||||
if (music.stream.buffer == NULL) return;
|
if (music.stream.buffer == NULL) return;
|
||||||
|
|
||||||
bool streamEnding = false;
|
|
||||||
unsigned int subBufferSizeInFrames = music.stream.buffer->sizeInFrames/2;
|
unsigned int subBufferSizeInFrames = music.stream.buffer->sizeInFrames/2;
|
||||||
|
|
||||||
// On first call of this function we lazily pre-allocated a temp buffer to read audio files/memory data in
|
// On first call of this function we lazily pre-allocated a temp buffer to read audio files/memory data in
|
||||||
@ -1845,22 +1844,18 @@ void UpdateMusicStream(Music music)
|
|||||||
|
|
||||||
if (framesLeft <= subBufferSizeInFrames)
|
if (framesLeft <= subBufferSizeInFrames)
|
||||||
{
|
{
|
||||||
// Streaming is ending, we filled latest frames from input
|
if (!music.looping)
|
||||||
streamEnding = true;
|
{
|
||||||
break;
|
// Streaming is ending, we filled latest frames from input
|
||||||
|
StopMusicStream(music);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (streamEnding)
|
// NOTE: In case window is minimized, music stream is stopped,
|
||||||
{
|
// just make sure to play again on window restore
|
||||||
if (!music.looping) StopMusicStream(music);
|
if (IsMusicStreamPlaying(music)) PlayMusicStream(music);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// NOTE: In case window is minimized, music stream is stopped,
|
|
||||||
// just make sure to play again on window restore
|
|
||||||
if (IsMusicStreamPlaying(music)) PlayMusicStream(music);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if any music is playing
|
// Check if any music is playing
|
||||||
@ -2003,9 +1998,7 @@ void UpdateAudioStream(AudioStream stream, const void *data, int frameCount)
|
|||||||
// Assuming so, but if not will need to change this logic.
|
// Assuming so, but if not will need to change this logic.
|
||||||
if (subBufferSizeInFrames >= (ma_uint32)frameCount)
|
if (subBufferSizeInFrames >= (ma_uint32)frameCount)
|
||||||
{
|
{
|
||||||
ma_uint32 framesToWrite = subBufferSizeInFrames;
|
ma_uint32 framesToWrite = (ma_uint32)frameCount;
|
||||||
|
|
||||||
if (framesToWrite > (ma_uint32)frameCount) framesToWrite = (ma_uint32)frameCount;
|
|
||||||
|
|
||||||
ma_uint32 bytesToWrite = framesToWrite*stream.channels*(stream.sampleSize/8);
|
ma_uint32 bytesToWrite = framesToWrite*stream.channels*(stream.sampleSize/8);
|
||||||
memcpy(subBuffer, data, bytesToWrite);
|
memcpy(subBuffer, data, bytesToWrite);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user