[Feature]add lynq_set_ims API
Change-Id: I48c6f5015a4ab8118127e003f04d7a98264d8c6d
diff --git a/src/lynq/lib/liblynq-network/lynq_network.cpp b/src/lynq/lib/liblynq-network/lynq_network.cpp
index b6c58a9..a3e82aa 100755
--- a/src/lynq/lib/liblynq-network/lynq_network.cpp
+++ b/src/lynq/lib/liblynq-network/lynq_network.cpp
@@ -9,6 +9,7 @@
#include <cutils/jstring.h>
#include <pthread.h>
#include <vendor-ril/telephony/ril.h>
+#include <vendor-ril/telephony/mtk_ril_sp.h>
#include "lynq_network.h"
#include "liblog/lynq_deflog.h"
@@ -1291,6 +1292,54 @@
return response.error;
}
+int lynq_set_ims(const int ims_mode)
+{
+ int ret = -1;
+ if (ims_mode < 0 || ims_mode > 1)
+ {
+ LYERRLOG("incoming ims_mode error");
+ return ret;
+ }
+ int send_num = 0;
+ char res_data[LYNQ_REC_BUF] = {0};
+ int recv_num = 0;
+ lynq_client_t client_t;
+
+ memset(&client_t,0,sizeof(client_t));
+ client_t.request = RIL_REQUEST_SET_IMS_ENABLE;
+ client_t.paramLen = 1;
+ client_t.uToken = network_Global_uToken;
+ sprintf(client_t.param,"%d",ims_mode);
+
+ send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);
+ if (send_num<0)
+ {
+ LYERRLOG("sendto error:");
+ return ret;
+ }
+
+ recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);
+ if (recv_num == 0 || recv_num < 0)
+ {
+ LYERRLOG("recvfrom error");
+ return -1;
+ }
+
+ Parcel p;
+ p.setData((uint8_t *)res_data,sizeof(res_data));
+ p.setDataPosition(0);
+ if (p.dataAvail() > 0)
+ {
+ p.readInt32(&response.resp_type);
+ p.readInt32(&response.request);
+ p.readInt32(&response.slot_id);
+ p.readInt32(&response.error);
+ }
+
+ return response.error;
+}
+
+
/*Used to wait for an update signal*/
int lynq_wait_signalchanges(int *handle)
{