diff -r 605767bbd022 -r d5e029b84e16 hedgewars/uSound.pas --- a/hedgewars/uSound.pas Tue Aug 07 10:29:01 2018 +0200 +++ b/hedgewars/uSound.pas Tue Aug 07 11:37:37 2018 +0200 @@ -43,6 +43,7 @@ procedure ReleaseSound(complete: boolean); // Releases sound-system and used resources. procedure ResetSound; // Reset sound state to the previous state. procedure SetSound(enabled: boolean); // Enable/disable sound-system and backup status. +procedure SetAudioDampen(enabled: boolean); // Enable/disable automatic dampening if losing window focus. // MUSIC @@ -129,6 +130,7 @@ Mus: PMixMusic; // music pointer isMusicEnabled: boolean; isSoundEnabled: boolean; + isAutoDampening: boolean; isSEBackup: boolean; VoiceList : array[0..7] of TVoice = ( ( snd: sndNone; voicepack: nil), @@ -388,6 +390,11 @@ isSoundEnabled:= enabled; end; +procedure SetAudioDampen(enabled: boolean); +begin + isAutoDampening:= enabled; +end; + // when complete is false, this procedure just releases some of the chucks on inactive channels // in this way music is not stopped, nor are chucks currently being played procedure ReleaseSound(complete: boolean); @@ -752,7 +759,7 @@ procedure DampenAudio; begin - if (isAudioMuted) then + if (isAudioMuted or (not isAutoDampening)) then exit; previousVolume:= Volume; ChangeVolume(-Volume * 7 div 9); @@ -760,7 +767,7 @@ procedure UndampenAudio; begin - if (isAudioMuted) then + if (isAudioMuted or (not isAutoDampening)) then exit; ChangeVolume(previousVolume - Volume); end; @@ -849,6 +856,7 @@ begin isMusicEnabled:= true; isSoundEnabled:= true; + isAutoDampening:= true; cInitVolume:= 100; end;