Loading hal/audio_extn/audio_defs.h +2 −0 Original line number Diff line number Diff line Loading @@ -101,4 +101,6 @@ /* Query if Proxy can be Opend */ #define AUDIO_PARAMETER_KEY_CAN_OPEN_PROXY "can_open_proxy" #define AUDIO_PARAMETER_IS_HW_DECODER_SESSION_ALLOWED "is_hw_dec_session_allowed" #endif /* AUDIO_DEFS_H */ hal/msm8916/platform.c +44 −0 Original line number Diff line number Diff line Loading @@ -138,6 +138,17 @@ char cal_name_info[WCD9XXX_MAX_CAL][MAX_CAL_NAME] = { #define AUDIO_PARAMETER_KEY_REC_PLAY_CONC "rec_play_conc_on" #define AUDIO_PARAMETER_IS_HW_DECODER_SESSION_ALLOWED "is_hw_dec_session_allowed" char * dsp_only_decoders_mime[] = { "audio/x-ms-wma" /* wma*/ , "audio/x-ms-wma-lossless" /* wma lossless */ , "audio/x-ms-wma-pro" /* wma prop */ , "audio/amr-wb-plus" /* amr wb plus */ , "audio/alac" /*alac */ , "audio/x-ape" /*ape */, }; enum { VOICE_FEATURE_SET_DEFAULT, VOICE_FEATURE_SET_VOLUME_BOOST Loading Loading @@ -3435,6 +3446,8 @@ void platform_get_parameters(void *platform, char value[512] = {0}; int ret; char *kv_pairs = NULL; char propValue[PROPERTY_VALUE_MAX]={0}; bool prop_playback_enabled = false; ret = str_parms_get_str(query, AUDIO_PARAMETER_KEY_SLOWTALK, value, sizeof(value)); Loading Loading @@ -3463,6 +3476,37 @@ void platform_get_parameters(void *platform, } native_audio_get_params(query, reply, value, sizeof(value)); ret = str_parms_get_str(query, AUDIO_PARAMETER_IS_HW_DECODER_SESSION_ALLOWED, value, sizeof(value)); if (ret >= 0) { int isallowed = 1; /*true*/ if (property_get("voice.playback.conc.disabled", propValue, NULL)) { prop_playback_enabled = atoi(propValue) || !strncmp("true", propValue, 4); } if (prop_playback_enabled && (voice_is_in_call(my_data->adev) || (SND_CARD_STATE_OFFLINE == get_snd_card_state(my_data->adev)))) { char *decoder_mime_type = value; //check if unsupported mime type or not if(decoder_mime_type) { int i = 0; for (i = 0; i < sizeof(dsp_only_decoders_mime)/sizeof(dsp_only_decoders_mime[0]); i++) { if (!strncmp(decoder_mime_type, dsp_only_decoders_mime[i], strlen(dsp_only_decoders_mime[i]))) { ALOGD("Rejecting request for DSP only session from HAL during voice call/SSR state"); isallowed = 0; break; } } } } str_parms_add_int(reply, AUDIO_PARAMETER_IS_HW_DECODER_SESSION_ALLOWED, isallowed); } /* Handle audio calibration keys */ kv_pairs = str_parms_to_str(reply); ALOGV("%s: exit: returns - %s", __func__, kv_pairs); Loading hal/msm8974/platform.c +44 −0 Original line number Diff line number Diff line Loading @@ -133,6 +133,18 @@ char cal_name_info[WCD9XXX_MAX_CAL][MAX_CAL_NAME] = { [WCD9XXX_VBAT_CAL] = "vbat_cal", }; #define AUDIO_PARAMETER_IS_HW_DECODER_SESSION_ALLOWED "is_hw_dec_session_allowed" char * dsp_only_decoders_mime[] = { "audio/x-ms-wma" /* wma*/ , "audio/x-ms-wma-lossless" /* wma lossless */ , "audio/x-ms-wma-pro" /* wma prop */ , "audio/amr-wb-plus" /* amr wb plus */ , "audio/alac" /*alac */ , "audio/x-ape" /*ape */, }; enum { VOICE_FEATURE_SET_DEFAULT, VOICE_FEATURE_SET_VOLUME_BOOST Loading Loading @@ -3301,6 +3313,8 @@ void platform_get_parameters(void *platform, char value[512] = {0}; int ret; char *kv_pairs = NULL; char propValue[PROPERTY_VALUE_MAX]={0}; bool prop_playback_enabled = false; ret = str_parms_get_str(query, AUDIO_PARAMETER_KEY_SLOWTALK, value, sizeof(value)); Loading Loading @@ -3332,6 +3346,36 @@ void platform_get_parameters(void *platform, get_audiocal(platform, query, reply); native_audio_get_params(query, reply, value, sizeof(value)); ret = str_parms_get_str(query, AUDIO_PARAMETER_IS_HW_DECODER_SESSION_ALLOWED, value, sizeof(value)); if (ret >= 0) { int isallowed = 1; /*true*/ if (property_get("voice.playback.conc.disabled", propValue, NULL)) { prop_playback_enabled = atoi(propValue) || !strncmp("true", propValue, 4); } if (prop_playback_enabled && (voice_is_in_call(my_data->adev) || (SND_CARD_STATE_OFFLINE == get_snd_card_state(my_data->adev)))) { char *decoder_mime_type = value; //check if unsupported mime type or not if(decoder_mime_type) { int i = 0; for (i = 0; i < sizeof(dsp_only_decoders_mime)/sizeof(dsp_only_decoders_mime[0]); i++) { if (!strncmp(decoder_mime_type, dsp_only_decoders_mime[i], strlen(dsp_only_decoders_mime[i]))) { ALOGD("Rejecting request for DSP only session from HAL during voice call/SSR state"); isallowed = 0; break; } } } } str_parms_add_int(reply, AUDIO_PARAMETER_IS_HW_DECODER_SESSION_ALLOWED, isallowed); } done: kv_pairs = str_parms_to_str(reply); ALOGV_IF(kv_pairs != NULL, "%s: exit: returns - %s", __func__, kv_pairs); Loading Loading
hal/audio_extn/audio_defs.h +2 −0 Original line number Diff line number Diff line Loading @@ -101,4 +101,6 @@ /* Query if Proxy can be Opend */ #define AUDIO_PARAMETER_KEY_CAN_OPEN_PROXY "can_open_proxy" #define AUDIO_PARAMETER_IS_HW_DECODER_SESSION_ALLOWED "is_hw_dec_session_allowed" #endif /* AUDIO_DEFS_H */
hal/msm8916/platform.c +44 −0 Original line number Diff line number Diff line Loading @@ -138,6 +138,17 @@ char cal_name_info[WCD9XXX_MAX_CAL][MAX_CAL_NAME] = { #define AUDIO_PARAMETER_KEY_REC_PLAY_CONC "rec_play_conc_on" #define AUDIO_PARAMETER_IS_HW_DECODER_SESSION_ALLOWED "is_hw_dec_session_allowed" char * dsp_only_decoders_mime[] = { "audio/x-ms-wma" /* wma*/ , "audio/x-ms-wma-lossless" /* wma lossless */ , "audio/x-ms-wma-pro" /* wma prop */ , "audio/amr-wb-plus" /* amr wb plus */ , "audio/alac" /*alac */ , "audio/x-ape" /*ape */, }; enum { VOICE_FEATURE_SET_DEFAULT, VOICE_FEATURE_SET_VOLUME_BOOST Loading Loading @@ -3435,6 +3446,8 @@ void platform_get_parameters(void *platform, char value[512] = {0}; int ret; char *kv_pairs = NULL; char propValue[PROPERTY_VALUE_MAX]={0}; bool prop_playback_enabled = false; ret = str_parms_get_str(query, AUDIO_PARAMETER_KEY_SLOWTALK, value, sizeof(value)); Loading Loading @@ -3463,6 +3476,37 @@ void platform_get_parameters(void *platform, } native_audio_get_params(query, reply, value, sizeof(value)); ret = str_parms_get_str(query, AUDIO_PARAMETER_IS_HW_DECODER_SESSION_ALLOWED, value, sizeof(value)); if (ret >= 0) { int isallowed = 1; /*true*/ if (property_get("voice.playback.conc.disabled", propValue, NULL)) { prop_playback_enabled = atoi(propValue) || !strncmp("true", propValue, 4); } if (prop_playback_enabled && (voice_is_in_call(my_data->adev) || (SND_CARD_STATE_OFFLINE == get_snd_card_state(my_data->adev)))) { char *decoder_mime_type = value; //check if unsupported mime type or not if(decoder_mime_type) { int i = 0; for (i = 0; i < sizeof(dsp_only_decoders_mime)/sizeof(dsp_only_decoders_mime[0]); i++) { if (!strncmp(decoder_mime_type, dsp_only_decoders_mime[i], strlen(dsp_only_decoders_mime[i]))) { ALOGD("Rejecting request for DSP only session from HAL during voice call/SSR state"); isallowed = 0; break; } } } } str_parms_add_int(reply, AUDIO_PARAMETER_IS_HW_DECODER_SESSION_ALLOWED, isallowed); } /* Handle audio calibration keys */ kv_pairs = str_parms_to_str(reply); ALOGV("%s: exit: returns - %s", __func__, kv_pairs); Loading
hal/msm8974/platform.c +44 −0 Original line number Diff line number Diff line Loading @@ -133,6 +133,18 @@ char cal_name_info[WCD9XXX_MAX_CAL][MAX_CAL_NAME] = { [WCD9XXX_VBAT_CAL] = "vbat_cal", }; #define AUDIO_PARAMETER_IS_HW_DECODER_SESSION_ALLOWED "is_hw_dec_session_allowed" char * dsp_only_decoders_mime[] = { "audio/x-ms-wma" /* wma*/ , "audio/x-ms-wma-lossless" /* wma lossless */ , "audio/x-ms-wma-pro" /* wma prop */ , "audio/amr-wb-plus" /* amr wb plus */ , "audio/alac" /*alac */ , "audio/x-ape" /*ape */, }; enum { VOICE_FEATURE_SET_DEFAULT, VOICE_FEATURE_SET_VOLUME_BOOST Loading Loading @@ -3301,6 +3313,8 @@ void platform_get_parameters(void *platform, char value[512] = {0}; int ret; char *kv_pairs = NULL; char propValue[PROPERTY_VALUE_MAX]={0}; bool prop_playback_enabled = false; ret = str_parms_get_str(query, AUDIO_PARAMETER_KEY_SLOWTALK, value, sizeof(value)); Loading Loading @@ -3332,6 +3346,36 @@ void platform_get_parameters(void *platform, get_audiocal(platform, query, reply); native_audio_get_params(query, reply, value, sizeof(value)); ret = str_parms_get_str(query, AUDIO_PARAMETER_IS_HW_DECODER_SESSION_ALLOWED, value, sizeof(value)); if (ret >= 0) { int isallowed = 1; /*true*/ if (property_get("voice.playback.conc.disabled", propValue, NULL)) { prop_playback_enabled = atoi(propValue) || !strncmp("true", propValue, 4); } if (prop_playback_enabled && (voice_is_in_call(my_data->adev) || (SND_CARD_STATE_OFFLINE == get_snd_card_state(my_data->adev)))) { char *decoder_mime_type = value; //check if unsupported mime type or not if(decoder_mime_type) { int i = 0; for (i = 0; i < sizeof(dsp_only_decoders_mime)/sizeof(dsp_only_decoders_mime[0]); i++) { if (!strncmp(decoder_mime_type, dsp_only_decoders_mime[i], strlen(dsp_only_decoders_mime[i]))) { ALOGD("Rejecting request for DSP only session from HAL during voice call/SSR state"); isallowed = 0; break; } } } } str_parms_add_int(reply, AUDIO_PARAMETER_IS_HW_DECODER_SESSION_ALLOWED, isallowed); } done: kv_pairs = str_parms_to_str(reply); ALOGV_IF(kv_pairs != NULL, "%s: exit: returns - %s", __func__, kv_pairs); Loading