📄 jvm_device.c
字号:
if (device_control)
{
MMI_PRINT(MOD_J2ME,TRACE_GROUP_9,"JVM: jvm_stopVibrate_call_by_Jdaemon, device_control!");
stack_stop_timer(&j2me_vibrator_timer);
jvm_send_vibrate_req(KAL_FALSE);
}
result = KAL_TRUE;
}
jvm_device_mutex_unlock();
return result;
}
/*****************************************************************************
* FUNCTION
* jvm_stopVibrate
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* KAL_TRUE: successful
* KAL_FALSE: failed
*****************************************************************************/
kal_bool jvm_stopVibrate(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_uint32 v_time;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
kal_get_time(&v_time);
MMI_PRINT(MOD_J2ME,TRACE_GROUP_9,"JVM: jvm_stopVibrate, stop time: %d / %d", v_time,Vibrate_time);
if(v_time >= Vibrate_time)
{
if(TICK_2_MS((v_time - Vibrate_time)) < 1000)
{
stack_stop_timer(&j2me_vibrator_timer);
stack_start_timer(&j2me_vibrator_timer, 1, MS_2_TICK(1000));
}
else
{
jvm_stopVibrate_call_by_Jdaemon();
}
}
else
{
ASSERT(0);
}
return KAL_TRUE;
}
/*****************************************************************************
* FUNCTION
* jvm_BackLightOn
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* KAL_TRUE: successful
* KAL_FALSE: failed
*****************************************************************************/
kal_bool jvm_BackLightOn(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_bool result = KAL_FALSE;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
jvm_device_mutex_lock();
if (device_control)
{
if (!backlight_force_on)
{
LCDBackLightOn();
}
result = KAL_TRUE;
}
jvm_device_mutex_unlock();
return result;
}
/*****************************************************************************
* FUNCTION
* jvm_BackLightOff
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* KAL_TRUE: successful
* KAL_FALSE: failed
*****************************************************************************/
kal_bool jvm_BackLightOff(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_bool result = KAL_FALSE;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
jvm_device_mutex_lock();
if (!backlight_force_on)
{
if (device_control)
{
LCDBackLightOff();
result = KAL_TRUE;
}
}
jvm_device_mutex_unlock();
return result;
}
/*****************************************************************************
* FUNCTION
* jvm_GetDeviceControl
* DESCRIPTION
*
* PARAMETERS
* is_resume [IN]
* RETURNS
* void
*****************************************************************************/
void jvm_GetDeviceControl(kal_bool is_resume) /* this function is run by MMI task */
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
jvm_device_mutex_lock();
device_control = KAL_TRUE;
LCDBackLightOn();
if (!is_resume)
{
jvm_stopVibrate();
}
else if(vibrationPlaying)
{
jvm_send_vibrate_req(KAL_TRUE);
}
if(!is_resume)
{
jvm_force_backlight_on(KAL_FALSE);
}
else if(backlight_force_on)
{
jvm_force_backlight_on(KAL_TRUE);
}
jvm_device_mutex_unlock();
}
/*****************************************************************************
* FUNCTION
* jvm_ReleaseDeviceControl
* DESCRIPTION
*
* PARAMETERS
* is_pause [IN]
* RETURNS
* void
*****************************************************************************/
void jvm_ReleaseDeviceControl(kal_bool is_pause) /* MMI */
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
jvm_device_mutex_lock();
if (vibrationPlaying)
{
GpioPlayReq(MMIAPI_DEV_TYPE_VIBRATOR, MMIAPI_DEV_LEVEL_0);
}
LCDBackLightOn();
if (backlight_force_on)
{
TurnOffBacklight();
}
device_control = KAL_FALSE;
jvm_device_mutex_unlock();
}
/*****************************************************************************
* FUNCTION
* jvm_send_vibrate_req
* DESCRIPTION
*
* PARAMETERS
* on [IN]
* RETURNS
* void
*****************************************************************************/
static void jvm_send_vibrate_req(kal_bool on)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
ilm_struct *ilm_ptr;
mmiapi_device_play_req_struct *p =
(mmiapi_device_play_req_struct*) construct_local_para(sizeof(mmiapi_device_play_req_struct), TD_CTRL);
module_type module = stack_get_active_module_id();
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
p->src_mod_id = MOD_JASYN;
p->type = MMIAPI_DEV_TYPE_VIBRATOR;
if (on == KAL_FALSE)
{
p->level = MMIAPI_DEV_LEVEL_0;
}
else
{
p->level = MMIAPI_DEV_LEVEL_1;
}
if (module == MOD_J2ME)
{
module = MOD_JASYN;
}
ilm_ptr = allocate_ilm(module);
ilm_ptr->msg_id = MSG_ID_MMIAPI_DEVICE_PLAY_REQ;
ilm_ptr->local_para_ptr = (local_para_struct*) p;
ilm_ptr->peer_buff_ptr = NULL;
ilm_ptr->dest_mod_id = MOD_MMI;
ilm_ptr->src_mod_id = module;
ilm_ptr->sap_id = MMI_J2ME_SAP;
msg_send_ext_queue(ilm_ptr);
}
/*****************************************************************************
* FUNCTION
* jvm_send_backlight_ctrl_req
* DESCRIPTION
*
* PARAMETERS
* on_off [IN]
* disable_timer [IN]
* RETURNS
* void
*****************************************************************************/
void jvm_send_backlight_ctrl_req(kal_uint8 on_off, kal_uint8 disable_timer)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
ilm_struct *ilm_ptr;
mmiapi_backlight_control_req_struct *msg_p = (mmiapi_backlight_control_req_struct*)
construct_local_para(sizeof(mmiapi_backlight_control_req_struct), TD_RESET);
module_type module = stack_get_active_module_id();
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
msg_p->on_off = on_off;
msg_p->disable_timer = disable_timer;
if (module == MOD_J2ME)
{
module = MOD_JASYN;
}
ilm_ptr = allocate_ilm(module);
ilm_ptr->msg_id = MSG_ID_MMIAPI_BACKLIGHT_CONTROL_REQ;
ilm_ptr->local_para_ptr = (local_para_struct*) msg_p;
ilm_ptr->peer_buff_ptr = NULL;
ilm_ptr->dest_mod_id = MOD_MMI;
ilm_ptr->src_mod_id = module;
ilm_ptr->sap_id = MMI_J2ME_SAP;
msg_send_ext_queue(ilm_ptr);
}
/*****************************************************************************
* FUNCTION
* jvm_force_backlight_on
* DESCRIPTION
*
* PARAMETERS
* force_on [IN]
* RETURNS
* void
*****************************************************************************/
void jvm_force_backlight_on(kal_bool force_on)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
module_type mod_id = stack_get_active_module_id();
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
jvm_device_mutex_lock();
if (device_control)
{
if (force_on == KAL_TRUE)
{
/* TurnOnBacklight(GPIO_BACKLIGHT_PERMANENT);*/
jvm_send_backlight_ctrl_req( 1, 1);
backlight_force_on = KAL_TRUE;
}
else if (force_on == KAL_FALSE && backlight_force_on == KAL_TRUE)
{
/* TurnOffBacklight(); */
jvm_send_backlight_ctrl_req(1, 0);
backlight_force_on = KAL_FALSE;
}
}
jvm_device_mutex_unlock();
if( mod_id != MOD_MMI)
kal_sleep_task(20); /* let mmi task to get message */
}
/*****************************************************************************
* FUNCTION
* jvm_is_force_backlight_on
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* return if backlight on
*****************************************************************************/
kal_bool jvm_is_force_backlight_on(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_bool result;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
jvm_device_mutex_lock();
result = backlight_force_on;
jvm_device_mutex_unlock();
return result;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -