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

📄 aud_melody.c

📁 最新MTK手机软件源码
💻 C
📖 第 1 页 / 共 5 页
字号:
 * RETURNS
 *  void
 *****************************************************************************/
void aud_backlight_ctrl_rsp_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    mmiapi_backlight_control_rsp_struct *msg_p = (mmiapi_backlight_control_rsp_struct*) ilm_ptr->local_para_ptr;
    kal_bool on_off = (msg_p->on_off ? KAL_TRUE : KAL_FALSE);

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_take_mutex(backlight_ctrl_mutex);
    switch (backlight_ctrl_state)
    {
        case CTRL_BACKLIGHT_REQ_IDLE:
            ASSERT(0);
            break;
        case CTRL_BACKLIGHT_REQ_WAIT:
            if (on_off == aud_context_p->backlight_on)
            {
                backlight_ctrl_state = CTRL_BACKLIGHT_REQ_IDLE;
            }
            else
            {
                aud_send_backlight_ctrl_req(MOD_MMI, (kal_uint8) aud_context_p->backlight_on, 1);
            }
            break;
        case CTRL_BACKLIGHT_REQ_WAIT_CLOSE:
            aud_send_backlight_ctrl_req(MOD_MMI, (kal_uint8) aud_context_p->backlight_on, 0);
            backlight_ctrl_state = CTRL_BACKLIGHT_REQ_CLOSE;
            break;
        case CTRL_BACKLIGHT_REQ_CLOSE:
            if (on_off == aud_context_p->backlight_on)
            {
                backlight_ctrl_state = CTRL_BACKLIGHT_REQ_IDLE;
            }
            else
            {
                ASSERT(0);
            }
            break;
    }
    kal_give_mutex(backlight_ctrl_mutex);
}
#endif /* __MMI_SUPPORT_BACKLIGHT_SYNC__ */ 

#ifdef __MMI_SUPPORT_LED_SYNC__
/* -- added for turn on/off led by MMI task -- */


/*****************************************************************************
 * FUNCTION
 *  aud_led_ctrl_rsp_hdlr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_led_ctrl_rsp_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    mmiapi_led_control_rsp_struct *msg_p = (mmiapi_led_control_rsp_struct*) ilm_ptr->local_para_ptr;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_take_mutex(led_ctrl_mutex);
    if (msg_p->on_off)
    {
        /* MMI responses that it finishs turning on led request */
        if (!aud_context_p->led_on)
        {
            aud_send_led_ctrl_req(MOD_MMI, 0);  /* request to turn off led */
            wait_for_led_ctrl_rsp = 1;
        }
        else
        {
            wait_for_led_ctrl_rsp = 0;
        }
    }
    else
    {
        /* MMI responses that it finishs turning off led request */
        if (aud_context_p->led_on)
        {
            aud_send_led_ctrl_req(MOD_MMI, 1);  /* request to turn on led */
            wait_for_led_ctrl_rsp = 1;
        }
        else
        {
            wait_for_led_ctrl_rsp = 0;
        }
    }
    kal_give_mutex(led_ctrl_mutex);
}
#endif /* __MMI_SUPPORT_LED_SYNC__ */ 

#ifdef __MMI_SUPPORT_BACKLIGHT_SYNC__


/*****************************************************************************
 * FUNCTION
 *  aud_melody_imy_close_backlight_ctrl
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void aud_melody_imy_close_backlight_ctrl(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_take_mutex(backlight_ctrl_mutex);
    /* -- added for turn on/off backlight by MMI task -- */
    if (backlight_ctrl_state == CTRL_BACKLIGHT_REQ_IDLE)
    {
        if (backlight_ctrl_in_use)
        {
            aud_send_backlight_ctrl_req(MOD_MMI, 1, 0);
            backlight_ctrl_state = CTRL_BACKLIGHT_REQ_CLOSE;
        }
    }
    else if (backlight_ctrl_state != CTRL_BACKLIGHT_REQ_CLOSE)
    {
        backlight_ctrl_state = CTRL_BACKLIGHT_REQ_WAIT_CLOSE;
    }
    backlight_ctrl_in_use = KAL_FALSE;
    aud_context_p->backlight_on = KAL_TRUE;
    kal_give_mutex(backlight_ctrl_mutex);
}
#endif /* __MMI_SUPPORT_BACKLIGHT_SYNC__ */ 


/*****************************************************************************
 * FUNCTION
 *  aud_melody_stop_driver
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void aud_melody_stop_driver(void)
{
#ifdef __MTK_TARGET__
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_prompt_trace(MOD_L1SP, "IMY vibrator: enabled = %d, on = %d", aud_context_p->vibrator_enabled, KAL_FALSE);
    if (aud_context_p->vibrator_enabled)
    {
        if (aud_context_p->vibrator_on)
        {
            custom_cfg_gpio_set_level(GPIO_DEV_VIBRATOR, VIBRATOR_OFF);
            aud_context_p->vibrator_on = KAL_FALSE;
        }
    }

    /* turn off led, if on */
#ifndef __MMI_SUPPORT_LED_SYNC__
    if (aud_context_p->led_on)
    {
        custom_cfg_gpio_set_level(GPIO_DEV_LED_STATUS_1, LED_LIGHT_LEVEL0);
        custom_cfg_gpio_set_level(GPIO_DEV_LED_STATUS_2, LED_LIGHT_LEVEL0);
        custom_cfg_gpio_set_level(GPIO_DEV_LED_STATUS_3, LED_LIGHT_LEVEL0);
        aud_context_p->led_on = KAL_FALSE;
    }
#else /* __MMI_SUPPORT_LED_SYNC__ */ 
    kal_take_mutex(led_ctrl_mutex);
    if (aud_context_p->led_on)
    {
        /* -- added for turn on/off led by MMI task -- */
        if (!wait_for_led_ctrl_rsp)
        {
            aud_send_led_ctrl_req(MOD_MMI, 1);
            wait_for_led_ctrl_rsp = 1;
        }
        aud_context_p->led_on = KAL_FALSE;
    }
    kal_give_mutex(led_ctrl_mutex);
#endif /* __MMI_SUPPORT_LED_SYNC__ */ 

#ifndef __MMI_SUPPORT_BACKLIGHT_SYNC__
    if (!aud_context_p->backlight_on)
    {
        custom_cfg_gpio_set_level(GPIO_DEV_LED_MAINLCD, LED_LIGHT_LEVEL5);
        custom_cfg_gpio_set_level(GPIO_DEV_LED_SUBLCD, LED_LIGHT_LEVEL5);
        custom_cfg_gpio_set_level(GPIO_DEV_LED_KEY, LED_LIGHT_LEVEL5);
    }
    aud_context_p->backlight_on = KAL_TRUE;
#else /* __MMI_SUPPORT_BACKLIGHT_SYNC__ */ 
    aud_melody_imy_close_backlight_ctrl();
#endif /* __MMI_SUPPORT_BACKLIGHT_SYNC__ */ 
#endif /* __MTK_TARGET__ */ 
}


/*****************************************************************************
 * FUNCTION
 *  aud_melody_imy_vibrator_hdlr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  on      [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void aud_melody_imy_vibrator_hdlr(kal_bool on)
{
#ifdef __MTK_TARGET__
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_prompt_trace(MOD_L1SP, "IMY vibrator: enabled = %d, on = %d", aud_context_p->vibrator_enabled, on);
    if (aud_context_p->vibrator_enabled)
    {
        if (on)
        {
            custom_cfg_gpio_set_level(GPIO_DEV_VIBRATOR, VIBRATOR_ON);
        }
        else
        {
            custom_cfg_gpio_set_level(GPIO_DEV_VIBRATOR, VIBRATOR_OFF);
        }
        aud_context_p->vibrator_on = on;
    }

#endif /* __MTK_TARGET__ */ 
}


/*****************************************************************************
 * FUNCTION
 *  aud_melody_imy_led_hdlr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  on      [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void aud_melody_imy_led_hdlr(kal_bool on)
{
#ifdef __MTK_TARGET__
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
#ifndef __MMI_SUPPORT_LED_SYNC__
    if (on)
    {
        custom_cfg_gpio_set_level(GPIO_DEV_LED_STATUS_1, LED_LIGHT_LEVEL5);
        custom_cfg_gpio_set_level(GPIO_DEV_LED_STATUS_2, LED_LIGHT_LEVEL5);
        custom_cfg_gpio_set_level(GPIO_DEV_LED_STATUS_3, LED_LIGHT_LEVEL5);
    }
    else
    {
        custom_cfg_gpio_set_level(GPIO_DEV_LED_STATUS_1, LED_LIGHT_LEVEL0);
        custom_cfg_gpio_set_level(GPIO_DEV_LED_STATUS_2, LED_LIGHT_LEVEL0);
        custom_cfg_gpio_set_level(GPIO_DEV_LED_STATUS_3, LED_LIGHT_LEVEL0);
    }
    aud_context_p->led_on = on;
#else /* __MMI_SUPPORT_LED_SYNC__ */ 
    kal_take_mutex(led_ctrl_mutex);
    /* -- added for turn on/off led by MMI task -- */
    if (!wait_for_led_ctrl_rsp)
    {
        aud_send_led_ctrl_req(MOD_MMI, (kal_uint8) on);
        wait_for_led_ctrl_rsp = 1;
    }
    aud_context_p->led_on = on;
    kal_give_mutex(led_ctrl_mutex);
#endif /* __MMI_SUPPORT_LED_SYNC__ */ 
#endif /* __MTK_TARGET__ */ 
}


/*****************************************************************************
 * FUNCTION
 *  aud_melody_imy_backlight_hdlr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  on      [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void aud_melody_imy_backlight_hdlr(kal_bool on)
{
#ifdef __MTK_TARGET__
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
#ifndef __MMI_SUPPORT_BACKLIGHT_SYNC__
    if (on)
    {
        custom_cfg_gpio_set_level(GPIO_DEV_LED_MAINLCD, LED_LIGHT_LEVEL5);
        custom_cfg_gpio_set_level(GPIO_DEV_LED_SUBLCD, LED_LIGHT_LEVEL5);
        custom_cfg_gpio_set_level(GPIO_DEV_LED_KEY, LED_LIGHT_LEVEL5);
    }
    else
    {
        custom_cfg_gpio_set_level(GPIO_DEV_LED_MAINLCD, LED_LIGHT_LEVEL2);
        custom_cfg_gpio_set_level(GPIO_DEV_LED_SUBLCD, LED_LIGHT_LEVEL2);
        custom_cfg_gpio_set_level(GPIO_DEV_LED_KEY, LED_LIGHT_LEVEL0);
    }
    aud_context_p->backlight_on = on;
#else /* __MMI_SUPPORT_BACKLIGHT_SYNC__ */ 
    kal_take_mutex(backlight_ctrl_mutex);
    /* -- added for turn on/off backlight by MMI task -- */
    if (backlight_ctrl_state == CTRL_BACKLIGHT_REQ_IDLE)
    {
        aud_send_backlight_ctrl_req(MOD_MMI, (kal_uint8) on, 1);
    }
    backlight_ctrl_state = CTRL_BACKLIGHT_REQ_WAIT;
    backlight_ctrl_in_use = KAL_TRUE;
    aud_context_p->backlight_on = on;
    kal_give_mutex(backlight_ctrl_mutex);
#endif /* __MMI_SUPPORT_BACKLIGHT_SYNC__ */ 
#endif /* __MTK_TARGET__ */ 
}


/*****************************************************************************
 * FUNCTION
 *  aud_store_driver_status
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void aud_store_driver_status(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */

⌨️ 快捷键说明

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