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

📄 jwa_mms.c

📁 java 1.1 gemini 08_16
💻 C
📖 第 1 页 / 共 5 页
字号:
                    j2me_mms_recv_part_data.content_type = (kal_uint8*) jvm_malloc(p->content_type_len);
                    if (j2me_mms_recv_part_data.content_type == NULL)
                    {
                        J2ME_mms_save_result(MMC_RESULT_INSUFFICIENT_MEMORY);
                        break;
                    }
                    memcpy(j2me_mms_recv_part_data.content_type, p->content_type, p->content_type_len);
                }
                if (j2me_mms_recv_part_data.content_id_len > 0)
                {
                    j2me_mms_recv_part_data.content_id = (kal_uint8*) jvm_malloc(p->content_id_len);
                    if (j2me_mms_recv_part_data.content_id == NULL)
                    {
                        J2ME_mms_save_result(MMC_RESULT_INSUFFICIENT_MEMORY);
                        break;
                    }
                    memcpy(j2me_mms_recv_part_data.content_id, p->content_id, p->content_id_len);
                }
                if (j2me_mms_recv_part_data.content_location_len > 0)
                {
                    j2me_mms_recv_part_data.content_location = (kal_uint8*) jvm_malloc(p->content_location_len);
                    if (j2me_mms_recv_part_data.content_location == NULL)
                    {
                        J2ME_mms_save_result(MMC_RESULT_INSUFFICIENT_MEMORY);
                        break;
                    }
                    memcpy(j2me_mms_recv_part_data.content_location, p->content_location, p->content_location_len);
                }
                if (j2me_mms_recv_part_data.filepath_len > 0)
                {

                    j2me_mms_recv_part_data.filepath = (kal_wchar*) jvm_malloc((p->filepath_len + 1) * 2);
                    if (j2me_mms_recv_part_data.filepath == NULL)
                    {
                        J2ME_mms_save_result(MMC_RESULT_INSUFFICIENT_MEMORY);
                        break;
                    }
                    kal_wstrncpy(j2me_mms_recv_part_data.filepath, p->filepath, p->filepath_len);

                    /* Reset file size  */
                    j2me_mms_recv_part_data.file_size = 0;
                }
            }
            else
            {
                j2me_mms_in_progress = KAL_FALSE;
            }
        }
            break;

        case MSG_ID_WAP_MMC_ABORT_APPMMS_RSP:
        {
            j2me_mms_in_progress = KAL_FALSE;
        } 
            break;
            
        default:
            break;

    }

    /* notify J2ME thread to process coming async event */
    kal_set_eg_events(J2ME_async_mms_eventgroup, 1, KAL_OR);

    return;
}


