[FP4T-516][VOIP CALL][zoom]The sound of video/voice call is very low

Change-Id: I0c576a19fd5b53b8c220a25c4757d1ec2e4f17b3
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index e3d0f56..bb9e36a 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -6634,53 +6634,39 @@
                     else
                         snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_2_WSA;
             } else {
-                if (hw_info_is_stereo_spkr(my_data->hw_info)) {
-                    if (my_data->voice_speaker_stereo){
-                        snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO;
-                        ALOGD("%s:plt voipcall SND_DEVICE_OUT_VOICE_SPEAKER_STEREO my_data->voip_app_type: %d", __func__, my_data->voip_app_type);
+                    snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
+                        ALOGE("%s:plt 6637 voipcall SND_DEVICE_OUT_VOICE_SPEAKER my_data->voip_app_type: %d", __func__, my_data->voip_app_type);
                         if (my_data->voip_app_type == VOIP_APP_TYPE_WHATSAPP) {
-                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO;
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
                             acdb_device_table[snd_device] = 15;
                         } else if (my_data->voip_app_type == VOIP_APP_TYPE_ZOOM) {
-                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO;
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
                             acdb_device_table[snd_device] = 1511;
                         } else if (my_data->voip_app_type == VOIP_APP_TYPE_TEAMS) {
-                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO;
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
                             acdb_device_table[snd_device] = 15;
                         } else if (my_data->voip_app_type == VOIP_APP_TYPE_SKYPE) {
-                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO;
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
                             acdb_device_table[snd_device] = 15;
                         } else if (my_data->voip_app_type == VOIP_APP_TYPE_LINE) {
-                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO;
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
                             acdb_device_table[snd_device] = 15;
                         } else if (my_data->voip_app_type == VOIP_APP_TYPE_FACEBOOK) {
-                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO;
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
                             acdb_device_table[snd_device] = 15;
                         } else if (my_data->voip_app_type == VOIP_APP_TYPE_TELEGRAM) {
-                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO;
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
                             acdb_device_table[snd_device] = 15;
                         } else if (my_data->voip_app_type == VOIP_APP_TYPE_SIGNAL) {
-                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO;
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
                             acdb_device_table[snd_device] = 15;
                         } else if (my_data->voip_app_type == VOIP_APP_TYPE_MEET) {
-                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO;
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
                             acdb_device_table[snd_device] = 1511;
                         } else {//VOIP_APP_TYPE_WECHAT
-                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO;
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
                             acdb_device_table[snd_device] = 15;
                         }
-					}else if (adev->enable_hfp)
-                        snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_HFP;
-                    else {
-                        if (my_data->mono_speaker == SPKR_1)
-                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
-                        else
-                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_2;
-                    }
-                } else if (adev->enable_hfp)
-                    snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_HFP;
-                else
-                    snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
             }
         } else if (is_a2dp_out_device_type(&devices)) {
             snd_device = SND_DEVICE_OUT_BT_A2DP;
@@ -6893,7 +6879,7 @@
                         snd_device = my_data->fluence_sb_enabled ?
                                      SND_DEVICE_IN_SPEAKER_MIC_AEC_NS_SB
                                      : SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
-                        ALOGD("%s:plt voipcall SND_DEVICE_IN_SPEAKER_MIC_AEC_NS my_data->voip_app_type: %d", __func__, my_data->voip_app_type);
+                        ALOGE("%s:plt voipcall SND_DEVICE_IN_SPEAKER_MIC_AEC_NS my_data->voip_app_type: %d", __func__, my_data->voip_app_type);
                         if (my_data->voip_app_type == VOIP_APP_TYPE_WHATSAPP) {
                             snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
                             acdb_device_table[snd_device] = 114;
@@ -6982,18 +6968,84 @@
                            my_data->fluence_in_voice_comm) {
                     if (my_data->fluence_mode == FLUENCE_BROADSIDE)
                         snd_device = SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_BROADSIDE;
-                    else
+                    else{
                         snd_device = my_data->fluence_sb_enabled ?
                                          SND_DEVICE_IN_SPEAKER_MIC_AEC_NS_SB
                                          : SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+					    ALOGE("%s:plt 6989 voipcall SND_DEVICE_IN_SPEAKER_MIC_AEC_NS my_data->voip_app_type: %d", __func__, my_data->voip_app_type);
+                        if (my_data->voip_app_type == VOIP_APP_TYPE_WHATSAPP) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_ZOOM) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 1144;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_TEAMS) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_SKYPE) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_LINE) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_FACEBOOK) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_TELEGRAM) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_SIGNAL) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_MEET) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 1145;
+                        } else {//VOIP_APP_TYPE_WECHAT
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        }
+					}
                 }
                 //adev->acdb_settings |= DMIC_FLAG;
-            } else
+            } else {
                 snd_device = my_data->fluence_sb_enabled ?
                                  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS_SB
                                  : (my_data->fluence_nn_enabled?
                                       SND_DEVICE_IN_SPEAKER_MIC_AEC_NS_NN
                                       : SND_DEVICE_IN_SPEAKER_MIC_AEC_NS);
+		         ALOGE("%s:plt 6997 voipcall SND_DEVICE_IN_SPEAKER_MIC_AEC_NS my_data->voip_app_type: %d", __func__, my_data->voip_app_type);
+                        if (my_data->voip_app_type == VOIP_APP_TYPE_WHATSAPP) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_ZOOM) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 1144;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_TEAMS) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_SKYPE) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_LINE) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_FACEBOOK) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_TELEGRAM) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_SIGNAL) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        } else if (my_data->voip_app_type == VOIP_APP_TYPE_MEET) {
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 1145;
+                        } else {//VOIP_APP_TYPE_WECHAT
+                            snd_device =  SND_DEVICE_IN_SPEAKER_MIC_AEC_NS;
+                            acdb_device_table[snd_device] = 114;
+                        }
+			}
         } else if (compare_device_type(in_devices, AUDIO_DEVICE_IN_BUILTIN_MIC)) {
             if ((my_data->fluence_type & FLUENCE_TRI_MIC) &&
                 (my_data->source_mic_type & SOURCE_THREE_MIC)) {
@@ -8453,6 +8505,7 @@
     struct listnode *node;
     struct meta_key_list *key_info;
     int key = 0;
+	int val = 0;
 
     if(kv_pairs == NULL) {
         ret = -ENOMEM;
@@ -8469,6 +8522,13 @@
         ALOGE("[%s] failed to allocate memory",__func__);
         goto done;
     }
+
+    err = str_parms_get_int(parms, AUDIO_PARAMETER_KEY_VOIP_APP_TYPE, &val);
+    if (err >= 0) {
+        my_data->voip_app_type = val;
+        ALOGD("%s:plt voipcall  my_data->voip_app_type: %d", __func__, my_data->voip_app_type);
+    }
+
     err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_SLOWTALK, value, len);
     if (err >= 0) {
         bool state = false;
@@ -8891,6 +8951,13 @@
     char propValue[PROPERTY_VALUE_MAX]={0};
     bool prop_playback_enabled = false;
 
+    ret = str_parms_get_str(query, AUDIO_PARAMETER_KEY_VOIP_APP_TYPE,
+                            value, sizeof(value));
+    if (ret >= 0) {
+        str_parms_add_int(reply, AUDIO_PARAMETER_KEY_VOIP_APP_TYPE,
+                          my_data->voip_app_type);
+    }
+
     ret = str_parms_get_str(query, AUDIO_PARAMETER_KEY_SLOWTALK,
                             value, sizeof(value));
     if (ret >= 0) {