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

📄 aud_vr_main.c

📁 最新MTK手机软件源码
💻 C
📖 第 1 页 / 共 3 页
字号:
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vr_get_version_req_struct *msg_p = (media_vr_get_version_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    switch (msg_p->mode)
    {
        case MED_VR_ISD_MODE:
            result = VR_GetEngineVer();
            break;
        case MED_VR_CSI_MODE:
            result = -1;
            break;
        case MED_VR_PSI_MODE:
            result = -1;
            break;
        default:
            result = -1;
            break;
    }

    aud_set_result(result);

    AUD_SET_EVENT(AUD_EVT_VR_GET_VER);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vr_get_param_req_hdlr
 * DESCRIPTION
 *  vr get parameters
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vr_get_param_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vr_get_param_req_struct *msg_p = (media_vr_get_param_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    switch (msg_p->mode)
    {
        case MED_VR_ISD_MODE:
            if (VR_GetParameters(msg_p->sim, msg_p->diff, msg_p->rej) == VR_OK)
            {
                result = MED_RES_OK;
            }
            else
            {
                result = MED_RES_FAIL;
            }
            break;
        case MED_VR_CSI_MODE:
            result = MED_RES_PARAM_ERROR;
            break;
        case MED_VR_PSI_MODE:
            result = MED_RES_PARAM_ERROR;
            break;
        default:
            result = MED_RES_PARAM_ERROR;
            break;
    }

    aud_set_result(result);

    AUD_SET_EVENT(AUD_EVT_VR_GET_PARAM);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vr_set_param_req_hdlr
 * DESCRIPTION
 *  vr set parameters
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vr_set_param_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vr_set_param_req_struct *msg_p = (media_vr_set_param_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    switch (msg_p->mode)
    {
        case MED_VR_ISD_MODE:
            if (VR_SetParemeters(msg_p->sim, msg_p->diff, msg_p->rej) == VR_OK)
            {
                result = MED_RES_OK;
            }
            else
            {
                result = MED_RES_FAIL;
            }
            break;
        case MED_VR_CSI_MODE:
            result = MED_RES_PARAM_ERROR;
            break;
        case MED_VR_PSI_MODE:
            result = MED_RES_PARAM_ERROR;
            break;
        default:
            result = MED_RES_PARAM_ERROR;
            break;
    }

    aud_set_result(result);

    AUD_SET_EVENT(AUD_EVT_VR_SET_PARAM);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vr_init_rcg_req_hdlr
 * DESCRIPTION
 *  vr initialize a recognition session
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vr_init_rcg_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vr_init_rcg_req_struct *msg_p = (media_vr_init_rcg_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    AUD_FUNC_ENTRY(AUD_VR_INIT_RCG_REQ_HDLR);

    /* not allow cross another session */
    if (vr_ctx.state == AUD_VR_STATE_IDLE)
    {
        vr_ctx.src_mod = ilm_ptr->src_mod_id;
        vr_ctx.session_id = msg_p->session_id;
        vr_ctx.mode = msg_p->mode;
        vr_ctx.lang = msg_p->language;
        vr_ctx.group_id = msg_p->group_id;

        /* check not exceed max group id */
        if (vr_ctx.group_id >= VR_SD_MAX_GROUP_NUM)
        {
            result = MED_RES_PARAM_ERROR;
        }
        else if (aud_vr_check_db_folder(vr_ctx.db_path, vr_ctx.mode, vr_ctx.lang, vr_ctx.group_id))
        {
            switch (vr_ctx.mode)
            {
                case MED_VR_ISD_MODE:
                    result = aud_vr_sd_init_rcg();
                    break;
                case MED_VR_CSI_MODE:
                    result = MED_RES_PARAM_ERROR;
                    break;
                case MED_VR_PSI_MODE:
                    result = MED_RES_PARAM_ERROR;
                    break;
                default:
                    result = MED_RES_PARAM_ERROR;
                    break;
            }
        }
        else
        {
            result = MED_RES_OPEN_FILE_FAIL;
        }
    }
    else
    {
        result = MED_RES_BUSY;
    }

    AUD_VALUE_TRACE(result, vr_ctx.state, -1);
    aud_set_result(result);

    AUD_SET_EVENT(AUD_EVT_VR_INIT_RCG);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vr_init_trn_req_hdlr
 * DESCRIPTION
 *  vr initialize a training session
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vr_init_trn_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vr_init_trn_req_struct *msg_p = (media_vr_init_trn_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    AUD_FUNC_ENTRY(AUD_VR_INIT_TRN_REQ_HDLR);
    
    /* not allow cross another session */
    if (vr_ctx.state == AUD_VR_STATE_IDLE)
    {
        vr_ctx.src_mod = ilm_ptr->src_mod_id;
        vr_ctx.session_id = msg_p->session_id;
        vr_ctx.mode = msg_p->mode;
        vr_ctx.lang = msg_p->language;
        vr_ctx.group_id = msg_p->group_id;
        vr_ctx.word_id = msg_p->word_id;

        /* check not exceed max group id */
        if (vr_ctx.group_id >= VR_SD_MAX_GROUP_NUM)
        {
            result = MED_RES_PARAM_ERROR;
        }
        else if (aud_vr_check_db_folder(vr_ctx.db_path, vr_ctx.mode, vr_ctx.lang, vr_ctx.group_id))
        {
            switch (vr_ctx.mode)
            {
                case MED_VR_ISD_MODE:
                    result = aud_vr_sd_init_trn();
                    break;
                case MED_VR_CSI_MODE:
                    result = MED_RES_PARAM_ERROR;
                    break;
                case MED_VR_PSI_MODE:
                    result = MED_RES_PARAM_ERROR;
                    break;
                default:
                    result = MED_RES_PARAM_ERROR;
                    break;
            }
        }
        else
        {
            result = MED_RES_OPEN_FILE_FAIL;
        }
    }
    else
    {
        result = MED_RES_BUSY;
    }

    AUD_VALUE_TRACE(result, vr_ctx.state, -1);
    aud_set_result(result);

    AUD_SET_EVENT(AUD_EVT_VR_INIT_TRN);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vr_voice_in_req_hdlr
 * DESCRIPTION
 *  vr voice in notification
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vr_voice_in_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vr_voice_in_req_struct *msg_p = (media_vr_voice_in_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    AUD_FUNC_ENTRY(AUD_VR_VOICE_IN_REQ_HDLR);
    
    /* check which session is the voice in for */
    if (vr_ctx.state == AUD_VR_STATE_RCG_SESSION && vr_ctx.session_id == msg_p->session_id)
    {
        /* recognition session */
        switch (vr_ctx.mode)
        {
            case MED_VR_ISD_MODE:
                result = aud_vr_sd_rcg_voice_in();
                break;
            case MED_VR_CSI_MODE:
                result = MED_RES_PARAM_ERROR;
                break;
            case MED_VR_PSI_MODE:
                result = MED_RES_PARAM_ERROR;
                break;
            default:
                result = MED_RES_PARAM_ERROR;
                break;
        }
    }
    else if (vr_ctx.state == AUD_VR_STATE_TRN_SESSION && vr_ctx.session_id == msg_p->session_id)
    {
        /* training session */
        switch (vr_ctx.mode)
        {
            case MED_VR_ISD_MODE:
                result = aud_vr_sd_trn_voice_in(msg_p->seq_no);
                break;
            case MED_VR_CSI_MODE:
                result = MED_RES_PARAM_ERROR;
                break;
            case MED_VR_PSI_MODE:
                result = MED_RES_PARAM_ERROR;
                break;
            default:
                result = MED_RES_PARAM_ERROR;
                break;
        }
    }
    else
    {
        result = MED_RES_FAIL;
    }

    AUD_VALUE_TRACE(result, vr_ctx.state, -1);
    aud_set_result(result);

    AUD_SET_EVENT(AUD_EVT_VR_VOICE_IN);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vr_del_tag_req_hdlr
 * DESCRIPTION
 *  vr delete tag
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vr_del_tag_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vr_del_tag_req_struct *msg_p = (media_vr_del_tag_req_struct*) ilm_ptr->local_para_ptr;
    kal_uint16 db_path[VR_MAX_DB_PATH_LEN + 1];
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    AUD_FUNC_ENTRY(AUD_VR_DEL_TAG_REQ_HDLR);
    
    /* not allow to delete a tag during session */
    if (vr_ctx.state == AUD_VR_STATE_IDLE)
    {
        /* check not exceed max group id */
        if (msg_p->group_id >= VR_SD_MAX_GROUP_NUM)
        {
            result = MED_RES_PARAM_ERROR;
        }
        else if (aud_vr_check_db_folder(db_path, msg_p->mode, msg_p->language, msg_p->group_id))
        {
            switch (vr_ctx.mode)
            {
                case MED_VR_ISD_MODE:
                    result = aud_vr_sd_delete_tag(msg_p->group_id, msg_p->word_id);
                    break;
                case MED_VR_CSI_MODE:
                    result = MED_RES_PARAM_ERROR;
                    break;
                case MED_VR_PSI_MODE:
                    result = MED_RES_PARAM_ERROR;
                    break;
                default:
                    result = MED_RES_PARAM_ERROR;
                    break;
            }
        }

⌨️ 快捷键说明

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