📄 jam_create.c
字号:
#ifdef __SUPPORT_JBT__
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif
break;
}
free_ilm(¤t_ilm);
}
}
/*****************************************************************************
* FUNCTION
* j2me_task_general_msg_handler
* DESCRIPTION
*
* PARAMETERS
* ilm_ptr [?]
* RETURNS
*
*****************************************************************************/
kal_bool j2me_task_general_msg_handler(ilm_struct *ilm_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
switch (ilm_ptr->msg_id)
{
/* Update MIDlet Suite */
case MSG_ID_MMI_JAVA_MIDS_UPDATE_REQ:
mids_update_req_handler(ilm_ptr);
break;
/* Install MIDlet Suite */
case MSG_ID_JAVA_WAP_INSTALL_MIDS_IND:
mids_wap_install_ind_handler(ilm_ptr);
break;
case MSG_ID_MMI_JAVA_INSTALL_MIDS_REQ:
mids_mmi_install_req_handler(ilm_ptr);
break;
/* Abort */
case MSG_ID_MMI_JAVA_ABORT_REQ:
J2ME_SET_STATE(abort);
j2me_process_ilm(ilm_ptr);
break;
#ifdef WAP_SEC_SUPPORT
case MSG_ID_WPS_SEC_GET_CERT_IDS_RSP:
{
wps_sec_get_cert_ids_rsp_struct* sec_cert_rsp = (wps_sec_get_cert_ids_rsp_struct*)ilm_ptr->local_para_ptr;
cert_total = sec_cert_rsp->total;
if(cert_total > 0)
{
ilm_struct *send_ilm;
wps_sec_get_cert_req_struct *get_cer_req;
memcpy(cert_cert_ids, sec_cert_rsp->cert_ids, (cert_total - 1) << 2);
cert_total --;
get_cer_req = (wps_sec_get_cert_req_struct*) construct_local_para(sizeof(wps_sec_get_cert_req_struct), TD_CTRL);
get_cer_req->cert_id = sec_cert_rsp->cert_ids[cert_total];
send_ilm = allocate_ilm(MOD_J2ME);
send_ilm->src_mod_id = MOD_J2ME;
send_ilm->dest_mod_id = MOD_WPS;
send_ilm->local_para_ptr = (local_para_struct*)get_cer_req;
send_ilm->peer_buff_ptr = NULL;
send_ilm->msg_id = MSG_ID_WPS_SEC_GET_CERT_REQ;
send_ilm->sap_id = J2ME_WAP_SAP;
msg_send_ext_queue(send_ilm);
}
}
break;
case MSG_ID_WPS_SEC_GET_CERT_RSP:
{
wps_sec_get_cert_rsp_struct *get_cert_rsp = (wps_sec_get_cert_rsp_struct*)ilm_ptr->local_para_ptr;
if(get_cert_rsp->result == WPS_SEC_OK && get_cert_rsp->cert.type == WPS_SEC_CERT_FORMAT_X509 &&
get_cert_rsp->rsa_public_key.rsa_modulus != NULL && get_cert_rsp->rsa_public_key.rsa_exponent != NULL)
{
jam_ca_struct* temp_ca = jam_ca_list;
jam_ca_struct* wap_ca = jvm_malloc(sizeof(jam_ca_struct));
wap_ca->next_ca = NULL;
memcpy(&wap_ca->cert_content, &get_cert_rsp->cert, sizeof(wps_sec_cert_content_struct));
memcpy(&wap_ca->cert_pkey, &get_cert_rsp->rsa_public_key, sizeof(wps_sec_rsa_public_key_struct));
wap_ca->cert_pkey.rsa_exponent = jvm_malloc(get_cert_rsp->rsa_public_key.exp_len + 1);
memcpy(wap_ca->cert_pkey.rsa_exponent, get_cert_rsp->rsa_public_key.rsa_exponent, get_cert_rsp->rsa_public_key.exp_len);
wap_ca->cert_pkey.rsa_modulus= jvm_malloc(get_cert_rsp->rsa_public_key.mod_len + 1);
memcpy(wap_ca->cert_pkey.rsa_modulus, get_cert_rsp->rsa_public_key.rsa_modulus, get_cert_rsp->rsa_public_key.mod_len);
free_ctrl_buffer(get_cert_rsp->rsa_public_key.rsa_exponent);
free_ctrl_buffer(get_cert_rsp->rsa_public_key.rsa_modulus);
if (temp_ca != NULL)
{
while (temp_ca->next_ca != NULL)
{
temp_ca = temp_ca->next_ca;
}
temp_ca->next_ca = wap_ca;
} else
{
jam_ca_list = wap_ca;
}
}
if(cert_total > 0)
{
ilm_struct *send_ilm;
wps_sec_get_cert_req_struct *get_cer_req;
cert_total --;
get_cer_req = (wps_sec_get_cert_req_struct*) construct_local_para(sizeof(wps_sec_get_cert_req_struct), TD_CTRL);
get_cer_req->cert_id = cert_cert_ids[cert_total];
send_ilm = allocate_ilm(MOD_J2ME);
send_ilm->src_mod_id = MOD_J2ME;
send_ilm->dest_mod_id = MOD_WPS;
send_ilm->local_para_ptr = (local_para_struct*)get_cer_req;
send_ilm->peer_buff_ptr = NULL;
send_ilm->msg_id = MSG_ID_WPS_SEC_GET_CERT_REQ;
send_ilm->sap_id = J2ME_WAP_SAP;
msg_send_ext_queue(send_ilm);
}
else
{
get_ca_completed = KAL_TRUE;
}
}
break;
#endif /* WAP_SEC_SUPPORT */
case MSG_ID_JAVA_KEYPAD_NOTIFY_IND:
case MSG_ID_APP_SOC_DEACTIVATE_CNF:
break;
/* Get MIDlet Suite information */
case MSG_ID_MMI_JAVA_MIDS_GETINFO_REQ:
mids_getinfo_req_handler(ilm_ptr);
break;
/* Get/Set MIDlet Suite settings */
case MSG_ID_MMI_JAVA_MIDS_GET_SETTING_REQ:
mids_get_setting_req_handler(ilm_ptr);
break;
case MSG_ID_MMI_JAVA_MIDS_SET_SETTING_REQ:
mids_set_setting_req_handler(ilm_ptr);
break;
#ifndef APPMEM_SUPPORT
/* Get MIDlet Suite/MIDlet List */
case MSG_ID_MMI_JAVA_MIDS_GETLIST_REQ:
case MSG_ID_MMI_JAVA_MID_GETLIST_REQ:
J2ME_SET_STATE(getlist);
j2me_process_ilm(ilm_ptr);
break;
#endif /* APPMEM_SUPPORT */
/* Push Alarm permission */
case MSG_ID_MMI_JAVA_TIMEALARM_PUSH_RES:
java_mmi_timealarm_push_res_handler(ilm_ptr);
break;
#ifdef __SUPPORT_INFUSIO__
case MSG_ID_JAVA_JAVA_ENQUEUE_SMS_REQ:
java_java_eureka_enqueue_sms_req_handler(ilm_ptr);
break;
#endif /* __SUPPORT_INFUSIO__ */
/* WMA Push */
case MSG_ID_WAP_MMC_APPMMS_NEW_MMS_IND:
j2me_mms_ind_handler(ilm_ptr);
break;
#ifdef OGDR_SECURITY_SETTING
/* Security setting for OGDR 5.0 */
case MSG_ID_MMI_JAVA_GET_DOMAIN_LIST_REQ:
jam_get_domain_list_req(ilm_ptr);
break;
case MSG_ID_MMI_JAVA_GET_DEFAULT_DOMAIN_REQ:
jam_get_default_setting_req(ilm_ptr);
break;
case MSG_ID_MMI_JAVA_SET_DEFAULT_DOMAIN_REQ:
jam_set_default_setting_req(ilm_ptr);
break;
case MSG_ID_MMI_JAVA_RESET_DEFAULT_DOMAIN_REQ:
jam_reset_default_setting_req(ilm_ptr);
break;
#endif
/* Update WAP connection data account indication handler */
case MSG_ID_JAVA_WAP_DATA_ACCOUNT_IND:
{
java_wap_data_account_ind_struct *p = (java_wap_data_account_ind_struct*) ilm_ptr->local_para_ptr;
J2ME_active_nw_acc_id = p->data_account;
}
break;
/* TCK verification request handler */
case MSG_ID_MMI_JAVA_SET_MODE_REQ:
jvm_tckmode_req_handler(ilm_ptr);
break;
/* General timer expiry handlers */
case MSG_ID_TIMER_EXPIRY:
j2me_timer_expiry_handler(ilm_ptr);
break;
/* MMAPI general event callback handlers */
case MSG_ID_JAVA_MMA_EVENT_CALLBACK:
{
mma_event_callback_struct *p = (mma_event_callback_struct*) ilm_ptr->local_para_ptr;
/* check dependency mutex first */
do
{
if (jma_media_player_dependency_mutex_lock_no_wait())
{
break;
}
}while(1);
if(jma_media_player_cs_check_and_enter(KAL_TRUE))
{
jma_audio_event_callback_handler(p->handle, p->event, p->aud_id, p->seq_id);
jma_media_player_cs_leave();
}
/* Remember to unlock the additional lock. */
jma_media_player_dependency_mutex_unlock();
}
break;
default:
#ifdef SUPPORT_MMAPI
/* Make sure MMAPI parameters has already been inited */
if(jvm_get_state() != JVM_TERMINATE_STATE)
{
/* check dependency mutex first */
do
{
if (jma_media_player_dependency_mutex_lock_no_wait())
{
break;
}
}while(1);
if(jma_media_player_cs_check_and_enter(KAL_FALSE))
{
/* dispatch message to mdi library */
if(mdi_message_dispatcher(ilm_ptr))
{
jma_media_player_cs_leave();
/* Remember to unlock the additional lock. */
jma_media_player_dependency_mutex_unlock();
return KAL_TRUE;
}
jma_media_player_cs_leave();
}
/* Remember to unlock the additional lock. */
jma_media_player_dependency_mutex_unlock();
}
#endif /* SUPPORT_MMAPI */
#ifdef __DRM_SUPPORT__
if( DRM_app_common_hdlr(ilm_ptr))
{
return KAL_TRUE;
}
#endif
return KAL_FALSE; /* this message no one handle it :Q */
}
return KAL_TRUE;
}
/*****************************************************************************
* FUNCTION
* jdaemon_timer_expiry_handler
* DESCRIPTION
*
* PARAMETERS
* ilm_ptr [?]
* RETURNS
* void
*****************************************************************************/
static void jdaemon_timer_expiry_handler(ilm_struct *ilm_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
stack_timer_struct *timer = (stack_timer_struct*) (ilm_ptr->local_para_ptr);
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (timer == &jvm_base_timer)
{
/* Check if the base timer is stopped or not */
if (stack_is_time_out_valid(&jvm_base_timer))
{
/* Execute event's timeout handler */
evshed_timer_handler(jvm_event_scheduler_ptr);
}
/* Should be paired with stack_is_time_out_valid() */
stack_process_time_out(&jvm_base_timer);
}
}
/*****************************************************************************
* FUNCTION
* j2me_timer_expiry_handler
* DESCRIPTION
*
* PARAMETERS
* ilm_ptr [?]
* RETURNS
* void
*****************************************************************************/
static void j2me_timer_expiry_handler(ilm_struct *ilm_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
stack_timer_struct *timer = (stack_timer_struct*) (ilm_ptr->local_para_ptr);
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (timer == &j2me_vibrator_timer)
{
if (stack_is_time_out_valid(&j2me_vibrator_timer))
{
jvm_stopVibrate_call_by_Jdaemon();
}
/* Should be paired with stack_is_time_out_valid() */
stack_process_time_out(&j2me_vibrator_timer);
}
else if (timer == &j2me_alarm_timer)
{
/* timealarm */
/* mmi pop up window to ask use can we exit current midlet, and start alarm midlet */
/* Check if the base timer is stopped or not */
if (stack_is_time_out_valid(&j2me_alarm_timer))
{
/* Execute event's timeout handler */
evshed_timer_handler(j2me_alarm_es_ptr);
}
/* Should be paired with stack_is_time_out_valid() */
stack_process_time_out(&j2me_alarm_timer);
}
#ifdef SUPPORT_MMAPI
else if (timer == &java_media_timer)
{
if (stack_is_time_out_valid(&java_media_timer))
{
/* check dependency mutex first */
do
{
if (jma_media_player_dependency_mutex_lock_no_wait())
{
break;
}
}while(1);
kal_trace(TRACE_GROUP_4, FUNC_J2ME_TIMER_EXPIRY_HANDLER, timer->timer_indx);
if (timer->timer_indx == JAVA_MEDIA_TIMER_AUDIO_RECORDER)
{
jma_audio_recorder_timer_expired();
}
else if (timer->timer_indx == JAVA_MEDIA_TIMER_ANIMA_PLAYER)
{
jma_anima_player_draw_frame_cyclic();
}
else if (timer->timer_indx == JAVA_MEDIA_TIMER_ANIMA_PARSE_INFO)
{
jma_anima_player_parse_info_cyclic();
}
#if !defined (J2ME_SHARE_MED_EXT_MEM) && defined(__MMI_VIDEO_RECORDER__)
else if (timer->timer_indx == JAVA_MEDIA_TIMER_VIDEO_RECORDER)
{
jma_video_recorder_timer_expired();
}
#endif /* !defined (J2ME_SHARE_MED_EXT_MEM) && defined(__MMI_VIDEO_RECORDER__) */
#if !defined (J2ME_SHARE_MED_EXT_MEM) && defined(__MMI_VIDEO_PLAYER__)
#ifdef __MMI_VIDEO_STREAM__
else if (timer->timer_indx == JAVA_MEDIA_TIMER_STREAM_PLAYER)
{
jma_stream_player_buffering_cyclic();
}
#endif /* __MMI_VIDEO_STREAM__ */
#ifdef __MMI_VIDEO_PDL__
else if (timer->timer_indx == JAVA_MEDIA_TIMER_PDL_PLAYER)
{
jma_video_player_cache_buffering_cyclic();
}
#endif /* __MMI_VIDEO_PDL__ */
#endif /* !defined (J2ME_SHARE_MED_EXT_MEM) && defined(__MMI_VIDEO_PLAYER__) */
/* Remember to unlock the additional lock. */
jma_media_player_dependency_mutex_unlock();
}
/* MUST be invoked even if JMA wants to ignore the time out message */
stack_process_time_out(&java_media_timer);
}
else if (timer == &java_stop_time_timer)
{
if (stack_is_time_out_valid(&java_stop_time_timer))
{
/* check dependency mutex first */
do
{
if (jma_media_player_dependency_mutex_lock_no_wait())
{
break;
}
}while(1);
jma_anima_player_check_stop_time_cyclic();
/* Remember to unlock the additional lock. */
jma_media_player_dependency_mutex_unlock();
}
/* MUST be invoked even if JMA wants to ignore the time out message */
stack_process_time_out(&java_stop_time_timer);
}
#endif
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -