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

📄 jsr205.c

📁 MTK手机平台的MMI部分的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
 * FUNCTION
 *  mmi_jsr_receive_appmms_req_hldr
 * DESCRIPTION
 *  Create a MSG_ID_WAP_MMC_RECV_APPMMS_REQ primitive to Java
 * PARAMETERS
 *  msg     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jsr_receive_appmms_req_hldr(void *msg)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    wap_mmc_recv_appmms_req_struct *Message = NULL;
    wap_mmc_recv_appmms_rsp_struct response;
    jsr_appid_msgid_list *appid_list = NULL;
    S8 *appId = NULL;
    U32 msgId = 0;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (JSR_CNTX->state != JSR_STATE_IDLE)
    {
        memset(&response, 0, sizeof(wap_mmc_recv_appmms_rsp_struct));
        response.result = JSR_RESULT_BUSY;
        mmi_jsr_receive_appmms_rsp(&response, NULL, 0);
        return;
    }
    Message = (wap_mmc_recv_appmms_req_struct*) msg;
    *(Message->app_id + Message->app_id_len) = '\0';

    appId = (S8*) Message->app_id;

    JSR_CNTX->op = JSR_OP_RECV_MSG;
    JSR_CNTX->state = JSR_STATE_RECV_MSG_HDR;

    if (appId == NULL)
    {
        response.result = JSR_RESULT_INVALID_PARAMETER;
        mmi_jsr_receive_appmms_rsp(&response, NULL, 0);
        JsrCleanContext();
        return;
    }
    else if (g_jsr_appid_object_list == NULL)
    {
        mmi_jsr_read_object_list_from_file();
    }

    appid_list = g_jsr_appid_object_list;

    while (appid_list)
    {
        if ((appid_list->appId) && (strcmp((S8*) appid_list->appId, (S8*) appId) == 0))
        {
            ASSERT(appid_list->msgs);
            msgId = appid_list->msgs->msgId;

            if (JSR_RESULT_OK != mmi_jmms_java_mms_error(mmi_jmms_is_message_found(JSR_INBOX, msgId)))
            {
                mmi_jsr_remove_msgId_from_appId_list(msgId);
                response.result = JSR_RESULT_ERROR_MSG_CORRUPTED;
                mmi_jsr_receive_appmms_rsp(&response, NULL, 0);
                JsrCleanContext();
                return;
            }

            JSR_CNTX->msgId = msgId;
            mmi_jmms_jsr_get_message_details(msgId, mmi_jsr_receive_appmms_post_req_hldr);
            return;
        }
        appid_list = appid_list->next;
    }
    response.result = JSR_RESULT_NO_MSG_FOR_JAVA;
    mmi_jsr_receive_appmms_rsp(&response, NULL, 0);
    JsrCleanContext();
    return;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jsr_receive_appmms_post_req_hldr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  resp            [?]         
 *  buffer          [?]         
 *  buffer_size     [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jsr_receive_appmms_post_req_hldr(void *resp, S8 *buffer, U16 buffer_size)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    wap_mmc_recv_appmms_rsp_struct *response = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    response = (wap_mmc_recv_appmms_rsp_struct*) resp;
    response->result = JSR_RESULT_OK;
    mmi_jsr_receive_appmms_rsp(response, buffer, buffer_size);

    if (response->bdy_part_no != 0)
    {
        JSR_CNTX->total_media_obj_no = response->bdy_part_no;
        JSR_CNTX->curr_media_obj_no = 1;
        JSR_CNTX->state = JSR_STATE_RECV_MSG_BDY;
    }
    else
    {
        mmi_jsr_remove_msgId_from_appId_list(JSR_CNTX->msgId);
        mmi_jmms_jsr_delete_msg(JSR_CNTX->msgId);
        JsrCleanContext();
        mmi_jmms_update_folder();
    }

    if (response != NULL)
    {
        jdd_MemFree(response);
        response = NULL;
    }
    if (buffer != NULL)
    {
        jdd_MemFree(buffer);
        buffer = NULL;
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jsr_receive_appmms_rsp
 * DESCRIPTION
 *  Create a MSG_ID_WAP_MMC_RECV_APPMMS_RSP primitive to Java
 * PARAMETERS
 *  response_struct     [?]         
 *  buffer              [?]         
 *  buffer_size         [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jsr_receive_appmms_rsp(wap_mmc_recv_appmms_rsp_struct *response_struct, S8 *buffer, U16 buffer_size)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    wap_mmc_recv_appmms_rsp_struct *myMsgPtr = NULL;
    ilm_struct *ilm_ptr = NULL;
    peer_buff_struct *peer_buff_ptr = NULL;
    U16 peer_pdu_len = 0;
    U8 *peer_pdu = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    myMsgPtr = (wap_mmc_recv_appmms_rsp_struct*) OslConstructDataPtr(sizeof(wap_mmc_recv_appmms_rsp_struct));

    memset((S8*)(myMsgPtr) + 4, 0, (sizeof(wap_mmc_recv_appmms_rsp_struct) - 4));

    myMsgPtr->result = response_struct->result;
    myMsgPtr->priority = response_struct->priority;
    myMsgPtr->date = response_struct->date;
    myMsgPtr->from_addr_no = response_struct->from_addr_no;
    myMsgPtr->to_addr_no = response_struct->to_addr_no;
    myMsgPtr->cc_addr_no = response_struct->cc_addr_no;
    myMsgPtr->bdy_part_no = response_struct->bdy_part_no;
    myMsgPtr->start_cnt_id_len = response_struct->start_cnt_id_len;
    memset(myMsgPtr->start_cnt_id, 0, 100);
    memcpy(myMsgPtr->start_cnt_id, response_struct->start_cnt_id, 100);
    myMsgPtr->reply_app_id_len = response_struct->reply_app_id_len;
    memset(myMsgPtr->reply_app_id, 0, 100);
    memcpy(myMsgPtr->reply_app_id, response_struct->reply_app_id, 100);

    if (buffer)
    {
        peer_buff_ptr = (peer_buff_struct*) construct_peer_buff(buffer_size, 0, 0, TD_CTRL);
        peer_pdu = (U8*) get_pdu_ptr(peer_buff_ptr, &peer_pdu_len);
        if (peer_pdu)
        {
            memcpy(peer_pdu, buffer, buffer_size);
        }
    }

    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_RECV_APPMMS_RSP;
    ilm_ptr->peer_buff_ptr = (peer_buff_struct*) peer_buff_ptr;

    msg_send_ext_queue(ilm_ptr);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jsr_read_appmms_msg_part_req
 * DESCRIPTION
 *  Create a MSG_ID_WAP_MMC_READ_APPMMS_MSG_PART_REQ primitive to Java
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jsr_read_appmms_msg_part_req(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    wap_mmc_read_appmms_msg_part_rsp_struct response;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (JSR_CNTX->state != JSR_STATE_RECV_MSG_BDY)
    {
        memset(&response, 0, sizeof(wap_mmc_read_appmms_msg_part_rsp_struct));
        response.result = JSR_RESULT_ACCESS_DENY;
        mmi_jsr_read_appmms_msg_part_rsp(&response);
    }
    else
    {
        if (mmi_jmms_jsr_generate_recv_msg_body_part(
                JSR_CNTX->msgId,
                &(JSR_CNTX->curr_media_obj_no),
                (JSR_CNTX->total_media_obj_no),
                &response))
        {
            mmi_jsr_read_appmms_msg_part_rsp(&response);
            JSR_CNTX->curr_media_obj_no = JSR_CNTX->curr_media_obj_no + 1;
            if (JSR_CNTX->curr_media_obj_no > JSR_CNTX->total_media_obj_no)
            {
                mmi_jsr_remove_msgId_from_appId_list(JSR_CNTX->msgId);
                mmi_jmms_jsr_delete_msg(JSR_CNTX->msgId);
                JsrCleanContext();
                mmi_jmms_update_folder();
            }
        }
        else
        {
            memset(&response, 0, sizeof(wap_mmc_read_appmms_msg_part_rsp_struct));
            response.result = JSR_RESULT_INSUFFICIENT_PERSISTENT_STORAGE;
            mmi_jsr_read_appmms_msg_part_rsp(&response);
            JsrCleanContext();
        }
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jsr_read_appmms_msg_part_rsp
 * DESCRIPTION
 *  Create a MSG_ID_WAP_MMC_READ_APPMMS_MSG_PART_RSP primitive to Java
 * PARAMETERS
 *  response        [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jsr_read_appmms_msg_part_rsp(wap_mmc_read_appmms_msg_part_rsp_struct *response)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    wap_mmc_read_appmms_msg_part_rsp_struct *myMsgPtr;
    ilm_struct *ilm_ptr = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    myMsgPtr = (wap_mmc_read_appmms_msg_part_rsp_struct*)
        OslConstructDataPtr(sizeof(wap_mmc_read_appmms_msg_part_rsp_struct));
    myMsgPtr->result = response->result;
    myMsgPtr->encoding_scheme = response->encoding_scheme;
    /* Content-Type */
    myMsgPtr->content_type_value = response->content_type_value;
    myMsgPtr->content_type_len = response->content_type_len;
    memcpy(myMsgPtr->content_type, response->content_type, 100);
    /* Content-Id */
    myMsgPtr->content_id_len = response->content_id_len;
    memcpy(myMsgPtr->content_id, response->content_id, 100);
    /* Content-Location */
    myMsgPtr->content_location_len = response->content_location_len;
    memcpy(myMsgPtr->content_location, response->content_location, 100);
    /* Media object filepath */
    myMsgPtr->filepath_len = response->filepath_len;
    memcpy(myMsgPtr->filepath, response->filepath, 200);

    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_READ_APPMMS_MSG_PART_RSP;
    ilm_ptr->peer_buff_ptr = NULL;

    msg_send_ext_queue(ilm_ptr);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jsr_cfg_appmms_appid_req
 * DESCRIPTION
 *  Create a MSG_ID_WAP_MMC_CFG_APPMMS_APPID_REQ primitive to Java
 * PARAMETERS
 *  msg     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jsr_cfg_appmms_appid_req(void *msg)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    wap_mmc_cfg_appmms_appid_req_struct *Message;
    JsrResult result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    Message = (wap_mmc_cfg_appmms_appid_req_struct*) msg;
    result = mmi_jsr_cfg_app_id(Message->app_id, Message->app_id_len, Message->op);
    mmi_jsr_cfg_appmms_appid_rsp(result);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jsr_cfg_appmms_appid_rsp
 * DESCRIPTION
 *  Create a MSG_ID_WAP_MMC_CFG_APPMMS_APPID_RSP primitive to Java
 * PARAMETERS
 *  result      [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jsr_cfg_appmms_appid_rsp(JsrResult result)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    wap_mmc_cfg

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -