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

📄 jwa_mms.c

📁 java 1.1 gemini 08_16
💻 C
📖 第 1 页 / 共 5 页
字号:
/*****************************************************************************
 * 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 + -