audio_hw_device 结构体参考文档

audio_hw_device 结构体参考文档

#include < audio.h >

数据字段

struct hw_device_t   常见
 
uint32_t(*  get_supported_devices )(const struct audio_hw_device *dev)
 
int(*  init_check )(const struct audio_hw_device *dev)
 
int(*  set_voice_volume )(struct audio_hw_device *dev, float volume)
 
int(*  set_master_volume )(struct audio_hw_device *dev, float volume)
 
int(*  get_master_volume )(struct audio_hw_device *dev, float *volume)
 
int(*  set_mode )(struct audio_hw_device *dev, audio_mode_t mode)
 
int(*  set_mic_mute )(struct audio_hw_device *dev, bool state)
 
int(*  get_mic_mute )(const struct audio_hw_device *dev, bool *state)
 
int(*  set_parameters )(struct audio_hw_device *dev, const char *kv_pairs)
 
char *(*  get_parameters )(const struct audio_hw_device *dev, const char *keys)
 
size_t(*  get_input_buffer_size )(const struct audio_hw_device *dev, const struct audio_config *config)
 
int(*  open_output_stream )(struct audio_hw_device *dev, audio_io_handle_t handle, audio_devices_t devices, audio_output_flags_t flags, struct audio_config *config, struct audio_stream_out **stream_out, const char *address)
 
void(*  close_output_stream )(struct audio_hw_device *dev, struct audio_stream_out *stream_out)
 
int(*  open_input_stream )(struct audio_hw_device *dev, audio_io_handle_t handle, audio_devices_t devices, struct audio_config *config, struct audio_stream_in **stream_in, audio_input_flags_t flags, const char *address, audio_source_t source)
 
void(*  close_input_stream )(struct audio_hw_device *dev, struct audio_stream_in *stream_in)
 
int(*  dump )(const struct audio_hw_device *dev, int fd)
 
int(*  set_master_mute )(struct audio_hw_device *dev, bool mute)
 
int(*  get_master_mute )(struct audio_hw_device *dev, bool *mute)
 
int(*  create_audio_patch )(struct audio_hw_device *dev, unsigned int num_sources, const struct audio_port_config *sources, unsigned int num_sinks, const struct audio_port_config *sinks, audio_patch_handle_t *handle)
 
int(*  release_audio_patch )(struct audio_hw_device *dev, audio_patch_handle_t handle)
 
int(*  get_audio_port )(struct audio_hw_device *dev, struct audio_port *port)
 
int(*  set_audio_port_config )(struct audio_hw_device *dev, const struct audio_port_config *config)
 

详细说明

定义位于文件 audio.h 516 行

字段文档

void(* close_input_stream)(struct audio_hw_device *dev, struct audio_stream_in *stream_in)

定义位于文件 audio.h 的 第 620 行。

void(* close_output_stream)(struct audio_hw_device *dev, struct audio_stream_out *stream_out)

定义位于文件 audio.h 的 第 607 行。

struct hw_device_t common

音频设备的常用方法。此 必须 audio_hw_device 的第一个成员,因为此结构的用户会在已知 hw_device_t 引用 audio_hw_device 的情况下,将 hw_device_t 转换为 audio_hw_device 指针。

定义位于文件 audio.h 的第 522 行。

int(* create_audio_patch)(struct audio_hw_device *dev, unsigned int num_sources, const struct audio_port_config *sources, unsigned int num_sinks, const struct audio_port_config *sinks, audio_patch_handle_t *handle)

路由控制

定义位于文件 audio.h 的第 648 行。

int(* dump)(const struct audio_hw_device *dev, int fd)

此方法会转储音频硬件的状态

定义位于文件 audio.h 624 行

int(* get_audio_port)(struct audio_hw_device *dev, struct audio_port *port)

定义位于文件 audio.h 的 第 665 行。

size_t(* get_input_buffer_size)(const struct audio_hw_device *dev, const struct audio_config *config)

定义位于文件 audio.h 的 第 588 行。

int(* get_master_mute)(struct audio_hw_device *dev, bool *mute)

获取 HAL 的当前主静音状态(如果 HAL 支持主静音控制)。服务启动时,AudioFlinger 会从主要音频 HAL 查询此值,并使用该值在所有 HAL 中设置初始主音量静音。不支持此方法的 HAL 可能会将其设置为 NULL。

