Страница 1 из 1

Программная сирена.

Добавлено: 2010-06-06 12:44:57
Soldier
Привет всем.
Раньше, когда было время доса и винды 98, существовал компилятор TurboC 3.0.
В нем была библиотека dos.h, в которой была функция:

Код: Выделить всё

void sound(unsigned f)
Вызывает  звуковой сигнвл с частотой f Гц.
Далее шла функция задержки:

Код: Выделить всё

void delay(unsigned x)
Приостановление выполнения программы на x мсек.
Думаю, что нужен пакет:

Код: Выделить всё

pdcurses-the-3.2
Curses library implementation for Win32, DOS, OS/2 and X11
Long description : Sources : Changes : Download
Maintained by: alepulver@FreeBSD.org
Requires: kbproto-1.0.4, libICE-1.0.6,1, libSM-1.1.1_1,1, libX11-1.3.3,1, libXau-1.0.5, libXaw-1.0.7,1, libXdmcp-1.0.3, libXext-1.1.1,1, libXmu-1.0.5,1, libXp-1.0.0,1, libXpm-3.5.7, libXt-1.0.7, libpthread-stubs-0.3_3, libxcb-1.6, pkg-config-0.23_1, printproto-1.0.4, xextproto-7.1.1, xproto-7.0.16
Подскажите, есть ли решения этого вопроса под freebsd?
Заранее благодарен за ответ.

З.Ы. Просьба не предлагать печатать "\a" и "0x07" символы.

Re: Программная сирена.

Добавлено: 2010-06-06 15:22:12
xDi
самое простое, что пришло в голову, это взять массив размером достаточным для помещения одного периода звуковой волны, заполнить его значениями синуса, а потом в цикле отправлять его на устройство dsp. скорее всего надо будет к определенному формату привести. не проверял.

Re: Программная сирена.

Добавлено: 2010-06-06 17:58:54
Soldier
Интересное решение, но зачем массив, если можно просто циклом подогнать?

dsp не устраивает. "Пишалка" больше симпатизирует.
С простой отправкой на dsp я могу и на шелле накатать.

Re: Программная сирена.

Добавлено: 2010-06-06 19:19:49
xDi
Soldier писал(а):Интересное решение, но зачем массив, если можно просто циклом подогнать?

dsp не устраивает. "Пишалка" больше симпатизирует.
С простой отправкой на dsp я могу и на шелле накатать.
Раздел касается Си-программирования, потому предположил, что требуется минимум ресурсов. Вычисление тригонометрических функций куда больше съест проц, нежели извлечение готового значения из массива.
Про устройство вывода ничего сказано не было, потому и выбрал первое попавшееся - dsp.
Впредь пожалуйста описывайте полные условия задачи.

Re: Программная сирена.

Добавлено: 2010-06-07 10:52:17
Soldier
xDi писал(а):
Soldier писал(а):Раздел касается Си-программирования, потому предположил, что требуется минимум ресурсов. Вычисление тригонометрических функций куда больше съест проц, нежели извлечение готового значения из массива.
Про устройство вывода ничего сказано не было, потому и выбрал первое попавшееся - dsp.
Впредь пожалуйста описывайте полные условия задачи.
Извиняйте, но функция sound всегда работала со спикером.

Не верю, что нет решения.

Re: Программная сирена.

Добавлено: 2010-06-07 10:56:52
Гость
поищите в этом же разделе
потому как этот вопрос уже поднимался и ответ на него тоже был найден

Re: Программная сирена.

Добавлено: 2010-06-09 11:53:00
Fastman
Как я искал :)

1. man speaker
2. поиск по /usr/src
3. cat /usr/src/sys/dev/speaker/spkr.c

1 минута где то :)

Re: Программная сирена.

Добавлено: 2010-06-09 19:24:11
Soldier
Fastman писал(а):Как я искал :)

1. man speaker
2. поиск по /usr/src
3. cat /usr/src/sys/dev/speaker/spkr.c

1 минута где то :)
За указание расположения исходника девайса - спасибо.
Интересный файл, только не пойму, что с ним делать.
Собрать ядро с поддержко устройства spkr - не интересно, т.к. напрямую с железом можно работать.
Откомпилить файл не получилось - ругалось сильно.
Дергать описание функций - не вижу смысла.

Re: Программная сирена.

Добавлено: 2010-06-29 21:44:01
edigaryev
Взгляните на исходник программы beep: http://www.johnath.com/beep/beep.c

Re: Программная сирена.

Добавлено: 2010-06-30 5:51:21
Soldier
Спасибо. попробую собрать.