[Bugfix][T106BUG-640]Add MIC volume level and mute function API

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

Change-Id: Id9acb94f948771afa3a8fb4705e4be750298236e
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/cc.cpp b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/cc.cpp
index cdb28f1..213c61a 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/cc.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/cc.cpp
@@ -1602,15 +1602,43 @@
 {
     
     android::Parcel p;
-    printf("WARREN TEST002!!!\n");
+    int ret = -1;
     
 #ifdef MOBILETEK_TARGET_PLATFORM_T106
+    int setvalue = 0;
+    if(argc < 2) 
+    {
+        android::lynqAssemblyParcelheader(p,socket_id,pRI->uToken,LYNQ_REQUEST_SET_SPEECH_VOLUME,0,2);
+        android::LYNQ_RIL_respSocket(p,pRI);
+        if(pRI)
+        {
+            free(pRI);
+        }
+        
+        RLOGW("Warning: no set volume value!");
+        return -1;
+    }
+
     RLOGD("Enter set Mute");
-    size_t pos = p.dataPosition();
-    p.writeInt32(1);
-    p.writeInt32(atoi(argv[1]));
-    p.setDataPosition(pos);
-    pRI->pCI->dispatchFunction(p, pRI);
+    setvalue = atoi(argv[1]);
+    RLOGD("set setMute value is %d!",setvalue);
+    ret = sc_audio_set_tx_voice_mute_state(setvalue);
+    if(ret !=0)
+    {
+        RLOGE("Set Mute failed ret is %d",ret);
+        android::lynqAssemblyParcelheader(p,socket_id,pRI->uToken,RIL_REQUEST_SET_MUTE,0,2);
+       
+    }
+    else
+    {
+        android::lynqAssemblyParcelheader(p,socket_id,pRI->uToken,RIL_REQUEST_SET_MUTE,0,0);
+    }
+    android::LYNQ_RIL_respSocket(p,(void *)pRI);
+    if(pRI)
+    {
+        free(pRI);
+    }
+    
 #else
 
     if(argc<2)
@@ -1642,6 +1670,7 @@
         free(pRI);
     }
 #endif
+
     return 0;
 }
 
@@ -1650,11 +1679,29 @@
 {
 
     android::Parcel p;
-    printf("WARREN TEST001!!!\n");
+   
+    int ret = -1;
 #ifdef MOBILETEK_TARGET_PLATFORM_T106
+    int mute = -1;
     RLOGD("Enter get Mute");
-    pRI->pCI->dispatchFunction(p, pRI);
-    
+    ret = sc_audio_get_tx_voice_mute_state(&mute);
+    if(ret != 0 )
+    {   
+        RLOGE("Get mute state failed ,ret is %d",ret);
+        android::lynqAssemblyParcelheader(p,socket_id,pRI->uToken,RIL_REQUEST_GET_MUTE,0,2);
+    }
+    else
+    {
+        RLOGD("Get mute state success, mute is %d", mute);
+        android::lynqAssemblyParcelheader(p,socket_id,pRI->uToken,RIL_REQUEST_GET_MUTE,0,0);
+    }
+    p.writeInt32(1);
+    p.writeInt32(mute);
+    android::LYNQ_RIL_respSocket(p,(void *)pRI);
+    if(pRI) 
+    {
+        free(pRI);
+    }
 #else
 
     int mute = getCallMute();
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-call/include/libcall/lynq_call.h b/cap/zx297520v3/src/lynq/lib/liblynq-call/include/libcall/lynq_call.h
index 3bb398f..01df12e 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-call/include/libcall/lynq_call.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-call/include/libcall/lynq_call.h
@@ -63,7 +63,8 @@
 int lynq_switch_waiting_or_holding_and_active(void);

 int lynq_hangup_waiting_or_background(void);

 int lynq_hangup_foreground_resume_background(void);

-

+int lynq_set_mic_input_volume(const int vol);

+int lynq_get_mic_input_volume(int *p_vol);

 /* add for T106bug-213 2023/9/18 */

 void lynq_release_wait_call();

 

diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-call/lynq_call.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-call/lynq_call.cpp
index 58849e7..404acb7 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-call/lynq_call.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-call/lynq_call.cpp
@@ -17,11 +17,17 @@
 #include <vendor-ril/telephony/ril.h>

 #include <vendor-ril/telephony/mtk_ril_sp.h>

 #include <vendor-ril/telephony/mtk_ril_ivt.h>

+

 #include "lynq_call.h"

 #include "lynq_module_common.h"

 #include "lynq_module_socket.h"

 #include "lynq_call_common.h"

 

+

+extern "C"{

+#include "sc_voice_api.h"

+}

+

 #define CALL_OFF (0)

 #define CALL_ON  (1)

 #define USER_LOG_TAG "LYNQ_CALL"

@@ -1455,11 +1461,51 @@
 }

 /*audio end*/

 

+

 void lynq_release_wait_call()

 {

     pthread_cond_signal(&s_call_state_change_cond);

 }

 

+int lynq_set_mic_input_volume(const int vol)

+{

+    if(vol < MIN_VOLUME || vol > MAX_VOLUME)

+    {

+        LYERRLOG("Incorrect volume value: %d", vol);

+        return LYNQ_E_PARAMETER_ANONALY;

+    }

+    

+    int ret = -1;

+    ret = sc_audio_set_tx_voice_vol(vol);

+    if(ret !=0)

+    {

+        LYERRLOG("set mic input volume fail, ret = %d",ret);

+        return ret;

+    }

+    else

+    {

+        LYINFLOG("set mic input volume success, vol = %d",vol);

+    }

+

+    return 0;

+}

+

+int lynq_get_mic_input_volume(int *p_vol)

+{

+    int ret = -1;

+    ret = sc_audio_get_tx_voice_vol(p_vol);

+    if(ret != 0)

+    {

+        LYERRLOG("get mic input volume fail, ret = %d",ret);

+        return ret;

+    }

+    else

+    {

+        LYINFLOG("get mic input volume success, vol = %d",*p_vol);

+    }

+    return 0;

+}

+

 bool is_support_urc(int urc_id)

 {

     switch(urc_id)

@@ -1545,3 +1591,6 @@
 }

 #endif

 /*Warren add for T800 platform 2021/11/19 end*/

+

+

+

diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-call/makefile b/cap/zx297520v3/src/lynq/lib/liblynq-call/makefile
index b38e05b..34f701a 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-call/makefile
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-call/makefile
@@ -19,6 +19,7 @@
 
 ifeq ($(strip $(TARGET_PLATFORM)), T106)
     LOCAL_CFLAGS += -DMOBILETEK_TARGET_PLATFORM_T106
+    LOCAL_CFLAGS += -DUSE_CAP_SUPPORT
 endif
 
 $(warning ################# lynq data demo ROOT: $(ROOT),includedir:$(includedir))
@@ -44,6 +45,7 @@
     -lpthread \
     -llynq-log \
     -llynq-shm \
+    -lmedia \
 
 SOURCES = $(wildcard *.cpp)