定义位于文件 audio.h 的 第 639 行。

int(* get_master_volume)(struct audio_hw_device *dev, float *volume)

获取 HAL 的当前主音量值(如果 HAL 支持主音量控制)。服务启动时,AudioFlinger 会从主要音频 HAL 查询此值,并使用该值来设置所有 HAL 的初始主音量。不支持此方法的 HAL 可能会将其设置为 NULL。

定义位于文件 audio.h 的 第 561 行。

int(* get_mic_mute)(const struct audio_hw_device *dev, bool *state)

定义位于文件 audio.h 的 第 572 行。

char*(* get_parameters)(const struct audio_hw_device *dev, const char *keys)

定义位于文件 audio.h 的 第 581 行。

uint32_t(* get_supported_devices)(const struct audio_hw_device *dev)

由音频 flinger 用于枚举每个 audio_hw_device 实现支持的设备。

返回值是 1 个或多个 audio_devices_t 值的位掩码

注意:从 AUDIO_DEVICE_API_VERSION_2_0 开始,音频 HAL 实现不会实现此函数。所有受支持的设备都应列在 audio_policy.conf 文件中,并且音频政策管理器必须根据此文件中的信息选择适当的音频模块。

定义位于文件 audio.h 的 第 536 行。

int(* init_check)(const struct audio_hw_device *dev)

检查音频硬件接口是否已初始化。成功时返回 0,失败时返回 -ENODEV。

定义位于文件 audio.h 的 第 542 行。

int(* open_input_stream)(struct audio_hw_device *dev, audio_io_handle_t handle, audio_devices_t devices, struct audio_config *config, struct audio_stream_in **stream_in, audio_input_flags_t flags, const char *address, audio_source_t source)

此方法会创建并打开音频硬件输入流

定义位于文件 audio.h 的 第 611 行。

int(* open_output_stream)(struct audio_hw_device *dev, audio_io_handle_t handle, audio_devices_t devices, audio_output_flags_t flags, struct audio_config *config, struct audio_stream_out **stream_out, const char *address)

此方法会创建并打开音频硬件输出流。“address”参数可根据需要限定“devices”音频设备类型。格式取决于设备类型:

  • 蓝牙设备使用格式为“00:11:22:AA:BB:CC”的设备 MAC 地址
  • USB 设备使用 ALSA 卡和设备编号,格式为“card=X;device=Y”
  • 其他设备可以使用数字或任何其他字符串。

定义位于文件 audio.h 的 第 599 行。

int(* release_audio_patch)(struct audio_hw_device *dev, audio_patch_handle_t handle)

定义位于文件 audio.h 的 第 656 行。

int(* set_audio_port_config)(struct audio_hw_device *dev, const struct audio_port_config *config)

定义位于文件 audio.h 的 第 669 行。

int(* set_master_mute)(struct audio_hw_device *dev, bool mute)

设置所有音频 activity 的音频静音状态。如果返回的值为 0 以外的任何值,软件混音器将模拟此功能。

定义位于文件 audio.h 的 第 630 行。

int(* set_master_volume)(struct audio_hw_device *dev, float volume)

为语音通话以外的所有音频活动设置音量。介于 0.0 到 1.0 之间。如果返回的值为 0 以外的任何值,软件混音器将模拟此功能。

定义位于文件 audio.h 的 第 552 行。

int(* set_mic_mute)(struct audio_hw_device *dev, bool state)

定义位于文件 audio.h 的 第 571 行。

int(* set_mode)(struct audio_hw_device *dev, audio_mode_t mode)

当音频模式发生变化时,系统会调用 set_mode。AUDIO_MODE_NORMAL 模式适用于标准音频播放,AUDIO_MODE_RINGTONE 适用于响铃播放,AUDIO_MODE_IN_CALL 适用于通话进行时。

定义位于文件 audio.h 的 第 568 行。

int(* set_parameters)(struct audio_hw_device *dev, const char *kv_pairs)

定义位于文件 audio.h 575 行

int(* set_voice_volume)(struct audio_hw_device *dev, float volume)

设置语音通话的音量。范围介于 0.0 到 1.0 之间

定义位于文件 audio.h 的 第 545 行。


此结构体的文档是根据以下文件生成的:
  • hardware/libhardware/include/hardware/ audio.h