📄 jwa_mms.c
字号:
/*****************************************************************************
* FUNCTION
* jwa_mms_send_message_part
* DESCRIPTION
*
* PARAMETERS
* send_msg_part_data [?]
* RETURNS
*
*****************************************************************************/
int jwa_mms_send_message_part(jwa_mms_send_msg_part_req_struct *send_msg_part_data)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
jwa_mms_send_msg_part_req_struct *send_part = send_msg_part_data;
wap_mmc_post_appmms_msg_part_res_struct *p;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_DUAL_SIM_MASTER__
if (((!mmi_bootup_is_sim_valid()) && (jam_get_sim_id() == WAP_SIM_ID_SIM1)) ||
((!mmi_bootup_is_sim2_valid()) && (jam_get_sim_id() == WAP_SIM_ID_SIM2)))
#else
if (!mmi_bootup_is_sim_valid())
#endif /* __MMI_DUAL_SIM_MASTER__ */
{
return J2ME_MMS_INVALID_SIM;
}
#ifdef J2ME_SUPPORT_BACKGROUND
/* MMS service is not available during bg running state */
if (jvm_get_state() == JVM_BG_RUNNING_STATE)
{
sprintf(_kvmLogStr,"jwa_mms_send_message_part: BG running state \n");
Kprintf();
return J2ME_MMS_NOT_AVAILABLE;
}
#endif /* J2ME_SUPPORT_BACKGROUND */
p = (wap_mmc_post_appmms_msg_part_res_struct*)
construct_local_para(sizeof(wap_mmc_post_appmms_msg_part_res_struct), TD_CTRL);
p->encoding_scheme = (MmsCharset) send_part->encoding_scheme;
p->content_type_len = (kal_uint8) send_part->content_type_len;
p->content_id_len = (kal_uint8) send_part->content_id_len;
p->content_location_len = (kal_uint8) send_part->content_location_len;
p->filepath_len = (kal_uint8) send_part->filepath_len;
if (p->content_type_len > J2ME_MMS_LOCAL_PARAMETER_ARRAY_LEN)
{
free_local_para((local_para_struct*) p);
return J2ME_MMS_INVALID_PARAMETER;
}
if (p->content_id_len > J2ME_MMS_LOCAL_PARAMETER_ARRAY_LEN)
{
free_local_para((local_para_struct*) p);
return J2ME_MMS_INVALID_PARAMETER;
}
if (p->content_location_len > J2ME_MMS_LOCAL_PARAMETER_ARRAY_LEN)
{
free_local_para((local_para_struct*) p);
return J2ME_MMS_INVALID_PARAMETER;
}
if (p->filepath_len > J2ME_MMS_MAX_FILE_PATH_LEN)
{
free_local_para((local_para_struct*) p);
return J2ME_MMS_INVALID_PARAMETER;
}
if (p->content_type_len > 0)
{
memcpy(p->content_type, send_part->content_type, p->content_type_len);
p->content_type[p->content_type_len] = '\0';
}
else
{
p->content_type[0] = '\0';
}
if (p->content_id_len > 0)
{
memcpy(p->content_id, send_part->content_id, p->content_id_len);
p->content_id[p->content_id_len] = '\0';
}
else
{
p->content_id[0] = '\0';
}
if (p->content_location_len > 0)
{
memcpy(p->content_location, send_part->content_location, p->content_location_len);
p->content_location[p->content_location_len] = '\0';
}
else
{
p->content_location[0] = '\0';
}
if (p->filepath_len > 0)
{
kal_uint8 *filepath = jvm_malloc(p->filepath_len + 1);
memset(filepath, 0, p->filepath_len + 1);
strncpy((kal_char*) filepath, (kal_char*) (send_part->filepath), p->filepath_len);
kal_wsprintf(p->filepath, "%s", filepath);
p->filepath_len = kal_wstrlen(p->filepath);
jvm_free(filepath);
}
J2ME_mms_send_ilm(p, NULL, MSG_ID_WAP_MMC_POST_APPMMS_MSG_PART_RES, wap_get_service_module(MSG_ID_WAP_MMC_POST_APPMMS_MSG_PART_RES));
return J2ME_MMS_OK;
}
/*****************************************************************************
* FUNCTION
* jwa_mms_get_message_req
* DESCRIPTION
*
* PARAMETERS
* app_id_length [IN]
* app_id [?]
* RETURNS
*
*****************************************************************************/
int jwa_mms_get_message_req(int app_id_length, char *app_id)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_uint8 appIdLen = (kal_uint8) app_id_length;
char *appId = app_id;
wap_mmc_recv_appmms_req_struct *p;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_DUAL_SIM_MASTER__
if ((!mmi_bootup_is_sim_valid()) && (!mmi_bootup_is_sim2_valid()))
#else
if (!mmi_bootup_is_sim_valid())
#endif /* __MMI_DUAL_SIM_MASTER__ */
{
return J2ME_MMS_INVALID_SIM;
}
if (appIdLen == 0)
{
return J2ME_MMS_INVALID_PARAMETER;
}
if (appIdLen > J2ME_MMS_LOCAL_PARAMETER_ARRAY_LEN)
{
return J2ME_MMS_INVALID_PARAMETER;
}
#ifdef J2ME_SUPPORT_BACKGROUND
/* MMS service is not available during bg running state */
if (jvm_get_state() == JVM_BG_RUNNING_STATE)
{
sprintf(_kvmLogStr,"jwa_mms_get_message_req: BG running state \n");
Kprintf();
return J2ME_MMS_NOT_AVAILABLE;
}
#endif /* J2ME_SUPPORT_BACKGROUND */
p = (wap_mmc_recv_appmms_req_struct*) construct_local_para(sizeof(wap_mmc_recv_appmms_req_struct), TD_CTRL);
p->app_id_len = appIdLen;
memcpy(p->app_id, appId, p->app_id_len);
p->app_id[p->app_id_len] = '\0';
j2me_mms_in_progress = KAL_TRUE;
J2ME_mms_send_ilm(p, NULL, MSG_ID_WAP_MMC_RECV_APPMMS_REQ, wap_get_service_module(MSG_ID_WAP_MMC_RECV_APPMMS_REQ));
return J2ME_MMS_OK;
}
/*****************************************************************************
* FUNCTION
* jwa_mms_get_message_part_req
* DESCRIPTION
*
* PARAMETERS
* more [IN]
* RETURNS
*
*****************************************************************************/
int jwa_mms_get_message_part_req(int more)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_DUAL_SIM_MASTER__
if ((!mmi_bootup_is_sim_valid()) && (!mmi_bootup_is_sim2_valid()))
#else
if (!mmi_bootup_is_sim_valid())
#endif /* __MMI_DUAL_SIM_MASTER__ */
{
return J2ME_MMS_INVALID_SIM;
}
#ifdef J2ME_SUPPORT_BACKGROUND
/* MMS service is not available during bg running state */
if (jvm_get_state() == JVM_BG_RUNNING_STATE)
{
sprintf(_kvmLogStr,"jwa_mms_get_message_part_req: BG running state \n");
Kprintf();
return J2ME_MMS_NOT_AVAILABLE;
}
#endif /* J2ME_SUPPORT_BACKGROUND */
if (more == 0)
{
j2me_mms_in_progress = KAL_FALSE;
}
J2ME_mms_send_ilm(NULL, NULL, MSG_ID_WAP_MMC_READ_APPMMS_MSG_PART_REQ, wap_get_service_module(MSG_ID_WAP_MMC_READ_APPMMS_MSG_PART_REQ));
return J2ME_MMS_OK;
}
/*****************************************************************************
* FUNCTION
* jwa_mms_check_incoming_message
* DESCRIPTION
*
* PARAMETERS
* app_id_len [IN]
* app_id [?]
* only_new [IN]
* RETURNS
*
*****************************************************************************/
int jwa_mms_check_incoming_message(int app_id_len, char *app_id, kal_bool only_new)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
int appIdLen = app_id_len;
kal_uint8 *appId = (kal_uint8*) app_id;
kal_bool onlyNew = only_new;
wap_mmc_check_appmms_coming_req_struct *p;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_DUAL_SIM_MASTER__
if ((!mmi_bootup_is_sim_valid()) && (!mmi_bootup_is_sim2_valid()))
#else
if (!mmi_bootup_is_sim_valid())
#endif /* __MMI_DUAL_SIM_MASTER__ */
{
return J2ME_MMS_INVALID_SIM;
}
if (appIdLen == -1)
{
return J2ME_MMS_INVALID_PARAMETER;
}
else if (appIdLen > J2ME_MMS_LOCAL_PARAMETER_ARRAY_LEN)
{
return J2ME_MMS_INVALID_PARAMETER;
}
#ifdef J2ME_SUPPORT_BACKGROUND
/* MMS service is not available during bg running state */
else if (jvm_get_state() == JVM_BG_RUNNING_STATE)
{
sprintf(_kvmLogStr,"jwa_mms_check_incoming_message: BG running state \n");
Kprintf();
return J2ME_MMS_NOT_AVAILABLE;
}
#endif /* J2ME_SUPPORT_BACKGROUND */
else
{
p = (wap_mmc_check_appmms_coming_req_struct*)
construct_local_para(sizeof(wap_mmc_check_appmms_coming_req_struct), TD_CTRL);
p->only_new = (kal_bool) onlyNew;
p->app_id_len = appIdLen;
memcpy(p->app_id, appId, p->app_id_len);
p->app_id[p->app_id_len] = '\0';
J2ME_mms_send_ilm(p, NULL, MSG_ID_WAP_MMC_CHECK_APPMMS_COMING_REQ, wap_get_service_module(MSG_ID_WAP_MMC_CHECK_APPMMS_COMING_REQ));
}
return J2ME_MMS_OK;
}
/*****************************************************************************
* FUNCTION
* jwa_mms_get_message
* DESCRIPTION
*
* PARAMETERS
* receive_data [?]
* RETURNS
*
*****************************************************************************/
int jwa_mms_get_message(jwa_mms_receive_msg_struct *receive_data)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
jwa_mms_receive_msg_struct *receiveData = receive_data;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
receiveData->priority = j2me_mms_recv_data.priority;
receiveData->from_addr_no = j2me_mms_recv_data.from_addr_no;
receiveData->to_addr_no = j2me_mms_recv_data.to_addr_no;
receiveData->cc_addr_no = j2me_mms_recv_data.cc_addr_no;
receiveData->bdy_part_no = j2me_mms_recv_data.bdy_part_no;
receiveData->start_cnt_id_len = j2me_mms_recv_data.start_cnt_id_len;
receiveData->reply_app_id_len = j2me_mms_recv_data.reply_app_id_len;
receiveData->msg_info_len = j2me_mms_recv_data.peer_buffer_len;
receiveData->date = j2me_mms_recv_data.date;
if (j2me_mms_recv_data.start_cnt_id != NULL)
{
receiveData->start_cnt_id = j2me_mms_recv_data.start_cnt_id;
}
else
{
receiveData->start_cnt_id = NULL;
}
if (j2me_mms_recv_data.reply_app_id != NULL)
{
receiveData->reply_app_id = j2me_mms_recv_data.reply_app_id;
}
else
{
receiveData->reply_app_id = NULL;
}
if (j2me_mms_recv_data.peer_buffer != NULL)
{
receiveData->msg_info = j2me_mms_recv_data.peer_buffer;
}
else
{
receiveData->msg_info = NULL;
}
/* J2ME_mms_reset_recv_data(); */
return J2ME_MMS_OK;
}
/*****************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -