Где искать информацию

Предыдущая  Содержание  V*D*V

Звуковое ядро, аудио шины, архитектуры и устаревших набор OSS имеют свои собственные отдельные подкаталоги в sound/. Чтобы увидеть реализацию интерфейса AC'97, загляните внутрь sound/pci/ac97/. Для примера аудио драйвера на основе I2S, посмотрите  в sound/soc/at91/at91-ssc.c, это аудио драйвер для серии AT91 от Atmel на основе встраиваемых процессоров ARM. Если вы не можете найти близкое соответствие, то в качестве отправной точки для разработки своего драйвера ALSA используйте sound/drivers/dummy.c.

 

Информация о драйверах ALSA и OSS содержится в Documentation/sound/*. Documentation/sound/alsa/DocBook/ содержит DocBook  по написанию драйверов ALSA. Руководство по конфигурации ALSA доступно в Documentation/sound/alsa/ALSA-Configuration.txt. Sound-HOWTO, доступный на http://tldp.org/HOWTO/Sound-HOWTO/, отвечает на некоторые часто задаваемые вопросы, связанные с поддержкой аудио устройств в Linux.

 

Madplay - это программный декодер MP3 и проигрыватель, который работает и с ALSA, и с OSS. Вы можете посмотреть его исходники  для получения советов о программировании звука в пользовательском пространстве.

 

Двумя инструментами OSS без излишеств для воспроизведения и записи являются rawplay и rawrec, чьи исходники можно загрузить с http://rawrec.sourceforge.net/.

 

Домашнюю страницу проекта Linux ALSA можно найти на www.alsa-project.org. Здесь вы найдёте последние новости о драйверах ALSA, подробную информацию о программных API ALSA, а также информацию о подписке на соответствующие списки рассылок. Исходники alsa-utils и alsa-lib, которые можно загрузить с этой страницы, помогут вам при разработке приложений, работающих с ALSA.

 

Таблица 13.2 содержит основные структуры данных, используемые в этой главе, и их расположение в дереве исходных текстов. В Таблице 13.3 перечислены основные программные интерфейсы ядра, которые использовались в этой главе с указанием места их определения.

 

Таблица 13.2. Список структур данных

 

Структура данных

Местоположение

Описание

snd_card

include/sound/core.h

Представление звуковой карты

snd_pcm

include/sound/pcm.h

Экземпляр объекта PCM

snd_pcm_ops

include/sound/pcm.h

Используется для подключения операций с объектом PCM

snd_pcm_substream

include/sound/pcm.h

Информация о текущем звуковом потоке

snd_pcm_runtime

include/sound/pcm.h

Подробности об аудио потоке во время выполнения

snd_kcontrol_new

include/sound/control.h

Представление элемента управления ALSA

 

 

Таблица 13.3. Список программных интерфейсов ядра

 

Интерфейс ядра

Местоположение

Описание

snd_card_new()

sound/core/init.c

Создание экземпляра структуры snd_card

snd_card_free()

sound/core/init.c

Удаляет экземпляр snd_card

snd_card_register()

sound/core/init.c

Регистрирует звуковую карту в ядре ALSA

snd_pcm_lib_preallocate_pages_for_all()

sound/core/pcm_memory.c

Предварительное создание буферов для звуковой карты

snd_pcm_lib_malloc_pages()

sound/core/pcm_memory.c

Выделение буферов DMA для звуковой карты

snd_pcm_new()

sound/core/pcm.c

Создание экземпляра объекта PCM

snd_pcm_set_ops()

sound/core/pcm_lib.c

Подключение операций воспроизведения или захвата к объекту PCM

snd_ctl_add()

sound/core/control.c

Подключение элемента управления микшером к звуковой карте

snd_ctl_new1()

sound/core/control.c

Создание структуры snd_kcontrol и инициализация её соответствующими операциями управления

snd_card_proc_new()

sound/core/info.c

Создание записи в /proc и связывание её с экземпляром карты

 

Предыдущая  Содержание