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

📄 jvm_device.c

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