[feature] voice call audio interface

Change-Id: I3429a426c07f1cd082ffff2855dbda05cb22373f
diff --git a/framework/lynq-ril-service/src/cc.cpp b/framework/lynq-ril-service/src/cc.cpp
index f212ff7..09456b8 100755
--- a/framework/lynq-ril-service/src/cc.cpp
+++ b/framework/lynq-ril-service/src/cc.cpp
@@ -776,17 +776,17 @@
 
 int inCallRecord(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI)
 {
+     android::Parcel p;
     int recordEnable = 0;
     char* filepath = NULL;
     if(inCallstatus == CALL_OFF || speechStatus == SPEECH_OFF) {
         RLOGW("[warning],not in calling status. Can't do record!");
-        return 0;
+        goto FAIL_RETURN;
     }
 
-    if(argc < 3) {
-        free(pRI);
+    if(argc < 3) {   
         RLOGW("[error],inCallRecord parameter error!");
-        return 0;
+        goto FAIL_RETURN;
     }
 
     recordEnable = atoi(argv[1]) ? 1 : 0;
@@ -802,20 +802,31 @@
        }else{
             inCallRecordMode = 0;
             RLOGW("[error],inCallRecord Start fail!");
+            goto FAIL_RETURN;
       }
     } else { //disable record
         if (inCallRecordMode == 1) {
-            if(!(-1 != GSM_Stop() && -1 != GSM_Close()))
-                RLOGW("[error],inCallRecord fail!");
-
             inCallRecordMode = 0;
+            if(!(-1 != GSM_Stop() && -1 != GSM_Close()))
+            {
+                RLOGW("[error],inCallRecord fail!");
+                goto FAIL_RETURN;
+            }            
         }
     }
-
-   if(pRI != NULL) {
+    if(pRI != NULL) {
+       android::lynqAssemblyParcelheader(p,socket_id,LYNQ_REQUEST_RECORD,0,0);  
+       android::LYNQ_RIL_respSocket_sp(p,pRI);
        free(pRI);
-   }
+    }
     return 0;
+FAIL_RETURN:
+    if(pRI != NULL) {    
+        android::lynqAssemblyParcelheader(p,socket_id,LYNQ_REQUEST_RECORD,0,2);
+        android::LYNQ_RIL_respSocket_sp(p,pRI);
+        free(pRI);
+    }
+    return -1;       
 }
 
 int StopRecord()
@@ -834,10 +845,13 @@
 
 int setSpeechVolume(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI)
 {
+    android::Parcel p;
     int setValue = 0;
     RLOGD("setSpeechVolume start!");
 
     if(argc < 2) {
+        android::lynqAssemblyParcelheader(p,socket_id,LYNQ_REQUEST_SET_SPEECH_VOLUME,0,2);
+        android::LYNQ_RIL_respSocket_sp(p,pRI);
         free(pRI);
         RLOGW("Warning: no set volume value!");
         return -1;
@@ -848,28 +862,64 @@
     if (get_audio_path() == 0) {
         if(setValue < MIN_VOLUME || setValue > MAX_VOLUME) {
             RLOGW("Warning: set volume value is over-range!");
+            android::lynqAssemblyParcelheader(p,socket_id,LYNQ_REQUEST_SET_SPEECH_VOLUME,0,2);
+            android::LYNQ_RIL_respSocket_sp(p,pRI);
+            free(pRI);
             return -1;
         }
     } else {
         if(setValue < BT_MIN_VOLUME || setValue > BT_MAX_VOLUME) {
             RLOGW("Warning: set bt volume value is over-range!");
+            android::lynqAssemblyParcelheader(p,socket_id,LYNQ_REQUEST_SET_SPEECH_VOLUME,0,2);
+            android::LYNQ_RIL_respSocket_sp(p,pRI);
+            free(pRI);
             return -1;
         }
     }
     //paramter is from 1 to 7
     mixer_set_volume(setValue);
+    android::lynqAssemblyParcelheader(p,socket_id,LYNQ_REQUEST_SET_SPEECH_VOLUME,0,0);
+    printf(">>>>set speech Volume<<<< success value is %d!\n",setValue);
+    /*Warren add for t800 ril service 2021/12/23 end*/
+    android::LYNQ_RIL_respSocket_sp(p,pRI);
     free(pRI);
     return 0;
 }
+int getSpeechVolume(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI)
+{
+    android::Parcel p;
+    printf("WARREN TEST001!!!\n");
+    int volumn = mixer_get_volume();
+    //TBC -200 fail status
+    if(volumn <0) {
+        printf("get speech volumn fail, please check whether does call exsit.\n");
+        /*Warren add for t800 ril service 2021/12/23 start*/
+        android::lynqAssemblyParcelheader(p,socket_id,LYNQ_REQUEST_GET_SPEECH_VOLUME,0,2);
+        /*Warren add for t800 ril service 2021/12/23 end*/
+    } else {
+        /*Warren add for t800 ril service 2021/12/23 start*/
+        android::lynqAssemblyParcelheader(p,socket_id,LYNQ_REQUEST_GET_SPEECH_VOLUME,0,0);
+        /*Warren add for t800 ril service 2021/12/23 end*/
+    }
+    printf("current Speech Volume is%d",volumn);
+    p.writeInt32(volumn);
+    android::LYNQ_RIL_respSocket(p,(void *)pRI);
+    if(pRI) {
+        free(pRI);
+    }
+    return 0;
+}
 int setDtmfVolume(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI)
 {
+    android::Parcel p;
     int setValue = 0;
-    Parcel p;
     RLOGD("setDtmfVolume start!");
     printf("setDtmfVolume start!\n");
     if(argc < 2) {
         RLOGW("Warning: no set volume value!");
         printf("Warning: no set volume value!\n");
+        android::lynqAssemblyParcelheader(p,socket_id,LYNQ_REQUEST_SET_DTMF_VOLUME,0,2);
+        android::LYNQ_RIL_respSocket_sp(p,pRI);
         free(pRI);
         return -1;
     }
@@ -1260,7 +1310,7 @@
 //RIL_REQUEST_SET_MUTE
 int setMute(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI)
 {
-    Parcel p;
+    android::Parcel p;
     printf("WARREN TEST002!!!\n");
     if(argc<2)
     {
@@ -1275,12 +1325,12 @@
     int ret = setCallMute(mute);
     if(ret) {
         /*Warren add for t800 ril service 2021/12/23 start*/
-        android::lynqAssemblyParcelheader(p,socket_id,RIL_REQUEST_GET_MUTE,0,2);
+        android::lynqAssemblyParcelheader(p,socket_id,RIL_REQUEST_SET_MUTE,0,2);
         /*Warren add for t800 ril service 2021/12/23 start*/
         printf("set mute fail, please try agian\n");
     } else {
         /*Warren add for t800 ril service 2021/12/23 start*/
-        android::lynqAssemblyParcelheader(p,socket_id,RIL_REQUEST_GET_MUTE,0,0);
+        android::lynqAssemblyParcelheader(p,socket_id,RIL_REQUEST_SET_MUTE,0,0);
         /*Warren add for t800 ril service 2021/12/23 start*/
     }
     /*Warren add for t800 ril service 2021/12/23 start*/
@@ -1297,11 +1347,11 @@
 int getMute(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI)
 {
 
-    Parcel p;
+    android::Parcel p;
     printf("WARREN TEST001!!!\n");
     int mute = getCallMute();
     //TBC -200 fail status
-    if(mute == -200) {
+    if(mute < 0) {
         printf("get mute state fail, please check whether does call exsit.\n");
         /*Warren add for t800 ril service 2021/12/23 start*/
         android::lynqAssemblyParcelheader(p,socket_id,RIL_REQUEST_GET_MUTE,0,2);
@@ -1313,8 +1363,8 @@
     }
     printf("current mute state is%s",((mute == 1) ? "on\n" : "off\n"));
     p.writeInt32(mute);
-    android::LYNQ_RIL_respSocket(p,(void *)pRI);
     if(pRI) {
+        android::LYNQ_RIL_respSocket(p,(void *)pRI);
         free(pRI);
     }
     return 0;