Logo Спонсор сайта — Хостинг Fornex.com Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

хостинг сайтов ГиперХост — хостинг сайтов который Вы искали.

Виртуальный хостинг, Аренда VPS серверов, рация доменных имен, SSL сертификаты

Тарифы от 59 руб в месяц за 512MB RAM и 5Gb NVMe SSD!

Hi-CPU тарифы с повышенной частотой процессора 3.8 – 4.2 GHz, автоматическая установка Windows

Дата-центры на выбор, защита от DDoS-атак

VPS/VDS за 1 евро!

vCore x1, 1 GB RAM ECC, 15 GB SSD (RAID 10), Port 1 Gbps, Трафик ∞, Виртуализатор KVM.

Выбор стран: Нидерланды, Молдова и Россия!

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

Sven Goldt, Sven van der Meer, Skott Burkett, Matt Welsh

Перевод: Алексей Паутов,
Russian LDP: http://www.botik.ru/~rldp, ftp://ftp.botik.ru/rented/rldp

7. Программирование звука

ПК имеет как минимум одно звуковое устройство: встроенный микрофон (PC speaker). Вы также можете купить звуковую карту для вашего ПК, обладающую большими звуковыми возможностями (см. Linux Sound User's Guide или Sound-HOWTO для поддерживаемых звуковых карт).

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

Встроенный динамик - это часть консоли 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.

7.2. Программирование звуковой карты

Для вас как для программиста важно знать, что современные Linux-системы имеет встроенную звуковую карту. Один путь проверки - испытать /dev/sndstat. Если открытие /dev/sndstat закончилось неудачно и errno = ENODEV, то это означает, что ни один звуковой драйвер не активирован, и вы не получите никакой помощи от звукового драйвера ядра. Тот же результат может иметь попытка открыть /dev/dsp, если он не связан с драйвером pcsnd.

Если вы хотите повозиться со звуковыми картами на уровне железа, знайте, что комбинация вызовов outb() и inb() определит звуковую карту, которую вы ищете.

Программы, использующие звуковой драйвер, будут хорошо переноситься на другие i386 системы, поскольку некоторые умные люди решили использовать один драйвер для Linux, isc, FreeBSD и большинства других i386 архитектур. Звуковая карта - это не часть консоли Linux, но специальное устройство. Звуковая карта предлагает три основных возможности:

  • цифровой образец ввода/вывода
  • вывод модуляции частоты
  • midi интерфейс

Каждая из возможностей имеет свой драйвер устройства. Для цифровых сэмплов это /dev/dsp, для модуляции частоты - /dev/sequencer, для midi интерфейса - /dev/midi. Звуковые установки (volume, balance, bass) контролируются через /dev/mixer интерфейс. В целях сравнения существует устройство /dev/audio, которое может отображать мю-low звуковые данные в цифровое устройство.

Вы были правы, если подумали, что нужно использовать ioctl() для работы с этими устройствами. Запросы ioctl() определены в и начинаются с SNDCTL_.

Поскольку у автора нет звуковой карты, продолжать здесь должен кто-то явно другой.

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

 

Сверхбыстрый хостинг от 69 р./мес., VPS от 299 р./мес.

Бесплатно: администрирование + ISPmanager + DDoS защита + SSL + 7 дней тестовый период

Скидка 50% на первый месяц VPS и хостинга по промокоду CITFORUM

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...