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

📄 uem_msg_hdlr.c

📁 最新MTK手机软件源码
💻 C
📖 第 1 页 / 共 5 页
字号:
                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 + -