mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-22 00:06:59 +02:00
Minor refactor.
This commit is contained in:
+22
-15
@@ -8324,21 +8324,22 @@ static void ma_sound_mix_wait(ma_sound* pSound)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void ma_engine_mix_sound(ma_engine* pEngine, ma_sound_group* pGroup, ma_sound* pSound, ma_uint64 frameCount)
|
||||
static void ma_engine_mix_sound_internal(ma_engine* pEngine, ma_sound_group* pGroup, ma_sound* pSound, ma_uint64 frameCount)
|
||||
{
|
||||
MA_ASSERT(pEngine != NULL);
|
||||
MA_ASSERT(pGroup != NULL);
|
||||
MA_ASSERT(pSound != NULL);
|
||||
|
||||
c89atomic_exchange_32(&pSound->isMixing, MA_TRUE); /* This must be done before checking the isPlaying state. */
|
||||
{
|
||||
if (pSound->isPlaying) {
|
||||
ma_result result = MA_SUCCESS;
|
||||
ma_uint64 framesProcessed;
|
||||
|
||||
/* Don't do anything if we're not playing. */
|
||||
if (pSound->isPlaying == MA_FALSE) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* If we're marked at the end we need to stop the sound and do nothing. */
|
||||
if (!pSound->atEnd) {
|
||||
if (pSound->atEnd) {
|
||||
ma_sound_stop_internal(pSound);
|
||||
return;
|
||||
}
|
||||
|
||||
/* If we're seeking, do so now before reading. */
|
||||
if (pSound->seekTarget != MA_SEEK_TARGET_NONE) {
|
||||
pSound->seekTarget = MA_SEEK_TARGET_NONE;
|
||||
@@ -8401,11 +8402,17 @@ static void ma_engine_mix_sound(ma_engine* pEngine, ma_sound_group* pGroup, ma_s
|
||||
ma_sound_stop_internal(pSound);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* The sound is at the end. Make sure it's marked as stopped. */
|
||||
ma_sound_stop_internal(pSound);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ma_engine_mix_sound(ma_engine* pEngine, ma_sound_group* pGroup, ma_sound* pSound, ma_uint64 frameCount)
|
||||
{
|
||||
MA_ASSERT(pEngine != NULL);
|
||||
MA_ASSERT(pGroup != NULL);
|
||||
MA_ASSERT(pSound != NULL);
|
||||
|
||||
c89atomic_exchange_32(&pSound->isMixing, MA_TRUE); /* This must be done before checking the isPlaying state. */
|
||||
{
|
||||
ma_engine_mix_sound_internal(pEngine, pGroup, pSound, frameCount);
|
||||
}
|
||||
c89atomic_exchange_32(&pSound->isMixing, MA_FALSE);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user