[feature] ecall msd interface modify 2
Change-Id: Ic4e0c720aa1fc8cc8aa50b5377a617f55b2f529c
diff --git a/lib/liblynq-call/lynq_call.cpp b/lib/liblynq-call/lynq_call.cpp
index f13ac33..1605fc3 100755
--- a/lib/liblynq-call/lynq_call.cpp
+++ b/lib/liblynq-call/lynq_call.cpp
@@ -1285,15 +1285,21 @@
}
-int lynq_set_msd(int* handle, const char *msd_data, int msd_length)
+int lynq_set_msd(int* handle, const unsigned char *msd_data, int msd_length)
{
- if(handle==NULL || ((*handle) >= LYNQ_CALL_MAX))
+ if(handle==NULL || ((*handle) >= LYNQ_CALL_MAX) || msd_length > MSD_MAX_LENGTH)
{
- LYERRLOG("handle is NULL or *handle %d is greater or equeal to %d, parameter error\n",*handle,LYNQ_CALL_MAX);
- return -1;
+ LYERRLOG("handle is NULL or *handle %d is greater or equeal to %d or msd_length %d is greater than %d, parameter error\n",*handle,LYNQ_CALL_MAX,msd_length,MSD_MAX_LENGTH);
+ return -1;
+ }
+ char* lynq_msd_data[MSD_MAX_LENGTH*2+1]={0};
+
+ for(int i =0; i<msd_length;i++)
+ {
+ sprintf(lynq_msd_data[i<<1],"%02x",msd_data[i]);
}
- return lynq_set_common_request(RIL_REQUEST_ECALL_SET_MSD,2,"%d %s",lynq_call_lists[(*handle)].call_id,msd_data);
+ return lynq_set_common_request(RIL_REQUEST_ECALL_SET_MSD,2,"%d %s",lynq_call_lists[(*handle)].call_id,lynq_msd_data);
}
int lynq_set_ivs(int enable)