Руководство программиста для Linux



      778b1c86   

Программирование встроенного динамика


Встроенный динамик - это часть консоли Linux и, поэтому является символьным устройством. Как следствие, существуют запросы ioctl для манипуляций с ним. Для встроенного микрофона это такие два запроса:

1. KDMKTONE

Генерирует сигнал beep заданной длительности, используя таймер ядра. Например, ioctl(fd, KDMKTONE, (long) argument).

2. KIOCSOUND

Генерирует бесконечный beep или прерывает звучащий в настоящий момент. Например, ioctl(fd, KIOCSOUND, (int) tone).

Третий аргумент первого примера содержит значение тона в нижнем слове и сдвиг в верхнем. Тон - это не частота. Таймер 8254 материнской платы ПК заведен на 1.19 МГц и поэтому тон - это 1190000/частота. Сдвиг измеряется в шагах таймера. Оба вызова срабатывают немедленно, поэтому вы можете порождать звуковые сигналы, не блокируя программу.

KDMKTONE можно использовать для предупреждающих сигналов, поскольку вам не приходится заботиться о его прекращении.

При помощи KIOCSOUND можно проигрывать мелодии, как это демонстрируется в примере программы splay. Для остановки сигнала значение тона устанавливается в 0.



Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий