[Feature][task-view-306]merge P56U08(patch6) version

Only Configure: No
Affected branch: master
Affected module: unknow
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: No

Change-Id: I8e809511ac30c97228dd110c304b4a08f4af36d7
diff --git a/ap/lib/libatext/ext_audio_func.c b/ap/lib/libatext/ext_audio_func.c
index d12ed7d..22a7d67 100755
--- a/ap/lib/libatext/ext_audio_func.c
+++ b/ap/lib/libatext/ext_audio_func.c
@@ -66,6 +66,19 @@
 	

 	MAX_CODEC_OUTPUT_PATH			   

 }T_ZDrv_CodecOutputPath;

+

+

+#ifdef _VBUFF_IN_SINGLE_CORE	

+extern int vbuffer_stream_start(void);

+extern int vbuffer_stream_stop(void);

+#endif

+

+#ifdef _USE_VOICE_AT

+

+extern int voice_SetVoiceBuffer(T_VoiceBuf_Para *vb);

+extern int voice_GetVoiceBuffer(T_VoiceBuf_Para *vb);

+#endif

+

 #ifdef _CONFIG_USE_CODEC_EARPIECE_DETECT

 extern SINT32 halEarp_Open(VOID);

 extern SINT32 halEarp_Close(VOID);

@@ -525,6 +538,134 @@
 }

 #endif

 

+#ifdef _USE_VOICE_AT

+

+int extAt_Voice_Process_set (int at_fd, char * at_paras, void * *res_msg, int * res_msglen)

+{

+	char *at_str = NULL;

+	UINT32 ret = DRV_SUCCESS;

+

+	int mode = 0;

+    int vp = 0;

+	

+	UINT16 onOff = 0;

+	at_str = at_paras;

+	printf("%s, at_paras:%s \n",__func__, at_paras);

+

+	ret = sscanf (at_str, "%d", &vp);

+	printf("%s: vp=%d,ret=%d\n",__func__,vp,ret);

+

+	if (ret == 1) {

+		

+		ret = voice_SetVoiceProcess(&vp);

+		printf("%s: alsa_voice_open,ret=%d\n",__func__,ret);

+		

+		if (ret == DRV_SUCCESS) {

+			*res_msg = at_ok_build();

+			*res_msglen = strlen (*res_msg);

+			return AT_END;

+		}

+	}

+	*res_msg = at_err_build(ATERR_PROC_FAILED);

+	*res_msglen = strlen (*res_msg);

+	

+	return AT_END;

+}

+

+

+

+int extAt_Voice_Process_get(int at_fd,char * at_paras,void **res_msg,int * res_msglen)

+{

+

+

+

+    char  vp_str[32] = {0};

+    printf("%s: %s\n",__func__,at_paras);

+    int vp = voice_GetVoiceProcess();

+	if( vp < 0)

+    {

+        *res_msg = at_err_build(ATERR_PROC_FAILED);	

+		*res_msglen = strlen(*res_msg);

+		return AT_END;

+    }

+    printf("%s: vp=%d",__func__,vp);

+	

+    snprintf(vp_str, 32,"%d\r\n",vp);

+	

+	*res_msg = at_query_result_build("AT+VOICEPROCESS",vp_str);

+	*res_msglen = strlen(*res_msg);

+    return AT_END;

+

+}

+

+

+

+

+int extAt_VoiceBuffer_Set (int at_fd, char * at_paras, void * *res_msg, int * res_msglen)

+{

+	char *at_str = NULL;

+	UINT32 ret = DRV_SUCCESS;

+

+	int enable = 0;

+    int type = 0;

+	T_VoiceBuf_Para vb;

+	at_str = at_paras;

+	printf("%s, at_paras:%s \n",__func__, at_paras);

+

+	//ret = sscanf (at_str, "%d", &vp);

+	

+	ret = sscanf (at_str, "%d,%d", &enable,&type);

+	printf("%s: enable=%d type=%d,ret=%d\n",__func__,enable,type,ret);

+

+	if (ret == 2) {

+		vb.enable = enable;

+		vb.type = type;

+		

+	    ret = voice_SetVoiceBuffer(&vb);

+		printf("%s: voice_SetVoiceBuffer,ret=%d\n",__func__,ret);

+		

+		if (ret == DRV_SUCCESS) {

+			*res_msg = at_ok_build();

+			*res_msglen = strlen (*res_msg);

+			return AT_END;

+		}

+	}

+	*res_msg = at_err_build(ATERR_PROC_FAILED);

+	*res_msglen = strlen (*res_msg);

+	

+	return AT_END;

+}

+

+

+int extAt_VoiceBuffer_Get(int at_fd,char * at_paras,void **res_msg,int * res_msglen)

+{

+	UINT32 ret = DRV_SUCCESS;

+

+	T_VoiceBuf_Para vb;

+

+

+    char  vp_str[32] = {0};

+    printf("%s: %s\n",__func__,at_paras);

+    ret = voice_GetVoiceBuffer(&vb);

+	if( ret < 0)

+    {

+        *res_msg = at_err_build(ATERR_PROC_FAILED);	

+		*res_msglen = strlen(*res_msg);

+		return AT_END;

+    }

+    printf("%s: fs=%d enable=%d type=%d",__func__,vb.fs,vb.enable,vb.type);

+	

+    snprintf(vp_str, 32,"%d %d %d\r\n",vb.fs,vb.enable,vb.type);

+	

+	*res_msg = at_query_result_build("AT+VOICE_BUFFER",vp_str);

+	*res_msglen = strlen(*res_msg);

+    return AT_END;

+

+}

+

+

+#endif

+

 #ifdef _VBUFF_IN_SINGLE_CORE

 int extAt_VBUFFER_act_func (int at_fd, char * at_paras, void * *res_msg, int * res_msglen)

 {

@@ -587,13 +728,23 @@
 	register_serv_func2("VALSA=", 0, 0, 0, extAt_VALSA_act_func, NULL);

 	register_serv_func2("VPATH=", 0, 0, 0, extAt_VPATH_act_func, NULL);

     register_serv_func2("CAP_VALSA=", 0, 0, 0, extAt_CAP_VALSA_act_func, NULL);

-	

 #endif

 

 #ifdef _VBUFF_IN_SINGLE_CORE

     register_serv_func2("VBUFFER=", 0, 0, 0, extAt_VBUFFER_act_func, NULL);

 #endif

 

+#ifdef _USE_VOICE_AT

+register_serv_func2("VOICE_PROCESS=",0,0,0,extAt_Voice_Process_set, NULL);

+register_serv_func2("VOICE_PROCESS?",0,0,0,extAt_Voice_Process_get, NULL);	

+

+register_serv_func2("VOICE_BUFFER=",0,0,0,extAt_VoiceBuffer_Set, NULL);

+register_serv_func2("VOICE_BUFFER?",0,0,0,extAt_VoiceBuffer_Get, NULL);	

+#endif

+

+

+

+

 }

 

 #endif