Beep
Beep (/biːp/, англ. — гудок, сигнал) — простой однотонный звук, выводимый через встроенный динамик персонального компьютера.
Также «beep» называются различные функции и программы, связанные с этим звуком.
Функция Windows API
Beep — функция Windows API, предназначенная для воспроизведения простых однотонных звуков через встроенный динамик с заданной частотой и продолжительностью. Существует в операционных системах семейства Microsoft Windows и ReactOS. Входит в состав ядра системы (Kernel32.dll в 32-хразрядных версиях Windows и ReactOS).[1][2]
В более общем смысле beep (бип) — любой короткий звуковой сигнал, издаваемый любым электронным устройством, часто единственная наглядная возможность получить какую-либо информацию от устройства.
Применение
Функция Beep выполняется синхронно, то есть возвращает управление лишь после завершения воспроизведения звука. Она имеет два параметра:
dwFrec
— частота звука в герцах, допустимый диапазон — от 37 до 32 767 Гц;dwDuration
— продолжительность звука в миллисекундах;
и возвращает значение типа BOOL (ненулевое при успешном выполнении).
Минимальное допустимое значение частоты звука 37 Гц предотвращает возможность случайного или преднамеренного воспроизведения инфразвука, который может представлять опасность для здоровья человека.
В Windows XP SP3+ для воспроизведения используется устройство, использующее при прослушивании музыки. Если функция Beep воспроизводит звук через PC-speaker, стандартные средства регулировки громкости не окажут на неё влияния. Вместо этого для отключения звука можно использовать команды:
net stop beep
sc config beep start= disabled
Реализация Beep в Windows NT и ReactOS использует файл-устройство «\Device\Beep\». Поэтому прерывание работы потока во время её выполнения может привести к тому, что дескриптор устройства останется незакрытым.[3]
История
Впервые появилась ещё в 16-разрядных версиях Windows. В ОС Windows 95/98/Me функция Beep была реализована ограниченно: значения обоих параметров игнорируются. При наличии звуковой карты воспроизводится стандартный системный звук, а при её отсутствии — звук с некоторыми стандартными параметрами через встроенный динамик.
В ReactOS функция Beep появилась 10 марта 1999 года.[4] Контроль значений параметров, наряду с рядом других исправлений, добавлен 27 октября 2005 года.[5]
Пример использования
Пример использования функции Beep
Ниже приведён исходный текст программы на языке Си, которая воспроизводит мелодию — пример синкопы.
#include <windows.h>
int WINAPI
WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
Beep(294, 1000/8);
Beep(440, 1000/4);
Beep(262*2, 1000/4);
Beep(330*2, 1000/4);
Beep(415, 1000/8);
Beep(440, 1000);
return 0;
}
См. также
- Управляющие символы — символ 07 (BELL).
Примечания
- Beep — Microsoft Developer Network.
- dll/win32/kernel32/misc/error.c (недоступная ссылка) — реализация функции Beep в ReactOS.
- Аналог функций Sound() и NoSound() под WindowsNT/2k/XP. — Мастера DELPHI.
- Diff of /trunk/reactos/dll/win32/kernel32/misc/error.c, revision 285 (недоступная ссылка) — ReactOS.
- Diff of /trunk/reactos/dll/win32/kernel32/misc/error.c, revision 18798 (недоступная ссылка) — ReactOS.