📄 aud_melody.c
字号:
* 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 + -