Loading configs/sdm670/audio_output_policy.conf +16 −0 Original line number Diff line number Diff line Loading @@ -115,4 +115,20 @@ inputs { bit_width 16 app_type 69944 } record_ambisonic_16 { profile record_ambisonic flags AUDIO_INPUT_FLAG_NONE formats AUDIO_FORMAT_PCM_16_BIT sampling_rates 48000 bit_width 16 app_type 69949 } record_ambisonic_24 { profile record_ambisonic flags AUDIO_INPUT_FLAG_NONE formats AUDIO_FORMAT_PCM_24_BIT_PACKED sampling_rates 48000 bit_width 24 app_type 69950 } } configs/sdm670/sdm670.mk +5 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,11 @@ PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio_hal.period_size=192 ##Ambisonic Capture PRODUCT_PROPERTY_OVERRIDES += \ persist.vendor.audio.ambisonic.capture=false persist.vendor.audio.ambisonic.auto.profile=false ##fluencetype can be "fluence" or "fluencepro" or "none" PRODUCT_PROPERTY_OVERRIDES += \ ro.vendor.audio.sdk.fluencetype=none\ Loading hal/msm8974/platform.c +26 −0 Original line number Diff line number Diff line Loading @@ -235,6 +235,8 @@ struct platform_data { int fluence_type; int fluence_mode; char fluence_cap[PROPERTY_VALUE_MAX]; bool ambisonic_capture; bool ambisonic_profile; bool slowtalk; bool hd_voice; bool ec_ref_enabled; Loading Loading @@ -2059,6 +2061,8 @@ void *platform_init(struct audio_device *adev) my_data->external_mic = false; my_data->fluence_type = FLUENCE_NONE; my_data->fluence_mode = FLUENCE_ENDFIRE; my_data->ambisonic_capture = false; my_data->ambisonic_profile = false; my_data->slowtalk = false; my_data->hd_voice = false; my_data->edid_info = NULL; Loading Loading @@ -2117,6 +2121,13 @@ void *platform_init(struct audio_device *adev) my_data->fluence_in_hfp_call = true; } } /* Check for Ambisonic Capture Enablement */ if (property_get_bool("persist.vendor.audio.ambisonic.capture",false)) my_data->ambisonic_capture = true; /* Check for Ambisonic Profile Assignment*/ if (property_get_bool("persist.vendor.audio.ambisonic.auto.profile",false)) my_data->ambisonic_profile = true; /* Check if Vbat speaker enabled property is set, this should be done before acdb init */ bool ret = false; Loading Loading @@ -4273,6 +4284,21 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d source == AUDIO_SOURCE_MIC)) { snd_device = SND_DEVICE_IN_HANDSET_GENERIC_QMIC; platform_set_echo_reference(adev, true, out_device); } else if (my_data->use_generic_handset == true && // system prop is enabled (my_data->ambisonic_capture == true) && // Enable Ambisonic capture (my_data->source_mic_type & SOURCE_QUAD_MIC) && // AND 4mic is available ((in_device & AUDIO_DEVICE_IN_BUILTIN_MIC) || // AND device is buit-in or back mic (in_device & AUDIO_DEVICE_IN_BACK_MIC)) && (source == AUDIO_SOURCE_MIC) && // AND source is MIC (int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_4) { // AND input channel is 4 snd_device = SND_DEVICE_IN_HANDSET_GENERIC_QMIC; /* Below check is true only in LA build to set ambisonic profile. In LE hal client will set profile */ if (my_data->ambisonic_profile == true) { strlcpy(adev->active_input->profile, "record_ambisonic", sizeof(adev->active_input->profile)); } } else if (source == AUDIO_SOURCE_CAMCORDER) { if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC || in_device & AUDIO_DEVICE_IN_BACK_MIC) { Loading Loading
configs/sdm670/audio_output_policy.conf +16 −0 Original line number Diff line number Diff line Loading @@ -115,4 +115,20 @@ inputs { bit_width 16 app_type 69944 } record_ambisonic_16 { profile record_ambisonic flags AUDIO_INPUT_FLAG_NONE formats AUDIO_FORMAT_PCM_16_BIT sampling_rates 48000 bit_width 16 app_type 69949 } record_ambisonic_24 { profile record_ambisonic flags AUDIO_INPUT_FLAG_NONE formats AUDIO_FORMAT_PCM_24_BIT_PACKED sampling_rates 48000 bit_width 24 app_type 69950 } }
configs/sdm670/sdm670.mk +5 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,11 @@ PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio_hal.period_size=192 ##Ambisonic Capture PRODUCT_PROPERTY_OVERRIDES += \ persist.vendor.audio.ambisonic.capture=false persist.vendor.audio.ambisonic.auto.profile=false ##fluencetype can be "fluence" or "fluencepro" or "none" PRODUCT_PROPERTY_OVERRIDES += \ ro.vendor.audio.sdk.fluencetype=none\ Loading
hal/msm8974/platform.c +26 −0 Original line number Diff line number Diff line Loading @@ -235,6 +235,8 @@ struct platform_data { int fluence_type; int fluence_mode; char fluence_cap[PROPERTY_VALUE_MAX]; bool ambisonic_capture; bool ambisonic_profile; bool slowtalk; bool hd_voice; bool ec_ref_enabled; Loading Loading @@ -2059,6 +2061,8 @@ void *platform_init(struct audio_device *adev) my_data->external_mic = false; my_data->fluence_type = FLUENCE_NONE; my_data->fluence_mode = FLUENCE_ENDFIRE; my_data->ambisonic_capture = false; my_data->ambisonic_profile = false; my_data->slowtalk = false; my_data->hd_voice = false; my_data->edid_info = NULL; Loading Loading @@ -2117,6 +2121,13 @@ void *platform_init(struct audio_device *adev) my_data->fluence_in_hfp_call = true; } } /* Check for Ambisonic Capture Enablement */ if (property_get_bool("persist.vendor.audio.ambisonic.capture",false)) my_data->ambisonic_capture = true; /* Check for Ambisonic Profile Assignment*/ if (property_get_bool("persist.vendor.audio.ambisonic.auto.profile",false)) my_data->ambisonic_profile = true; /* Check if Vbat speaker enabled property is set, this should be done before acdb init */ bool ret = false; Loading Loading @@ -4273,6 +4284,21 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d source == AUDIO_SOURCE_MIC)) { snd_device = SND_DEVICE_IN_HANDSET_GENERIC_QMIC; platform_set_echo_reference(adev, true, out_device); } else if (my_data->use_generic_handset == true && // system prop is enabled (my_data->ambisonic_capture == true) && // Enable Ambisonic capture (my_data->source_mic_type & SOURCE_QUAD_MIC) && // AND 4mic is available ((in_device & AUDIO_DEVICE_IN_BUILTIN_MIC) || // AND device is buit-in or back mic (in_device & AUDIO_DEVICE_IN_BACK_MIC)) && (source == AUDIO_SOURCE_MIC) && // AND source is MIC (int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_4) { // AND input channel is 4 snd_device = SND_DEVICE_IN_HANDSET_GENERIC_QMIC; /* Below check is true only in LA build to set ambisonic profile. In LE hal client will set profile */ if (my_data->ambisonic_profile == true) { strlcpy(adev->active_input->profile, "record_ambisonic", sizeof(adev->active_input->profile)); } } else if (source == AUDIO_SOURCE_CAMCORDER) { if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC || in_device & AUDIO_DEVICE_IN_BACK_MIC) { Loading