📄 events_md.c
字号:
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2001
*
*****************************************************************************/
/*****************************************************************************
*
* Filename:
* ---------
* jam_events.c
*
* Project:
* --------
* Maui_Software
*
* Description:
* ------------
* This file implements JAM (Java Application Manager) event handling APIs
*
* Author:
* -------
* -------
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
/*************************************************************************
* Include Statements
*************************************************************************/
#include "jal.h"
#include "jam_internal.h"
#include "jma_internal.h"
#include "jvm_adaptor.h"
#include "jam_msg_handler.h"
#include "kni.h"
#include "defaultLCDUI.h"
#include "pushregistry.h"
#include "commandState.h"
#include "globalconstants.h"
#include "TouchScreenGprot.h"
#include "FrameworkStruct.h"
/*************************************************************************
* Constant Definiton
*************************************************************************/
#define KPEEKMESSAGE_PERIOD (1)
/*************************************************************************
* Function Declaration or Global Definition
*************************************************************************/
extern void process_soc_async_ind(ilm_struct* ilm_ptr);
extern void TurnOnBacklight(kal_uint8);
extern void J2ME_PauseScreenTime_md(void);
extern void J2ME_ResumeScreenTime_md(void);
extern void InsertKVMEvent(BOOL inFront, cell type, int argCount, ...);
extern void jvm_resume_vm_external(void); /*implemented by vendor */
extern void jvm_file_update_diskinfo(void);
extern kal_eventgrpid J2ME_mmi_screen_eventgroup;
extern event_scheduler *j2me_alarm_es_ptr;
extern int checkEventCountTimeSlice;
extern kal_int32 g_jvm_card_plugin_event;
static ulong64 previos_sleep_time = 0;
extern kal_eventgrpid J2ME_pause_event_group;
extern kal_bool j2me_quit_tck_mode;
extern kal_bool notify_pause;
extern void jui_widget_reset_current_menu_string(void);
#ifdef __J2ME_F1_3X_EXTENSION__
extern int custom3X_Data[];
extern int custom3X_axis;
extern jboolean support3XDEventTrigger;
extern int j2me_3xdevice_query(void);
#endif /* __J2ME_F1_3X_EXTENSION__ */
int vm_is_force_terminated;
kal_bool pauseThread = KAL_FALSE;
kal_bool pause_app_executed = KAL_FALSE;
kal_bool saved_vm_pause = KAL_FALSE;
static kal_uint64 pausedTime;
static kal_int32 current_pause_level;
static kal_uint64 terminateTime;
/* KAL_FALSE --> can store pause event, KAL_TRUE --> can store resume event
* This variable will insure storing pause event and resume event to be paired
*/
static kal_bool store_pause_or_resume_event = KAL_FALSE;
static kal_bool suspend_all_executed = KAL_FALSE;
static kal_bool shutdonw_event_sent = KAL_FALSE;
static kal_bool is_bg_running = KAL_FALSE;
kal_char* pause_mids_work_dir_path;
#ifdef __SUPPORT_INFUSIO__
extern bool_t ege_launch_next_ap_flag;
extern int infusio_mids_type;
extern void set_work_sys_dir_path_for_EGE(void);
#endif /* __SUPPORT_INFUSIO__ */
void jvm_resume_vm_external(void);
/*************************************************************************
* FUNCTION
* KPeekMessage
*
* DESCRIPTION
* Get message with timeout waiting
*
* PARAMETERS
*
* RETURNS
*
* GLOBALS AFFECTED
*
*************************************************************************/
int
KPeekMessage(ilm_struct *current_ilm, unsigned timeout_msecs)
{
kal_status status = KAL_Q_EMPTY;
kal_uint16 msg_size;
if (timeout_msecs == 0)
{
status = kal_deque_msg( task_info_g[INDX_J2ME].task_ext_qid,
(void*)current_ilm,
&msg_size,
KAL_NO_WAIT );
} else
{
kal_uint32 timeout_ticks = timeout_msecs >> 2;
kal_uint32 count_ticks = 0;
jvm_keypad_register_notify();
/* waitUntil is in miliseconds, KPeekMessage use frameticks as time base. */
while (count_ticks <= timeout_ticks)
{
/* prevent not exit forever on pause state */
if (vm_is_force_terminated && CurrentTime_md() - terminateTime > MAX_TERMINAT_TIME)
{
vm_is_force_terminated = KAL_FALSE;
/* Flush key ring buffer */
jvm_keypad_flush();
jvm_tp_flush();
MidpCommandState.nextCommand = EXIT;
ERROR_THROW(-1); /* long jump back to VM exit point*/
}
count_ticks += KPEEKMESSAGE_PERIOD;
status = kal_deque_msg( task_info_g[INDX_J2ME].task_ext_qid,
(void*)current_ilm,
&msg_size,
KAL_NO_WAIT );
if (status == KAL_SUCCESS)
break;
else if (status == KAL_Q_EMPTY)
/* Sleep for a while, and polling again. */
kal_sleep_task(KPEEKMESSAGE_PERIOD);
else
ASSERT(0);
}
}
return(int)(status);
}
/*************************************************************************
* FUNCTION
* KPeekMessage
*
* DESCRIPTION
* Get message with forever waiting
*
* PARAMETERS
*
* RETURNS
*
* GLOBALS AFFECTED
*
*************************************************************************/
extern int eventCount;
int
KGetMessage(ilm_struct *current_ilm)
{
kal_status status;
jvm_keypad_register_notify();
status = receive_msg_ext_q(task_info_g[INDX_J2ME].task_ext_qid, current_ilm );
return(int)(status);
}
/*************************************************************************
* FUNCTION
* j2me_translate_keyevent
*
* DESCRIPTION
*
* PARAMETERS
*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -