[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)