⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jsr205.c

📁 MTK手机平台的MMI部分的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
                {
                    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 + -