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 )(結構audio_hw_device *dev,浮動音量)
整數(* set_master_volume )(struct audio_hw_device *dev,浮動音量)
整數(* get_master_volume )(struct audio_hw_device *dev, float *volume)
整數(* set_mode )(結構audio_hw_device *dev,audio_mode_t模式)
整數(* set_mic_mute )(struct audio_hw_device *dev,布林狀態)
整數(* 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 )(結構audio_hw_device * dev,audio_io_handle_t句柄,audio_devices_t設備,audio_output_flags_t標誌,結構audio_config *配置,結構audio_stream_out **stream_out,const char *位址)
空白(* close_output_stream )(結構audio_hw_device *dev,結構audio_stream_out *stream_out)
整數(* open_input_stream )(結構audio_hw_device *dev,audio_io_handle_t句柄,audio_devices_t設備,結構audio_config *config,結構audio_stream_in **stream_in,audio_input_flags_t標誌,const char *位址,audio_source_t位址來源,audio_source_t位址來源)
空白(* close_input_stream )(結構audio_hw_device *dev,結構audio_stream_in *stream_in)
整數(*轉儲)(常數結構audio_hw_device * dev,int fd)
整數(* set_master_mute )(struct audio_hw_device *dev, bool 靜音)
整數(* 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 )(結構audio_hw_device *dev,audio_patch_handle_t句柄)
整數(* get_audio_port )(結構audio_hw_device *dev,結構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)(結構體audio_hw_device *dev, 結構體audio_stream_in *stream_in)

檔案audio.h620行的定義。

void(* close_output_stream)(結構audio_hw_device *dev, 結構audio_stream_out *stream_out)

檔案audio.h607行的定義。

結構體hw_device_t公共

音頻設備的常用方法。這必須audio_hw_device的第一個成員,因為該結構的使用者將在已知hw_device_t引用audio_hw_device的上下文中將hw_device_t強制轉換為audio_hw_device指標。

檔案audio.h522行的定義。

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 *sin.

路由控制

檔案audio.h648行的定義。

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

此方法轉儲音訊硬體的狀態

檔案audio.h624行的定義。

int(* get_audio_port)(結構體audio_hw_device *dev, 結構體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.h542行的定義。

int(* open_input_stream)(結構audio_hw_device *dev、audio_io_handle_t句柄、audio_devices_t裝置、結構audio_config *config、結構audio_stream_in **stream_in、audio_input_flags_t標誌、const char *來源位址、audio_source_flags_t標誌、const char *來源位址、t

此方法會建立並開啟音訊硬體輸入流

檔案audio.h611行的定義。

int(* open_output_stream)(結構audio_hw_device *dev、audio_io_handle_t句柄、audio_devices_t裝置、audio_output_flags_t標誌、結構audio_config *config、結構audio_stream_out **stream_out、const char *位址)

此方法會建立並開啟音訊硬體輸出流。如有需要,「address」參數限定「devices」音訊設備類型。格式格式取決於設備類型:

  • 藍牙裝置使用裝置的 MAC 位址,格式為“00:11:22:AA:BB:CC”
  • USB 裝置使用 ALSA 卡和裝置編號,格式為“card=X;device=Y”
  • 其他設備可以使用數字或任何其他字串。

定義位於檔案audio.h的第599行。

int(*release_audio_patch)(結構audio_hw_device *dev,audio_patch_handle_t句柄)

定義位於檔案audio.h的第656行。

int(* set_audio_port_config)(結構體audio_hw_device *dev, const 結構體audio_port_config *config)

定義位於檔案audio.h的第669行。

int(* set_master_mute)(struct audio_hw_device *dev, bool 靜音)

設定所有音訊活動的音訊靜音狀態。如果傳回 0 以外的任何值,軟體混音器將模擬此功能。

檔案audio.h630行的定義。

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)(結構audio_hw_device *dev,audio_mode_t模式)

當音訊模式改變時呼叫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行。


該結構的文檔是從以下文件產生的:
  • 硬體/libhardware/include/hardware/audio.h