20.2. Выдача звукового сигнала
20.2. Выдача звукового сигнала
Заставить консоль генерировать звуковой сигнал в течение определенного периода времени на указанной частоте совсем не сложное дело. Для этого существуют два способа. Первый состоит во включении или отключении постоянной тональной посылки. Команда KIOCSOUND отключает звук, если ее аргумент равен нулю. В противном случае она устанавливает частоту звука (причем довольно необычным способом, как показано в следующем коде).
void turn_tone_on(int fd, int hertz) {
ioctl(fd, KIOCSOUND, 1193180/hertz)
}
void turn_tone_off(int fd) {
ioctl(fd, KIOCSOUND, 0)
}
Вторым вариантом для выдачи консолью звукового сигнала является применение команды управления вводом-выводом KDMKTONE. Она включает тональную посылку на время, указанное в тиках системных часов (jiffy). К сожалению, время одного тика в различных архитектурах разное. Макрос HZ, определенный sys/param.h, позволяет получить количество тиков в секунду. Функция tone(), показанная ниже, демонстрирует, как извлекать количество тиков в сотых долях секунды и значение макроса HZ[151].
#include <sys/param.h>
void tone(int fd, int hertz, int hundredths) {
unsigned int ticks = hundredths * HZ / 100;
/* ticks & 0xffff не будет работать, если ticks — 0xf0000;
* вместо этого нужно округлить до наибольшего допустимого значения */
if (ticks > 0xffff) ticks = 0xffff;
/* еще одна ошибка округления */
if (hundredths && ticks == 0) ticks = 1;
ioctl(fd, KDMKTONE, (ticks << 16 | (1193180/hertz)));
}
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Генерация ошибок и выдача информации
Генерация ошибок и выдача информации Существует несколько подпрограмм ядра, которые позволяют легко сигнализировать о наличии дефектов кода, обеспечивать объявления об ошибках и выводить необходимую информацию. Две наиболее часто используемые — это BUG() и BUG_ON(). При
Традиционная обработка сигнала
Традиционная обработка сигнала В этой части изложения мы рассмотрим традиционные модели перехвата сигналов и установки для них собственных обработчиков (в том числе и игнорирование или восстановление стандартной обработки по умолчанию). Термин «традиционный» здесь
12.1.1. Жизненный цикл сигнала
12.1.1. Жизненный цикл сигнала Сигналы имеют четко определенный жизненный цикл: они создаются, сохраняются до тех пор, пока ядро не выполнит определенное действие на основе сигнала, а затем вызывают совершение этого действия. Создание сигнала называют по-разному: поднятие
12.7.1. Получение контекста сигнала
12.7.1. Получение контекста сигнала Информация о том, как и почему был сгенерирован сигнал, называется контекстом[68] сигнала. Приложения, которые должны видеть этот контекст, используют обработчики сигналов, отличающиеся от нормальных. Они включают два дополнительных
Отправление сигнала
Отправление сигнала Ядро генерирует и отправляет процессу сигнал в ответ на ряд событий, которые могут быть вызваны самим процессом, другим процессом, прерыванием или какими-либо внешними событиями. Можно выделить основные причины отправки сигнала: Особые
Доставка и обработка сигнала
Доставка и обработка сигнала Для каждого сигнала в системе определена обработка по умолчанию, которую выполняет ядро, если процесс не указал другого действия. В общем случае существуют пять возможных действий: завершить выполнение процесса (с созданием образа core и без),
5.9. Обработка сигнала SIGCHLD
5.9. Обработка сигнала SIGCHLD Назначение состояния зомби — сохранить информацию о дочернем процессе, чтобы родительский процесс мог ее впоследствии получить. Эта информация включает идентификатор дочернего процесса, статус завершения и данные об использовании ресурсов
Добавление звукового клипа в последовательность
Добавление звукового клипа в последовательность Размещение звуковых клипов в последовательности – процедура несложная. Добавим в фильм звуковой файл Sound.wav, который станет музыкальным сопровождением фильма. Поскольку ранее вы загрузили этот клип в проект, его можно
Особенности создания звукового сопровождения формата 5.1
Особенности создания звукового сопровождения формата 5.1 Данный раздел носит теоретический характер. Вы создаете фильм со стереофоническим звуковым сопровождением, поэтому к вашему проекту этот раздел не относится. В нем будут описаны лишь основные шаги и методы
5.4. Разработка звукового проигрывателя
5.4. Разработка звукового проигрывателя Обладая достаточно большим багажом знаний о мультимедийных компонентах Delphi, мы вплотную подошли к созданию программы-проигрывателя. В рамках этой книги разработка многофункционального сложного проигрывателя не
26.2.2. Обнаружение сигнала
26.2.2. Обнаружение сигнала Некоторые сигналы можно захватить и выполнить соответствующие действия. Другие сигналы нельзя уловить. Например, если команда получает сигнал 9, пользователю не нужно предпринимать какие?либо действия.Если ограничиться написанием сценариев,
Конвертеры сигнала
Конвертеры сигнала Рассмотрим второй, очень важный компонент системы спутникового телевидения – конвертер сигнала. Конвертер представляет собой небольшой электронный блок, находящийся в фокусе спутниковой антенны. Он собирает сигнал, отраженный от зеркала тарелки,
Запись звукового компакт-диска
Запись звукового компакт-диска Для создания проекта записи звукового диска выберите в меню Файл пункт Создать, а в появившемся окне – режим Audio CD. Появятся четыре вкладки для настройки параметров записи звукового компакт-диска (рис. 16.8). Не обязательно сразу настраивать
Преобразование 16-битного звукового файла в 8-битный
Преобразование 16-битного звукового файла в 8-битный Чтобы сэкономить место на диске компьютера, 16-разрядные звуковые файлы часто преобразуют в 8-разрядные. Однако при проигрывании 8-разрядных звуковых файлов искажения становятся весьма заметны на слух. Чтобы свести их к