From b84e993c7fc966af6fd05a778dd3978657e2515e Mon Sep 17 00:00:00 2001 From: Anton Dehtiarov Date: Mon, 25 May 2020 23:14:47 +0300 Subject: [PATCH] audio: add get_active_micropones() function The Google VTS tests for Android VtsHalAudioV5_0Target(GetMicrophonesTest) needs to use pointer of function (*get_active_micropones)() which is not initialized and function in_get_active_microphones() required for initialization witch is not implemented in tinyhal. The analysis of the implementation of the audio hal for Qualcomm (https://android.googlesource.com/platform/hardware/qcom/audio/+/refs/heads/ master/hal/audio_hw.c) and Goldfish (https://android.googlesource.com/device/generic/goldfish/+/dc18a59%5E%21/) have been made. The implementation similar to Goldfish(stub) has been chosen as basic. Function in_get_active_microphones() was implemented as stub function that will expand in the future. This function fill array audio_microphone_characteristic_t with default microphone information. Signed-off-by: Anton Dehtiarov --- audio/audio_hw.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/audio/audio_hw.c b/audio/audio_hw.c index 52dc1dd..0dd01cb 100644 --- a/audio/audio_hw.c +++ b/audio/audio_hw.c @@ -2080,6 +2080,14 @@ static int adev_get_microphones(const struct audio_hw_device *dev, } #endif +#ifdef AUDIO_DEVICE_API_VERSION_5_0 +static int in_get_active_microphones(const struct audio_stream_in *stream, + struct audio_microphone_characteristic_t *mic_array, + size_t *mic_count) { + return adev_get_microphones(NULL, mic_array, mic_count); +} +#endif + /********************************************************************* * Stream open and close *********************************************************************/ @@ -2222,6 +2230,10 @@ static int adev_open_input_stream(struct audio_hw_device *dev, in->common.dev = adev; +#ifdef AUDIO_DEVICE_API_VERSION_5_0 + in->common.stream.get_active_microphones = in_get_active_microphones; +#endif + devices &= AUDIO_DEVICE_IN_ALL; ret = do_init_in_common(&in->common, config, devices); if (ret < 0) {