audio_hw_device 结构参考

audio_hw_device 结构参考

#include < audio.h >

数据字段

结构hw_device_t常见的
uint32_t(* get_supported_devices )(const struct audio_hw_device *dev)
整数(* init_check )(const struct audio_hw_device *dev)
整数(* set_voice_volume )(struct audio_hw_device *dev, 浮动音量)
整数(* set_master_volume )(struct audio_hw_device *dev, 浮动音量)
整数(* get_master_volume )(struct audio_hw_device *dev, float *volume)
整数(* set_mode )(struct audio_hw_device *dev, audio_mode_t 模式)
整数(* set_mic_mute )(struct audio_hw_device *dev, bool state)
整数(* get_mic_mute )(const struct audio_hw_device *dev, bool *state)
整数(* set_parameters )(struct audio_hw_device *dev, const char *kv_pairs)
字符 *(* get_parameters )(const struct audio_hw_device *dev, const char *keys)
尺寸_t(* get_input_buffer_size )(const struct audio_hw_device *dev, const struct audio_config *config)
整数(* open_output_stream )(struct audio_hw_device *dev, audio_io_handle_t 句柄, audio_devices_t 设备, audio_output_flags_t 标志, struct audio_config *config, struct audio_stream_out **stream_out, const char *address)
空白(* close_output_stream )(struct audio_hw_device *dev, struct audio_stream_out *stream_out)
整数(* open_input_stream )(struct audio_hw_device *dev, audio_io_handle_t 句柄, 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)
空白(* close_input_stream )(struct audio_hw_device *dev, struct audio_stream_in *stream_in)
整数(*转储)(const struct audio_hw_device *dev, int fd)
整数(* set_master_mute )(struct audio_hw_device *dev, bool mute)
整数(* get_master_mute )(struct audio_hw_device *dev, bool *mute)
整数(* 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)
整数(* release_audio_patch )(struct audio_hw_device *dev, audio_patch_handle_t 句柄)
整数(* get_audio_port )(struct audio_hw_device *dev, struct audio_port *port)
整数(* 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行定义。

结构hw_device_t通用

音频设备的常用方法。这必须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)

audio 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 句柄, 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 句柄, audio_devices_t 设备, audio_output_flags_t 标志, struct audio_config *config, struct audio_stream_out **stream_out, const char *address)

此方法创建并打开音频硬件输出流。如果需要,“地址”参数限定“设备”音频设备类型。格式格式取决于设备类型:

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

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

int(* release_audio_patch)(struct audio_hw_device *dev, audio_patch_handle_t 句柄)

在文件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)

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

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

int(* set_master_volume)(struct audio_hw_device *dev, 浮动音量)

设置语音通话以外的所有音频活动的音量。范围在 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, 浮动音量)

设置语音通话的音量。范围在 0.0 和 1.0 之间

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


此结构的文档是从以下文件生成的: