Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

135 lines
3.3 KiB

/****************************** Module Header ******************************\
* Module Name: sirens.c
*
* Copyright (c) 1985 - 1999, Microsoft Corporation
*
* This module contains the functions used by the Access Pack features to
* provide audible feedback.
*
* History:
* 4 Feb 93 Gregoryw Created.
\***************************************************************************/
#include "precomp.h"
#pragma hdrstop
#define TONE_HIGH_FREQ 2000 // High tone frequency (Hz)
#define TONE_HIGH_LEN 75 // High tone duration (ms)
#define TONE_LOW_FREQ 500 // Low tone frequency (Hz)
#define TONE_LOW_LEN 75 // Low tone duration (ms)
#define TONE_CLICK_FREQ 400 // Key click tone frequency (Hz)
#define TONE_CLICK_LEN 4 // Key click tone duration (ms)
#define TONE_SILENT 10
#define SIREN_LOW_FREQ 1200 // Lowest freq for siren (Hz)
#define SIREN_HIGH_FREQ 2000 // Highest freq for siren (Hz)
#define SIREN_INTERVAL 100 // +/- interval SIREN_LOW_FREQ <-> SIREN_HIGH_FREQ
/***************************************************************************\
* HighBeep
*
* Send a high beep to the beep device
*
* History:
\***************************************************************************/
BOOL HighBeep(void)
{
BOOL Status;
LeaveCrit();
Status = UserBeep(TONE_HIGH_FREQ, TONE_HIGH_LEN);
EnterCrit();
return Status;
}
/***************************************************************************\
* LowBeep
*
* Send a low beep to the beep device
*
* History:
\***************************************************************************/
BOOL LowBeep(void)
{
BOOL Status;
LeaveCrit();
Status = UserBeep(TONE_LOW_FREQ, TONE_LOW_LEN);
EnterCrit();
return Status;
}
/***************************************************************************\
* KeyClick
*
* Send a key click to the beep device
*
* History:
\***************************************************************************/
BOOL KeyClick(void)
{
BOOL Status;
LeaveCrit();
Status = UserBeep(TONE_CLICK_FREQ, TONE_CLICK_LEN);
EnterCrit();
return Status;
}
/***************************************************************************\
* UpSiren
*
* Generate an up-siren tone.
*
* History:
\***************************************************************************/
BOOL UpSiren(void)
{
DWORD freq;
BOOL BeepStatus = TRUE;
LeaveCrit();
for (freq = SIREN_LOW_FREQ;
BeepStatus && freq <= SIREN_HIGH_FREQ;
freq += SIREN_INTERVAL) {
BeepStatus = UserBeep(freq, (DWORD)1);
}
EnterCrit();
return BeepStatus;
}
/***************************************************************************\
* DownSiren
*
* Generate a down-siren tone.
*
* History:
\***************************************************************************/
BOOL DownSiren(void)
{
DWORD freq;
BOOL BeepStatus = TRUE;
LeaveCrit();
for (freq = SIREN_HIGH_FREQ;
BeepStatus && freq >= SIREN_LOW_FREQ;
freq -= SIREN_INTERVAL) {
BeepStatus = UserBeep(freq, (DWORD)1);
}
EnterCrit();
return BeepStatus;
}
BOOL DoBeep(BEEPPROC BeepProc, UINT Count)
{
while (Count--) {
(*BeepProc)();
UserSleep(100);
}
return TRUE;
}