1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-03-12 18:13:50 -05:00

Put back Robert de Bath's second level of bell overload tracking. It

had a useful purpose: when primary overload handling is disabled, it
prevents MessageBeep calls overloading the program, because they
don't cancel each other like async PlaySounds do.

[originally from svn r1056]
This commit is contained in:
Simon Tatham 2001-04-16 21:29:12 +00:00
parent 559b00b90a
commit abf6514f71

View File

@ -2663,7 +2663,21 @@ void fatalbox(char *fmt, ...) {
*/
void beep(int mode) {
if (mode == BELL_DEFAULT) {
/*
* For MessageBeep style bells, we want to be careful of
* timing, because they don't have the nice property of
* PlaySound bells that each one cancels the previous
* active one. So we limit the rate to one per 50ms or so.
*/
static long lastbeep = 0;
long now, beepdiff;
now = GetTickCount();
beepdiff = now - lastbeep;
if (beepdiff >= 0 && beepdiff < 50)
return;
MessageBeep(MB_OK);
lastbeep = now;
} else if (mode == BELL_WAVEFILE) {
if (!PlaySound(cfg.bell_wavefile, NULL, SND_ASYNC | SND_FILENAME)) {
char buf[sizeof(cfg.bell_wavefile)+80];