Loading hal/acdb.c +19 −8 Original line number Diff line number Diff line Loading @@ -61,11 +61,7 @@ int acdb_init(int snd_card_num) { int result = -1; char *cvd_version = NULL; const char *snd_card_name = NULL; struct mixer *mixer = NULL; struct acdb_platform_data *my_data = NULL; if(snd_card_num < 0) { ALOGE("invalid sound card number"); Loading @@ -76,7 +72,25 @@ int acdb_init(int snd_card_num) if (!mixer) { ALOGE("%s: Unable to open the mixer card: %d", __func__, snd_card_num); goto cleanup; return result; } result = acdb_init_v2(mixer); mixer_close(mixer); return result; } int acdb_init_v2(struct mixer *mixer) { int result = -1; char *cvd_version = NULL; const char *snd_card_name = NULL; struct acdb_platform_data *my_data = NULL; if (!mixer) { ALOGE("Invalid mixer handle"); return result; } my_data = calloc(1, sizeof(struct acdb_platform_data)); Loading Loading @@ -200,9 +214,6 @@ cleanup: free(my_data); } if (mixer) mixer_close(mixer); if (cvd_version) free(cvd_version); Loading hal/acdb.h +2 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ enum { ACDB_LOADER_INIT_V4, }; struct mixer; /* Audio calibration related functions */ typedef void (*acdb_deallocate_t)(); typedef int (*acdb_init_t)(); Loading Loading @@ -86,6 +87,7 @@ struct acdb_platform_data { }; int acdb_init(int); int acdb_init_v2(struct mixer *); int acdb_set_metainfo_key(void *platform, char *name, int key); #endif //ACDB_H hal/audio_extn/audio_extn.h +2 −0 Original line number Diff line number Diff line Loading @@ -634,6 +634,8 @@ void audio_extn_utils_update_stream_app_type_cfg_for_usecase( struct audio_device *adev, struct audio_usecase *usecase); int audio_extn_utils_get_snd_card_num(); int audio_extn_utils_open_snd_mixer(struct mixer **mixer_handle); void audio_extn_utils_close_snd_mixer(struct mixer *mixer); bool audio_extn_is_dsp_bit_width_enforce_mode_supported(audio_output_flags_t flags); bool audio_extn_utils_is_dolby_format(audio_format_t format); int audio_extn_utils_get_bit_width_from_string(const char *); Loading hal/audio_extn/utils.c +25 −3 Original line number Diff line number Diff line Loading @@ -2077,6 +2077,17 @@ int audio_extn_utils_compress_set_start_delay( #define RETRY_NUMBER 40 int audio_extn_utils_get_snd_card_num() { int snd_card_num = 0; struct mixer *mixer = NULL; snd_card_num = audio_extn_utils_open_snd_mixer(&mixer); if (mixer) mixer_close(mixer); return snd_card_num; } int audio_extn_utils_open_snd_mixer(struct mixer **mixer_handle) { void *hw_info = NULL; Loading @@ -2085,6 +2096,11 @@ int audio_extn_utils_get_snd_card_num() int snd_card_num = 0, min_snd_card_num = 0; char* snd_card_name = NULL; if (!mixer_handle) { ALOGE("invalid mixer handle"); return -1; } *mixer_handle = NULL; /* * Try with all the sound cards ( 0 to 8 ) and if none of them were detected * sleep for 1 sec and try detections with sound card 0 again. Loading Loading @@ -2138,9 +2154,6 @@ int audio_extn_utils_get_snd_card_num() if (snd_card_name) free(snd_card_name); if (mixer) mixer_close(mixer); if (hw_info) hw_info_deinit(hw_info); Loading @@ -2149,9 +2162,18 @@ int audio_extn_utils_get_snd_card_num() return -1; } if (mixer) *mixer_handle = mixer; return snd_card_num; } void audio_extn_utils_close_snd_mixer(struct mixer *mixer) { if (mixer) mixer_close(mixer); } #ifdef SNDRV_COMPRESS_ENABLE_ADJUST_SESSION_CLOCK int audio_extn_utils_compress_enable_drift_correction( struct stream_out *out, Loading hal/msm8916/platform.c +4 −11 Original line number Diff line number Diff line Loading @@ -2172,7 +2172,7 @@ void *platform_init(struct audio_device *adev) const char *id_string = NULL; int cfg_value = -1; snd_card_num = audio_extn_utils_get_snd_card_num(); snd_card_num = audio_extn_utils_open_snd_mixer(&adev->mixer); if(snd_card_num < 0) { ALOGE("%s: Unable to find correct sound card", __func__); return NULL; Loading @@ -2181,13 +2181,6 @@ void *platform_init(struct audio_device *adev) adev->snd_card = snd_card_num; ALOGD("%s: Opened sound card:%d", __func__, snd_card_num); adev->mixer = mixer_open(snd_card_num); if (!adev->mixer) { ALOGE("%s: Unable to open the mixer card: %d", __func__, snd_card_num); return NULL; } snd_card_name = mixer_get_name(adev->mixer); ALOGD("%s: snd_card_name: %s", __func__, snd_card_name); Loading Loading @@ -2217,7 +2210,7 @@ void *platform_init(struct audio_device *adev) ALOGE("%s: Failed to init audio route controls, aborting.", __func__); free(my_data); mixer_close(adev->mixer); audio_extn_utils_close_snd_mixer(adev->mixer); return NULL; } update_codec_type(snd_card_name); Loading Loading @@ -2445,7 +2438,7 @@ void *platform_init(struct audio_device *adev) goto acdb_init_fail; } int result = acdb_init(adev->snd_card); int result = acdb_init_v2(adev->mixer); if (!result) { my_data->is_acdb_initialized = true; ALOGD("ACDB initialized"); Loading Loading @@ -2740,7 +2733,7 @@ void platform_deinit(void *platform) } if (my_data->adev->mixer) { mixer_close(my_data->adev->mixer); audio_extn_utils_close_snd_mixer(my_data->adev->mixer); my_data->adev->mixer = NULL; } Loading Loading
hal/acdb.c +19 −8 Original line number Diff line number Diff line Loading @@ -61,11 +61,7 @@ int acdb_init(int snd_card_num) { int result = -1; char *cvd_version = NULL; const char *snd_card_name = NULL; struct mixer *mixer = NULL; struct acdb_platform_data *my_data = NULL; if(snd_card_num < 0) { ALOGE("invalid sound card number"); Loading @@ -76,7 +72,25 @@ int acdb_init(int snd_card_num) if (!mixer) { ALOGE("%s: Unable to open the mixer card: %d", __func__, snd_card_num); goto cleanup; return result; } result = acdb_init_v2(mixer); mixer_close(mixer); return result; } int acdb_init_v2(struct mixer *mixer) { int result = -1; char *cvd_version = NULL; const char *snd_card_name = NULL; struct acdb_platform_data *my_data = NULL; if (!mixer) { ALOGE("Invalid mixer handle"); return result; } my_data = calloc(1, sizeof(struct acdb_platform_data)); Loading Loading @@ -200,9 +214,6 @@ cleanup: free(my_data); } if (mixer) mixer_close(mixer); if (cvd_version) free(cvd_version); Loading
hal/acdb.h +2 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ enum { ACDB_LOADER_INIT_V4, }; struct mixer; /* Audio calibration related functions */ typedef void (*acdb_deallocate_t)(); typedef int (*acdb_init_t)(); Loading Loading @@ -86,6 +87,7 @@ struct acdb_platform_data { }; int acdb_init(int); int acdb_init_v2(struct mixer *); int acdb_set_metainfo_key(void *platform, char *name, int key); #endif //ACDB_H
hal/audio_extn/audio_extn.h +2 −0 Original line number Diff line number Diff line Loading @@ -634,6 +634,8 @@ void audio_extn_utils_update_stream_app_type_cfg_for_usecase( struct audio_device *adev, struct audio_usecase *usecase); int audio_extn_utils_get_snd_card_num(); int audio_extn_utils_open_snd_mixer(struct mixer **mixer_handle); void audio_extn_utils_close_snd_mixer(struct mixer *mixer); bool audio_extn_is_dsp_bit_width_enforce_mode_supported(audio_output_flags_t flags); bool audio_extn_utils_is_dolby_format(audio_format_t format); int audio_extn_utils_get_bit_width_from_string(const char *); Loading
hal/audio_extn/utils.c +25 −3 Original line number Diff line number Diff line Loading @@ -2077,6 +2077,17 @@ int audio_extn_utils_compress_set_start_delay( #define RETRY_NUMBER 40 int audio_extn_utils_get_snd_card_num() { int snd_card_num = 0; struct mixer *mixer = NULL; snd_card_num = audio_extn_utils_open_snd_mixer(&mixer); if (mixer) mixer_close(mixer); return snd_card_num; } int audio_extn_utils_open_snd_mixer(struct mixer **mixer_handle) { void *hw_info = NULL; Loading @@ -2085,6 +2096,11 @@ int audio_extn_utils_get_snd_card_num() int snd_card_num = 0, min_snd_card_num = 0; char* snd_card_name = NULL; if (!mixer_handle) { ALOGE("invalid mixer handle"); return -1; } *mixer_handle = NULL; /* * Try with all the sound cards ( 0 to 8 ) and if none of them were detected * sleep for 1 sec and try detections with sound card 0 again. Loading Loading @@ -2138,9 +2154,6 @@ int audio_extn_utils_get_snd_card_num() if (snd_card_name) free(snd_card_name); if (mixer) mixer_close(mixer); if (hw_info) hw_info_deinit(hw_info); Loading @@ -2149,9 +2162,18 @@ int audio_extn_utils_get_snd_card_num() return -1; } if (mixer) *mixer_handle = mixer; return snd_card_num; } void audio_extn_utils_close_snd_mixer(struct mixer *mixer) { if (mixer) mixer_close(mixer); } #ifdef SNDRV_COMPRESS_ENABLE_ADJUST_SESSION_CLOCK int audio_extn_utils_compress_enable_drift_correction( struct stream_out *out, Loading
hal/msm8916/platform.c +4 −11 Original line number Diff line number Diff line Loading @@ -2172,7 +2172,7 @@ void *platform_init(struct audio_device *adev) const char *id_string = NULL; int cfg_value = -1; snd_card_num = audio_extn_utils_get_snd_card_num(); snd_card_num = audio_extn_utils_open_snd_mixer(&adev->mixer); if(snd_card_num < 0) { ALOGE("%s: Unable to find correct sound card", __func__); return NULL; Loading @@ -2181,13 +2181,6 @@ void *platform_init(struct audio_device *adev) adev->snd_card = snd_card_num; ALOGD("%s: Opened sound card:%d", __func__, snd_card_num); adev->mixer = mixer_open(snd_card_num); if (!adev->mixer) { ALOGE("%s: Unable to open the mixer card: %d", __func__, snd_card_num); return NULL; } snd_card_name = mixer_get_name(adev->mixer); ALOGD("%s: snd_card_name: %s", __func__, snd_card_name); Loading Loading @@ -2217,7 +2210,7 @@ void *platform_init(struct audio_device *adev) ALOGE("%s: Failed to init audio route controls, aborting.", __func__); free(my_data); mixer_close(adev->mixer); audio_extn_utils_close_snd_mixer(adev->mixer); return NULL; } update_codec_type(snd_card_name); Loading Loading @@ -2445,7 +2438,7 @@ void *platform_init(struct audio_device *adev) goto acdb_init_fail; } int result = acdb_init(adev->snd_card); int result = acdb_init_v2(adev->mixer); if (!result) { my_data->is_acdb_initialized = true; ALOGD("ACDB initialized"); Loading Loading @@ -2740,7 +2733,7 @@ void platform_deinit(void *platform) } if (my_data->adev->mixer) { mixer_close(my_data->adev->mixer); audio_extn_utils_close_snd_mixer(my_data->adev->mixer); my_data->adev->mixer = NULL; } Loading