/*****************************************************************************
 * FUNCTION
 *  j2me_process_recvd_mms_ind
 * DESCRIPTION
 *  
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void *j2me_process_recvd_mms_ind(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    wap_mmc_appmms_new_mms_ind_struct *mms_ind_ptr = (wap_mmc_appmms_new_mms_ind_struct*) ilm_ptr->local_para_ptr;
    pushentry_struct *p = NULL;
    kal_uint8 *appid = jvm_malloc(mms_ind_ptr->app_id_len + 1);

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (appid != NULL)
    {
        memcpy(appid, mms_ind_ptr->app_id, mms_ind_ptr->app_id_len);
        appid[mms_ind_ptr->app_id_len] = 0;
        p = push_process_recvd_mms_ind((char*)appid);
        jvm_free(appid);
    }
    return p;
}


/*****************************************************************************
 * FUNCTION
 *  J2ME_mms_register
 * DESCRIPTION
 *  
 * PARAMETERS
 *  application_id      [?]         
 *  op                  [IN]        0 for register, 1 for unregister
 *  type                [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void J2ME_mms_register(char *application_id, int op, int type)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    wap_mmc_cfg_appmms_appid_req_struct *p;
    char *appid = application_id;
    int appIdLen;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    p = (wap_mmc_cfg_appmms_appid_req_struct*) construct_local_para(
                                                sizeof(wap_mmc_cfg_appmms_appid_req_struct),
                                                TD_CTRL);
    appIdLen = strlen(appid);

    p->op = op;
    p->app_id_len = appIdLen;

    memcpy((S8*) p->app_id, appid, appIdLen);
    p->app_id[appIdLen] = '\0';
    p->ind_module = MOD_J2ME;

    if (op == 0)
    {
        j2me_mms_registering = KAL_TRUE;
    }

    if (type == WMA_REGISTRY)
    {
        J2ME_mms_reset_temp_appid();
        j2me_mms_temp_appid.app_id_len = p->app_id_len;
        j2me_mms_temp_appid.app_id = (kal_uint8*) jvm_malloc(p->app_id_len + 1);

        if (j2me_mms_temp_appid.app_id != NULL)
        {
            memcpy(j2me_mms_temp_appid.app_id, p->app_id, p->app_id_len);
            j2me_mms_temp_appid.app_id[p->app_id_len] = '\0';
        }
    }

    j2me_mms_register_type = type;

    J2ME_mms_send_ilm(p, NULL, MSG_ID_WAP_MMC_CFG_APPMMS_APPID_REQ, wap_get_service_module(MSG_ID_WAP_MMC_CFG_APPMMS_APPID_REQ));

    return;
}


/*****************************************************************************
 * FUNCTION
 *  jwa_mms_register
 * DESCRIPTION
 *  
 * PARAMETERS
 *  app_id_len      [IN]        
 *  app_id          [?]         
 *  operation       [IN]        
 *  type            [IN]        
 * RETURNS
 *  
 *****************************************************************************/
kal_bool jwa_mms_register(int app_id_len, char *app_id, int operation, int type)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    int appIdLen = app_id_len;
    char *applicationId = app_id;
    int op = operation;
    int register_type = type;

    /*----------------------------------------------------------------*/
    /* 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_register: BG running state \n");
    	Kprintf();
    
        return J2ME_MMS_NOT_AVAILABLE;
    }
#endif /* J2ME_SUPPORT_BACKGROUND */

    if (appIdLen > 0)
    {
        char *appId = NULL;

        appId = (char*)jvm_malloc(appIdLen + 1);
        memset((S8*) appId, 0, (appIdLen + 1));
        memcpy(appId, applicationId, appIdLen);

        J2ME_mms_register(appId, op, register_type);

        jvm_free(appId);

        return J2ME_MMS_OK;
    }
    else
    {
        return J2ME_MMS_INVALID_PARAMETER;
    }
}


/*****************************************************************************
 * FUNCTION
 *  jwa_mms_send_message
 * DESCRIPTION
 *  
 * PARAMETERS
 *  send_data           [?]         
 *  msg_info_len        [IN]        
 *  msg_info            [?]         
 * RETURNS
 *  
 *****************************************************************************/
int jwa_mms_send_message(jwa_mms_send_req_struct *send_data, kal_uint32 msg_info_len, kal_uint8 *msg_info)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    jwa_mms_send_req_struct *send_req_data = send_data;
    kal_uint32 peerBufLen = msg_info_len;
    kal_uint8 *msg_info_data = msg_info;

    wap_mmc_send_appmms_req_struct *p;
    peer_buff_struct *peer_buff_ptr;
    kal_uint16 dummyLen = 0;

    /*----------------------------------------------------------------*/
    /* 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: BG running state \n");
    	Kprintf();
    
        return J2ME_MMS_NOT_AVAILABLE;
    }
#endif /* J2ME_SUPPORT_BACKGROUND */

    p = (wap_mmc_send_appmms_req_struct*) construct_local_para(sizeof(wap_mmc_send_appmms_req_struct), TD_CTRL);

    p->priority = (kal_uint8) send_req_data->priority;
    p->to_addr_no = (kal_uint8) send_req_data->to_addr_no;
    p->cc_addr_no = (kal_uint8) send_req_data->cc_addr_no;
    p->bcc_addr_no = (kal_uint8) send_req_data->bcc_addr_no;
    p->bdy_part_no = (kal_uint8) send_req_data->bdy_part_no;
    p->app_id_len = (kal_uint8) send_req_data->app_id_len;
    p->reply_app_id_len = (kal_uint8) send_req_data->reply_app_id_len;
    p->start_cnt_id_len = (kal_uint8) send_req_data->start_cnt_id_len;

#ifdef __MMI_DUAL_SIM_MASTER__
    if (jam_get_sim_id() == WAP_SIM_ID_SIM2)
    {
        p->simId = MMC_SIM_CARD_SLAVE;
    }
    else 
    {
        p->simId = MMC_SIM_CARD_MASTER;
    }
#endif /* __MMI_DUAL_SIM_MASTER__ */

    if (p->app_id_len > J2ME_MMS_LOCAL_PARAMETER_ARRAY_LEN)
    {
        free_local_para((local_para_struct*) p);
        return J2ME_MMS_INVALID_PARAMETER;
    }
    if (p->reply_app_id_len > J2ME_MMS_LOCAL_PARAMETER_ARRAY_LEN)
    {
        free_local_para((local_para_struct*) p);
        return J2ME_MMS_INVALID_PARAMETER;
    }
    if (p->start_cnt_id_len > J2ME_MMS_LOCAL_PARAMETER_ARRAY_LEN)
    {
        free_local_para((local_para_struct*) p);
        return J2ME_MMS_INVALID_PARAMETER;
    }
    if (peerBufLen > J2ME_MMS_PEER_BUFFER_LEN)
    {
        free_local_para((local_para_struct*) p);
        return J2ME_MMS_INVALID_PARAMETER;
    }

    p->delivery_time = (kal_uint32) (send_req_data->delivery_time / 1000);

    if (p->app_id_len > 0)
    {
        memcpy(p->app_id, send_req_data->app_id, p->app_id_len);
        p->app_id[p->app_id_len] = '\0';
    }
    else
    {
        p->app_id[0] = '\0';
    }

    if (p->reply_app_id_len > 0)
    {
        memcpy(p->reply_app_id, send_req_data->reply_app_id, p->reply_app_id_len);
        p->reply_app_id[p->reply_app_id_len] = '\0';
    }
    else
    {
        p->reply_app_id[0] = '\0';
    }

    if (p->start_cnt_id_len > 0)
    {
        memcpy(p->start_cnt_id, send_req_data->start_cnt_id, p->start_cnt_id_len);
        p->start_cnt_id[p->start_cnt_id_len] = '\0';
        p->mms_type = J2ME_MMS_RELATED;
    }
    else
    {
        p->start_cnt_id[0] = '\0';
        p->mms_type = J2ME_MMS_MIXED;
    }

    if (peerBufLen > 0)
    {
        peer_buff_ptr = construct_peer_buff((kal_uint16) peerBufLen, 0, 0, TD_CTRL);
        memcpy(get_pdu_ptr(peer_buff_ptr, &dummyLen), msg_info_data, peerBufLen);
    }
    else
    {
        peer_buff_ptr = NULL;
    }

    p->send_by_file = 0;
    p->filepath_len = 0;
    p->filepath[0] = 0;

    j2me_mms_in_progress = KAL_TRUE;
    jui_widget_show_connect_icon();
    J2ME_mms_send_ilm(p, peer_buff_ptr, MSG_ID_WAP_MMC_SEND_APPMMS_REQ, wap_get_service_module(MSG_ID_WAP_MMC_SEND_APPMMS_REQ));

    return J2ME_MMS_OK;
}


⌨️ 快捷键说明

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