Skip to content

Commit

Permalink
backport bug 4770 fix: Mix_FadeOutChannel never sets fade_volume_reset
Browse files Browse the repository at this point in the history
  • Loading branch information
1bsyl committed Aug 27, 2019
1 parent f571410 commit cced391
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions mixer.c
Expand Up @@ -940,9 +940,11 @@ int Mix_FadeInChannelTimed(int which, Mix_Chunk *chunk, int loops, int ms, int t
mix_channel[which].looping = loops;
mix_channel[which].chunk = chunk;
mix_channel[which].paused = 0;
if (mix_channel[which].fading == MIX_NO_FADING) {
mix_channel[which].fade_volume_reset = mix_channel[which].volume;
}
mix_channel[which].fading = MIX_FADING_IN;
mix_channel[which].fade_volume = mix_channel[which].volume;
mix_channel[which].fade_volume_reset = mix_channel[which].volume;
mix_channel[which].volume = 0;
mix_channel[which].fade_length = (Uint32)ms;
mix_channel[which].start_time = mix_channel[which].ticks_fade = sdl_ticks;
Expand Down Expand Up @@ -1049,14 +1051,16 @@ int Mix_FadeOutChannel(int which, int ms)
(mix_channel[which].volume > 0) &&
(mix_channel[which].fading != MIX_FADING_OUT) ) {
mix_channel[which].fade_volume = mix_channel[which].volume;
mix_channel[which].fading = MIX_FADING_OUT;
mix_channel[which].fade_length = (Uint32)ms;
mix_channel[which].ticks_fade = SDL_GetTicks();

/* only change fade_volume_reset if we're not fading. */
if (mix_channel[which].fading == MIX_NO_FADING) {
mix_channel[which].fade_volume_reset = mix_channel[which].volume;
}

mix_channel[which].fading = MIX_FADING_OUT;

++status;
}
SDL_UnlockAudio();
Expand Down

0 comments on commit cced391

Please sign in to comment.