📄 uem_msg_hdlr.c
字号:
uem_send_msg_to_nvram(MSG_ID_NVRAM_READ_REQ, NVRAM_EF_CUST_HW_LEVEL_TBL_LID, 0, 0);
}
break;
}
case NVRAM_EF_CUST_HW_LEVEL_TBL_LID:
{
if (parm_ptr->length != sizeof(custom_hw_level_struct))
{
/* error reading length */
kal_trace(TRACE_ERROR, ERROR_UEM_NVRAM_DATA_LEN, sizeof(custom_hw_level_struct), parm_ptr->length);
return;
}
uem_init_hardware_level((void*)pdu_ptr);
if (g_uem_cntx_p->state == UEM_STATE_STARTUP)
{
uem_send_msg_to_nvram(MSG_ID_NVRAM_READ_REQ, NVRAM_EF_UEM_MANUFACTURE_DATA_LID, 0, 0);
}
break;
}
case NVRAM_EF_UEM_MANUFACTURE_DATA_LID:
{
if (parm_ptr->length != sizeof(uem_context_manufacture_struct))
{
/* error reading length */
kal_trace(
TRACE_ERROR,
ERROR_UEM_NVRAM_DATA_LEN,
sizeof(uem_context_manufacture_struct),
parm_ptr->length);
return;
}
kal_mem_cpy(
&(g_uem_cntx_p->manufacture_data),
(uem_context_manufacture_struct*) pdu_ptr,
sizeof(uem_context_manufacture_struct));
/* when the last block EF nvram is reading ready, we will start to init HW environment */
if (g_uem_cntx_p->state == UEM_STATE_STARTUP)
{
g_uem_cntx_p->cause_id = parm_ptr->result;
uem_send_msg_to_aud(MSG_ID_MED_STARTUP_REQ);
}
break;
}
default:
break;
}
}
/*****************************************************************************
* Function
* ueml4c_set_profile_req_hdlr
* DESCRIPTION
* The function request from L4C the profile.
* PARAMETERS
* local_para_ptr IN
* peer_buff_ptr IN
* RETURNS
* void
* GLOBALS AFFECTED
*****************************************************************************/
/*****************************************************************************
* FUNCTION
* ueml4c_set_profile_req_hdlr
* DESCRIPTION
*
* PARAMETERS
* local_para_ptr [?]
* peer_buff_ptr [?]
* RETURNS
* void
*****************************************************************************/
void ueml4c_set_profile_req_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_uint8 param[3];
l4cuem_set_profile_req_struct *parm_ptr;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
kal_trace(TRACE_FUNC, FUNC_UEM_SET_PROFILE_REQ);
parm_ptr = (l4cuem_set_profile_req_struct*) local_para_ptr;
/* parsing local parameter */
param[0] = parm_ptr->data1;
param[1] = parm_ptr->data2;
param[2] = parm_ptr->data3;
/* keep the function id in UEM message from L4C */
g_uem_cntx_p->func_id = parm_ptr->type;
/* 1. Set Context */
switch (parm_ptr->type)
{
case VOL_SET: /* set volume level */
l4cuem_audio_set_volume_req((kal_uint8) param[0], (kal_uint8) param[1]);
break;
case CALA_SET: /* set alarm */
{
rtc_alarm_info_struct *rtc_alarm_info_data;
kal_uint16 pdu_len;
rtc_alarm_info_data = (rtc_alarm_info_struct*) get_pdu_ptr(peer_buff_ptr, &pdu_len);
/* update profile only, set alarm to hardware will using another exe function */
uem_alarm_set_time((kal_uint8) param[0], *rtc_alarm_info_data);
break;
}
case CALD_EXE: /* delete alarm */
uem_rtc_delete((kal_uint8) param[0], (kal_uint8) param[1]);
break;
case CSGT_SET: /* set greeting text */
{
rmi_greeting_text_struct *rmi_greeting_textp;
kal_uint8 *pdu_ptr = NULL;
kal_uint16 pdu_len;
pdu_ptr = get_pdu_ptr(peer_buff_ptr, &pdu_len);
rmi_greeting_textp = (rmi_greeting_text_struct*) pdu_ptr;
l4cuem_set_greeting_text_req(
(kal_bool) param[0],
rmi_greeting_textp->text_dcs,
(kal_uint8*) rmi_greeting_textp->text,
rmi_greeting_textp->text_length);
break;
}
case CGCI_SET: /* set country code */
l4cuem_equip_set_cc_req((kal_uint8) param[0]);
break;
case CALM_SET: /* set alert sound mode */
l4cuem_set_alert_mode_req((kal_uint8) param[0]);
break;
case CLAN_SET: /* set language */
l4cuem_set_lang_req((kal_uint8) param[0], (kal_uint8) param[1]);
break;
/* set gpio level */
case GPIO_SET:
case CVIB_SET:
/* not to execute the GPIO function, just only to store the set value */
uem_set_gpio_status((kal_uint8) param[0], (kal_uint8) param[1]);
break;
default:
break;
}
/* 2. Save Profile to Nvram */
switch (parm_ptr->type)
{
case VOL_SET: /* Volume */
{
/* When UEM flash data reading is finished, then start to write inot flash */
if (uem_get_state() == UEM_STATE_READY)
{
}
else /* NVRAM data reading is not ready */
{
/* Response to L4C, the cause is not yet to initial finish */
g_uem_cntx_p->cause_id = NVRAM_IO_ERRNO_UNINIT;
uem_send_msg_to_l4c(MSG_ID_L4CUEM_SET_PROFILE_CNF, NULL);
}
break;
}
case CSGT_SET: /* Greeting Text */
case CALA_SET: /* Alarm */
case CALD_EXE: /* Alarm Delete */
case CGCI_SET: /* Country Code */
case CLAN_SET: /* Language */
case CALM_SET: /* Alert Mode */
case GPIO_SET: /* Vibrator */
case CVIB_SET:
{
/* When UEM flash data reading is finished, then start to write inot flash */
if (uem_get_state() == UEM_STATE_READY)
{
uem_send_msg_to_nvram(
MSG_ID_NVRAM_WRITE_REQ,
NVRAM_EF_UEM_RMI_DATA_LID,
&(g_uem_cntx_p->rmi_data),
sizeof(uem_context_rmi_struct));
}
else /* NVRAM data reading is not ready */
{
/* Response to L4C, the cause is not yet to initial finish */
g_uem_cntx_p->cause_id = NVRAM_IO_ERRNO_UNINIT;
uem_send_msg_to_l4c(MSG_ID_L4CUEM_SET_PROFILE_CNF, NULL);
}
break;
}
default:
break;
}
}
/*****************************************************************************
* Function
* uemaud_startup_cnf_hdlr
* DESCRIPTION
* UEM <-- AUD/MED startup
* PARAMETERS
* local_para_ptr IN
* peer_buff_ptr IN
* RETURNS
* void
* GLOBALS AFFECTED
*****************************************************************************/
/*****************************************************************************
* FUNCTION
* uemaud_startup_cnf_hdlr
* DESCRIPTION
*
* PARAMETERS
* local_para_ptr [?]
* peer_buff_ptr [?]
* RETURNS
* void
*****************************************************************************/
void uemaud_startup_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* send confirm back to L4C */
uem_send_msg_to_l4c(MSG_ID_L4CUEM_STARTUP_CNF, NULL);
uem_startup_finish();
}
/*****************************************************************************
* Function
* ueml4c_startup_req_hdlr
* DESCRIPTION
* The function request from L4C the profile.
* PARAMETERS
* local_para_ptr IN
* peer_buff_ptr IN
* RETURNS
* void
* GLOBALS AFFECTED
*****************************************************************************/
/*****************************************************************************
* FUNCTION
* ueml4c_startup_req_hdlr
* DESCRIPTION
*
* PARAMETERS
* local_para_ptr [?]
* peer_buff_ptr [?]
* RETURNS
* void
*****************************************************************************/
void ueml4c_startup_req_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
kal_trace(TRACE_FUNC, FUNC_UEM_STARTUP_REQ);
uem_startup_process();
}
/*****************************************************************************
* Function
* uemsat_language_req_hdlr
* DESCRIPTION
* The function is to handle the language request.
* PARAMETERS
* local_para_ptr IN
* peer_buff_ptr IN
* RETURNS
* void
* GLOBALS AFFECTED
*****************************************************************************/
/*****************************************************************************
* FUNCTION
* uemsat_language_req_hdlr
* DESCRIPTION
*
* PARAMETERS
* local_para_ptr [?]
* peer_buff_ptr [?]
* RETURNS
* void
*****************************************************************************/
void uemsat_language_req_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
kal_trace(TRACE_FUNC, FUNC_UEM_LANGUAGE_REQ);
uem_send_msg_to_sat(MSG_ID_SAT_LANGUAGE_CNF, NULL);
}
/*****************************************************************************
* Function
* uemsat_current_time_req_hdlr
* DESCRIPTION
* The function to handle the current time request handle.
* PARAMETERS
* local_para_ptr IN
* peer_buff_ptr IN
* RETURNS
* void
* GLOBALS AFFECTED
*****************************************************************************/
/*****************************************************************************
* FUNCTION
* uemsat_current_time_req_hdlr
* DESCRIPTION
*
* PARAMETERS
* local_para_ptr [?]
* peer_buff_ptr [?]
* RETURNS
* void
*****************************************************************************/
void uemsat_current_time_req_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
kal_trace(TRACE_FUNC, FUNC_UEM_CURRENT_TIME_REQ);
uem_send_msg_to_sat(MSG_ID_SAT_CURRENT_TIME_CNF, NULL);
}
/*****************************************************************************
* Function
* uemaud_play_finish_ind_hdlr
* DESCRIPTION
* ...
* PARAMETERS
* local_para_ptr IN
* peer_buff_ptr IN
* RETURNS
* void
* GLOBALS AFFECTED
*****************************************************************************/
/*****************************************************************************
* FUNCTION
* uemaud_play_finish_ind_hdlr
* DESCRIPTION
*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -