Информация о поддерживаемых видах кодеков
Статья содержит список основных поддерживаемых аудио стеком видов кодеков:
Кодек поддерживается только если он является стандартизированным, имеет подробную документацию и используется в актуальных платформах.
Кодек может поддерживать как функции аналогового аудиомикшера, так и другие callback-функции, полезные драйверу, например, передискретизацию (SRC, Sample Rate Conversion) или S/PDIF. См. раздел обработка аудио данных в формате PCM.
Для использования одного из этих кодеков вызовите ado_mixer_dll() в функции ctrl_init() драйвера. См. раздел обработка аналоговых данных.
В следующих разделах представлены примеры передачи аргументов в функцию ado_mixer_dll().
Имя библиотеки
Передайте "ac97" в качестве аргумента mixer_dll функции ado_mixer_dll().
Заголовочный файл
<mixer/ac97_dll.h>
Структура параметров
Структура содержит указатели на callback-функции, необходимые при вызове библиотеки микшера:
typedef struct ado_mixer_dll_params_ac97 {HW_CONTEXT_T *hw_context;uint16_t (*read)( HW_CONTEXT_T *hw_context,uint16_t reg );void (*write)( HW_CONTEXT_T *hw_context,uint16_t reg,uint16_t val );int32_t (*init)( HW_CONTEXT_T *hw_context );void (*destroy)( HW_CONTEXT_T *hw_context );} ado_mixer_dll_params_ac97_t;
В структуру входят:
В качестве аргумента ado_mixer_dll() передается указатель на структуру ado_mixer_dll_params_ac97_t
.
Поддерживаемые элементы управления
Структура содержит указатели на callback-функции, предоставляемые библиотекой микшера, которые драйвер может вызвать для контроля устройства:
enum ac97_SRC {AC97_FRONT_DAC_SRC,AC97_SURR_DAC_SRC,AC97_LFE_DAC_SRC,AC97_LR_ADC_SRC,};typedef struct ado_mixer_dll_callbacks_ac97 {MIXER_CONTEXT_T *mix_context;int32_t (*SRC_test)( MIXER_CONTEXT_T *mix_context,enum ac97_SRC src,ado_pcm_cap_t * caps );int32_t (*SRC_set)( MIXER_CONTEXT_T * mix_context,enum ac97_SRC src,uint32_t * rate );} ado_mixer_dll_callbacks_ac97_t;
В структуру входят:
В качестве аргумента ado_mixer_dll() передается указатель на структуру ado_mixer_dll_callbacks_ac97_t
.
Имя библиотеки
Передайте "ak4531" в качестве аргумента mixer_dll функции ado_mixer_dll().
Заголовочный файл
<mixer/ak4531_dll.h>
Структура параметров
Структура содержит указатели на callback-функции, необходимые при вызове библиотеки микшера:
typedef struct ado_mixer_dll_params_ak4531 {HW_CONTEXT_T *hw_context;void (*write)( HW_CONTEXT_T *hw_context,uint16_t reg,uint16_t val );void (*destroy)( HW_CONTEXT_T *hw_context );} ado_mixer_dll_params_ak4531_t;
В структуру входят:
В качестве аргумента ado_mixer_dll() передается указатель на структуру ado_mixer_dll_params_ak4531_t
.
Поддерживаемые элементы управления
Отсутствуют; следует передать NULL
в качестве аргумента функции ado_mixer_dll().
Предыдущий раздел: Библиотека libado