audio_hw_device مرجع ساختار
#include < audio.h >
فیلدهای داده | |
ساخت hw_device_t | مشترک |
uint32_t(* | get_supported_devices )( ساخت 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) |
کاراکتر *(* | 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 دستگاه ها، audio_output_flags_t flags، 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) |
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) |
خالی(* | 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) |
توصیف همراه با جزئیات
مستندات میدانی
void(* close_input_stream)(struct audio_hw_device *dev, struct audio_stream_in *stream_in) |
void(* close_output_stream)(struct audio_hw_device *dev, struct audio_stream_out *stream_out) |
struct hw_device_t مشترک |
روش های رایج دستگاه صوتی این باید اولین عضو audio_hw_device باشد زیرا کاربران این ساختار در زمینههایی که مشخص است hw_device_t به یک audio_hw_device اشاره میکند، نشانگر hw_device_t را به audio_hw_device ارسال میکنند.
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(* dump)(const struct audio_hw_device *dev, int fd) |
int(* get_audio_port)(struct audio_hw_device *dev, struct audio_port *port) |
size_t(* get_input_buffer_size)(const struct audio_hw_device *dev, const struct audio_config *config) |
int(* get_master_mute)(struct audio_hw_device *dev, bool *mute) |
اگر HAL از کنترل بیصدا اصلی پشتیبانی میکند، وضعیت فعلی را برای HAL دریافت کنید. هنگام شروع سرویس، AudioFlinger این مقدار را از HAL صوتی اولیه پرس و جو می کند و از مقدار برای تنظیم صدای اصلی اصلی در همه HAL ها استفاده می کند. HAL هایی که از این روش پشتیبانی نمی کنند ممکن است آن را روی NULL تنظیم کنند.
int(* get_master_volume)(struct audio_hw_device *dev, float *volume) |
اگر HAL از کنترل ولوم اصلی پشتیبانی میکند، مقدار حجم اصلی فعلی را برای HAL دریافت کنید. AudioFlinger هنگام شروع سرویس، این مقدار را از HAL صوتی اولیه پرس و جو می کند و از مقدار برای تنظیم ولوم اصلی اولیه در همه HAL ها استفاده می کند. HAL هایی که از این روش پشتیبانی نمی کنند ممکن است آن را روی NULL تنظیم کنند.
int(* get_mic_mute)(const struct audio_hw_device *dev, bool *state) |
char*(* get_parameters)(const struct audio_hw_device *dev, const char *keys) |
uint32_t(* get_supported_devices)(const struct audio_hw_device *dev) |
توسط audio flinger برای شمارش دستگاه هایی که توسط هر اجرای audio_hw_device پشتیبانی می شود استفاده می شود.
مقدار بازگشتی یک بیت ماسک از 1 یا چند مقدار audio_devices_t است
توجه: اجرای HAL صوتی که با AUDIO_DEVICE_API_VERSION_2_0 شروع می شود، این تابع را اجرا نمی کند. همه دستگاه های پشتیبانی شده باید در فایل audio_policy.conf فهرست شوند و مدیر خط مشی صوتی باید بر اساس اطلاعات موجود در این فایل، ماژول صوتی مناسب را انتخاب کند.
int(* init_check)(const struct audio_hw_device *dev) |
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) |
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) |
این روش جریان خروجی سخت افزار صوتی را ایجاد و باز می کند. پارامتر "آدرس" نوع دستگاه صوتی "دستگاه ها" را در صورت نیاز واجد شرایط می کند. فرمت قالب بستگی به نوع دستگاه دارد:
- دستگاه های بلوتوث از آدرس MAC دستگاه به شکل "00:11:22:AA:BB:CC" استفاده می کنند.
- دستگاه های USB از کارت ALSA و شماره دستگاه به شکل "card=X;device=Y" استفاده می کنند.
- دستگاه های دیگر ممکن است از یک عدد یا هر رشته دیگری استفاده کنند.
int(* release_audio_patch)(struct audio_hw_device *dev, audio_patch_handle_t handle) |
int(* set_audio_port_config)(struct audio_hw_device *dev, const struct audio_port_config *config) |
int(* set_master_mute)(struct audio_hw_device *dev, bool mute) |
int(* set_master_volume)(struct audio_hw_device *dev, float volume) |
int(* set_mic_mute)(struct audio_hw_device *dev, bool state) |
int(* set_mode)(struct audio_hw_device *dev, audio_mode_t mode) |
int(* set_parameters)(struct audio_hw_device *dev, const char *kv_pairs) |
int(* set_voice_volume)(struct audio_hw_device *dev, float volume) |
مستندات این ساختار از فایل زیر تولید شده است:
- hardware/libhardware/include/hardware/ audio.h