Loading hal/audio_extn/audio_extn.h +3 −0 Original line number Diff line number Diff line Loading @@ -1224,6 +1224,7 @@ int audio_extn_utils_get_license_params(const struct audio_device *adev, struct #define audio_extn_auto_hal_get_snd_device_for_car_audio_stream(out) (0) #define audio_extn_auto_hal_get_audio_port(dev, config) (0) #define audio_extn_auto_hal_set_audio_port_config(dev, config) (0) #define audio_extn_auto_hal_set_parameters(adev, parms) (0) #else int32_t audio_extn_auto_hal_init(struct audio_device *adev); void audio_extn_auto_hal_deinit(void); Loading @@ -1245,6 +1246,8 @@ int audio_extn_auto_hal_get_audio_port(struct audio_hw_device *dev, struct audio_port *config); int audio_extn_auto_hal_set_audio_port_config(struct audio_hw_device *dev, const struct audio_port_config *config); void audio_extn_auto_hal_set_parameters(struct audio_device *adev, struct str_parms *parms); #endif bool audio_extn_edid_is_supported_sr(edid_audio_info* info, int sr); Loading hal/audio_extn/auto_hal.c +26 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ struct hostless_config { typedef struct auto_hal_module { struct audio_device *adev; card_status_t card_status; struct hostless_config hostless; } auto_hal_module_t; Loading Loading @@ -560,6 +561,31 @@ int audio_extn_auto_hal_set_audio_port_config(struct audio_hw_device *dev, return ret; } void audio_extn_auto_hal_set_parameters(struct audio_device *adev __unused, struct str_parms *parms) { int ret = 0; char value[32]={0}; ALOGV("%s: enter", __func__); ret = str_parms_get_str(parms, "SND_CARD_STATUS", value, sizeof(value)); if (ret >= 0) { char *snd_card_status = value+2; ALOGV("%s: snd card status %s", __func__, snd_card_status); if (strstr(snd_card_status, "OFFLINE")) { auto_hal->card_status = CARD_STATUS_OFFLINE; audio_extn_auto_hal_disable_hostless(); } else if (strstr(snd_card_status, "ONLINE")) { auto_hal->card_status = CARD_STATUS_ONLINE; audio_extn_auto_hal_enable_hostless(); } } ALOGV("%s: exit", __func__); } int32_t audio_extn_auto_hal_init(struct audio_device *adev) { int32_t ret = 0; Loading hal/audio_hw.c +1 −0 Original line number Diff line number Diff line Loading @@ -9272,6 +9272,7 @@ static void adev_snd_mon_cb(void *cookie, struct str_parms *parms) adev->card_status = status; platform_snd_card_update(adev->platform, status); audio_extn_fm_set_parameters(adev, parms); audio_extn_auto_hal_set_parameters(adev, parms); } else if (is_ext_device_status) { platform_set_parameters(adev->platform, parms); } Loading Loading
hal/audio_extn/audio_extn.h +3 −0 Original line number Diff line number Diff line Loading @@ -1224,6 +1224,7 @@ int audio_extn_utils_get_license_params(const struct audio_device *adev, struct #define audio_extn_auto_hal_get_snd_device_for_car_audio_stream(out) (0) #define audio_extn_auto_hal_get_audio_port(dev, config) (0) #define audio_extn_auto_hal_set_audio_port_config(dev, config) (0) #define audio_extn_auto_hal_set_parameters(adev, parms) (0) #else int32_t audio_extn_auto_hal_init(struct audio_device *adev); void audio_extn_auto_hal_deinit(void); Loading @@ -1245,6 +1246,8 @@ int audio_extn_auto_hal_get_audio_port(struct audio_hw_device *dev, struct audio_port *config); int audio_extn_auto_hal_set_audio_port_config(struct audio_hw_device *dev, const struct audio_port_config *config); void audio_extn_auto_hal_set_parameters(struct audio_device *adev, struct str_parms *parms); #endif bool audio_extn_edid_is_supported_sr(edid_audio_info* info, int sr); Loading
hal/audio_extn/auto_hal.c +26 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ struct hostless_config { typedef struct auto_hal_module { struct audio_device *adev; card_status_t card_status; struct hostless_config hostless; } auto_hal_module_t; Loading Loading @@ -560,6 +561,31 @@ int audio_extn_auto_hal_set_audio_port_config(struct audio_hw_device *dev, return ret; } void audio_extn_auto_hal_set_parameters(struct audio_device *adev __unused, struct str_parms *parms) { int ret = 0; char value[32]={0}; ALOGV("%s: enter", __func__); ret = str_parms_get_str(parms, "SND_CARD_STATUS", value, sizeof(value)); if (ret >= 0) { char *snd_card_status = value+2; ALOGV("%s: snd card status %s", __func__, snd_card_status); if (strstr(snd_card_status, "OFFLINE")) { auto_hal->card_status = CARD_STATUS_OFFLINE; audio_extn_auto_hal_disable_hostless(); } else if (strstr(snd_card_status, "ONLINE")) { auto_hal->card_status = CARD_STATUS_ONLINE; audio_extn_auto_hal_enable_hostless(); } } ALOGV("%s: exit", __func__); } int32_t audio_extn_auto_hal_init(struct audio_device *adev) { int32_t ret = 0; Loading
hal/audio_hw.c +1 −0 Original line number Diff line number Diff line Loading @@ -9272,6 +9272,7 @@ static void adev_snd_mon_cb(void *cookie, struct str_parms *parms) adev->card_status = status; platform_snd_card_update(adev->platform, status); audio_extn_fm_set_parameters(adev, parms); audio_extn_auto_hal_set_parameters(adev, parms); } else if (is_ext_device_status) { platform_set_parameters(adev->platform, parms); } Loading