[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