📄 jsr205.c
字号:
{
mmi_jsr_upload_msg_output_req_hldr(JSR_RESULT_INSUFFICIENT_MEMORY, 0);
return;
}
memset(fname, 0, 100);
mmi_chset_ucs2_to_utf8_string((U8*) fname, (len + 1), (U8*) Message->filePath);
//JMMS function call
result = mmi_jmms_at_save_mms(fname, &msgId);
mmi_jsr_upload_msg_output_req_hldr(result, msgId);
if (fname != NULL)
{
jdd_MemFree(fname);
fname = NULL;
}
}
else
{
ASSERT(0); /* File path too long. */
}
}
else
{
mmi_jsr_upload_msg_output_req_hldr(JSR_RESULT_INVALID_PARAMETER, 0);
}
}
else
{
mmi_jsr_upload_msg_output_req_hldr(JSR_RESULT_BUSY, 0);
}
}
/*****************************************************************************
* FUNCTION
* mmi_jsr_upload_msg_output_req_hldr
* DESCRIPTION
* Create a MSG_ID_WAP_MMC_UPLOAD_MSG_OUTPUT_REQ primitive to L4
* PARAMETERS
* result [IN]
* msgId [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_jsr_upload_msg_output_req_hldr(JsrResult result, U32 msgId)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
wap_mmc_upload_msg_output_req_struct *myMsgPtr;
ilm_struct *ilm_ptr = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
myMsgPtr = (wap_mmc_upload_msg_output_req_struct*)
OslConstructDataPtr(sizeof(wap_mmc_upload_msg_output_req_struct));
if (myMsgPtr)
{
memset((char*)(myMsgPtr) + 4, 0x00, (sizeof(wap_mmc_upload_msg_output_req_struct) - 4));
myMsgPtr->result = (U8) result;
myMsgPtr->msgId = msgId;
ilm_ptr = allocate_ilm(MOD_WAP);
ilm_ptr->src_mod_id = MOD_WAP;
ilm_ptr->sap_id = MMI_L4C_SAP;
ilm_ptr->dest_mod_id = MOD_L4C;
ilm_ptr->local_para_ptr = (local_para_struct*) myMsgPtr;
ilm_ptr->msg_id = MSG_ID_WAP_MMC_UPLOAD_MSG_OUTPUT_REQ;
ilm_ptr->peer_buff_ptr = NULL;
msg_send_ext_queue(ilm_ptr);
if (result != JSR_RESULT_BUSY)
{
JsrCleanContext();
if (result == JSR_RESULT_OK)
{
/* Refresh the MMS folder menu screen. */
#ifdef __MMI_UNIFIED_MESSAGE__
mmi_um_jmms_highlight_mms_message_ind();
#endif
mmi_jmms_update_folder();
}
}
PRINT_INFORMATION_2((MMI_TRACE_INFO,
"%s(%d): JSR module returns wap_mmc_upload_msg_output_req with result %d and msgid %d \n",
__FILE__, __LINE__, result, msgId));
}
else
{
PRINT_INFORMATION_2((MMI_TRACE_INFO,
"%s(%d): JSR module can't get memory for wap_mmc_upload_msg_output_req_struct \n",
__FILE__, __LINE__));
ASSERT(0);
}
}
/*****************************************************************************
* FUNCTION
* mmi_jsr_delete_msg_req_hldr
* DESCRIPTION
* Create a MSG_ID_WAP_MMC_DELETE_MSG_REQ_IND primitive to L4
* PARAMETERS
* msg [?]
* RETURNS
* void
*****************************************************************************/
void mmi_jsr_delete_msg_req_hldr(void *msg)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
wap_mmc_delete_msg_req_ind_struct *Message;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
Message = (wap_mmc_delete_msg_req_ind_struct*) msg;
PRINT_INFORMATION_2((MMI_TRACE_INFO,
"%s(%d): MMI recives a wap_mmc_deldete_msg_req_ind signal from l4c, msgid: %d and folderId: %d \n",
__FILE__, __LINE__, Message->msgId, Message->folderId));
#if defined(MMS_SUPPORT)/*Dilip*/
if (E_FALSE == jmms_is_ready())
{
mmi_jsr_delete_msg_output_req_hldr(JSR_RESULT_MMS_NO_READY);
return;
}
#endif
if (JSR_CNTX->state == JSR_STATE_IDLE)
{
JSR_CNTX->op = JSR_OP_DELETE_MSG;
JSR_CNTX->state = JSR_STATE_DELETE_MSG;
if (Message->folderId != 0)
{
if ((Message->folderId == JSR_INBOX)
|| (Message->folderId == JSR_OUTBOX)
|| (Message->folderId == JSR_SENT) || (Message->folderId == JSR_DRAFTS))
{
/* JMMS function call */
mmi_jmms_at_delete_mms(Message->folderId, Message->msgId, mmi_jsr_delete_msg_output_req_hldr);
}
else
{
mmi_jsr_delete_msg_output_req_hldr(JSR_RESULT_INVALID_FOLDER);
}
}
else
{
//JMMS function call
// to do check if message is opened or folder is template.
if (JSR_RESULT_OK == mmi_jmms_java_mms_error(mmi_jmms_is_message_found(JSR_TEMPLATES, Message->msgId)))
{
mmi_jsr_delete_msg_output_req_hldr(JSR_RESULT_ACCESS_DENY);
}
else
{
mmi_jmms_at_delete_mms(Message->folderId, Message->msgId, mmi_jsr_delete_msg_output_req_hldr);
}
}
}
else
{
mmi_jsr_delete_msg_output_req_hldr(JSR_RESULT_BUSY);
}
}
/*****************************************************************************
* FUNCTION
* mmi_jsr_delete_msg_output_req_hldr
* DESCRIPTION
* Create a MSG_ID_WAP_MMC_DELETE_MSG_OUTPUT_REQ primitive to L4
* PARAMETERS
* result [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_jsr_delete_msg_output_req_hldr(JsrResult result)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
wap_mmc_delete_msg_output_req_struct *myMsgPtr;
ilm_struct *ilm_ptr = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
myMsgPtr = (wap_mmc_delete_msg_output_req_struct*)
OslConstructDataPtr(sizeof(wap_mmc_delete_msg_output_req_struct));
if (myMsgPtr)
{
memset((char*)(myMsgPtr) + 4, 0x00, (sizeof(wap_mmc_delete_msg_output_req_struct) - 4));
myMsgPtr->result = (U8) result;
ilm_ptr = allocate_ilm(MOD_WAP);
ilm_ptr->src_mod_id = MOD_WAP;
ilm_ptr->sap_id = MMI_L4C_SAP;
ilm_ptr->dest_mod_id = MOD_L4C;
ilm_ptr->local_para_ptr = (local_para_struct*) myMsgPtr;
ilm_ptr->msg_id = MSG_ID_WAP_MMC_DELETE_MSG_OUTPUT_REQ;
ilm_ptr->peer_buff_ptr = NULL;
msg_send_ext_queue(ilm_ptr);
if (result != JSR_RESULT_BUSY)
{
JsrCleanContext();
if (result == JSR_RESULT_OK)
{
/* Refresh the MMS folder menu screen. */
mmi_jmms_update_folder();
}
}
PRINT_INFORMATION_2((MMI_TRACE_INFO,
"%s(%d): JSR module returns wap_mmc_delete_msg_output_req_struct with result %d \n",
__FILE__, __LINE__, result));
}
else
{
PRINT_INFORMATION_2((MMI_TRACE_INFO,
"%s(%d): JSR module can't get memory for wap_mmc_delete_msg_output_req_struct \n",
__FILE__, __LINE__));
ASSERT(0);
}
}
/* JSR MESSAGE HANDLER API */
/*****************************************************************************
* FUNCTION
* mmi_jsr_send_appmms_req_hldr
* DESCRIPTION
* Create a MSG_ID_WAP_MMC_SEND_APPMMS_REQ primitive to Java
* PARAMETERS
* msg [?]
* mod_src [IN]
* peerBuf [?]
* RETURNS
* void
*****************************************************************************/
void mmi_jsr_send_appmms_req_hldr(void *msg, int mod_src, void *peerBuf)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
wap_mmc_send_appmms_req_struct *Message;
U16 buffer_length = 0;
U8 *pdu = NULL;
peer_buff_struct *peer_ptr = peerBuf;
JsrResult result;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
Message = (wap_mmc_send_appmms_req_struct*) msg;
if (JSR_CNTX->state != JSR_STATE_IDLE)
{
mmi_jsr_send_appmms_rsp(JSR_RESULT_BUSY);
}
else
{
JsrCleanContext();
JSR_CNTX->op = JSR_OP_SEND_MSG;
JSR_CNTX->state = JSR_STATE_PROCESS_SEND_MSG_HDR;
JSR_CNTX->total_media_obj_no = Message->bdy_part_no;
JSR_CNTX->curr_media_obj_no = 0;
pdu = (U8*) get_pdu_ptr(peer_ptr, &buffer_length);
//JMMS function call
result = mmi_jmms_jsr_create_mms(Message, pdu);
if (result != JSR_RESULT_OK)
{
result = JSR_RESULT_ERROR_FAIL_TO_GEN_MMS_HDR;
mmi_jsr_send_appmms_rsp(result);
}
else
{
if ((JSR_CNTX->curr_media_obj_no) < (JSR_CNTX->total_media_obj_no))
{
JSR_CNTX->state = JSR_STATE_PROCESS_SEND_MSG_BDY;
mmi_jsr_send_post_appmms_msg_part_ind(JSR_RESULT_OK);
}
else
{
//JMMS function call
mmi_jmms_jsr_send_mms(mmi_jsr_send_appmms_rsp);
}
}
}
}
/*****************************************************************************
* FUNCTION
* mmi_jsr_send_appmms_rsp
* DESCRIPTION
* Create a MSG_ID_WAP_MMC_SEND_APPMMS_RSP primitive to Java
* PARAMETERS
* result [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_jsr_send_appmms_rsp(JsrResult result)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
wap_mmc_send_appmms_rsp_struct *myMsgPtr;
ilm_struct *ilm_ptr = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
myMsgPtr = (wap_mmc_send_appmms_rsp_struct*) OslConstructDataPtr(sizeof(wap_mmc_send_appmms_rsp_struct));
myMsgPtr->result = (U8) result;
ilm_ptr = allocate_ilm(MOD_WAP);
ilm_ptr->src_mod_id = MOD_WAP;
ilm_ptr->sap_id = J2ME_WAP_SAP;
ilm_ptr->dest_mod_id = MOD_JASYN;
ilm_ptr->local_para_ptr = (local_para_struct*) myMsgPtr;
ilm_ptr->msg_id = MSG_ID_WAP_MMC_SEND_APPMMS_RSP;
ilm_ptr->peer_buff_ptr = NULL;
msg_send_ext_queue(ilm_ptr);
/* Clean the Jsr Context */
JsrCleanContext();
/* PMT HIMANSHU START 20060425 */
mmi_jmms_reset_mms_downloading_busy();
mmi_jmms_update_status_icon_indicator();
/* PMT HIMANSHU END 20060425 */
mmi_jmms_jsr_delete_temp_media_files();
}
/*****************************************************************************
* FUNCTION
* mmi_jsr_send_post_appmms_msg_part_ind
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -