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

📄 aud_vr_main.c

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


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

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

    /* 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 (msg_p->mode)
        {
            case MED_VR_ISD_MODE:
                if (aud_vr_sd_find_word_id(msg_p->group_id, msg_p->word_id) >= 0)
                {
                    result = MED_RES_ID_EXIST;
                }
                else
                {
                    result = MED_RES_NO_MATCH;
                }
                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_NO_MATCH;
    }

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

    AUD_SET_EVENT(AUD_EVT_VR_CHECK_TAG);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vr_sync_db_req_hdlr
 * DESCRIPTION
 *  vr sync database
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vr_sync_db_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vr_sync_db_req_struct *msg_p = (media_vr_sync_db_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_SYNC_DB_REQ_HDLR);
    
    /* not allow to sync database 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_sync_db(msg_p->group_id, msg_p->id_length_p, msg_p->id_array);
                    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_SYNC_DB);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vr_play_tag_req_hdlr
 * DESCRIPTION
 *  vr play tag
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vr_play_tag_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vr_play_tag_req_struct *msg_p = (media_vr_play_tag_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    AUD_FUNC_ENTRY(AUD_VR_PLAY_TAG_REQ_HDLR);
    
    /* not allow to play a tag during session */
    if (vr_ctx.state == AUD_VR_STATE_IDLE)
    {
        vr_ctx.src_mod = ilm_ptr->src_mod_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;
        aud_context_p->identifier = msg_p->identifier;

        /* 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_play_tag();
                    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_PLAY_TAG);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vr_get_dir_req_hdlr
 * DESCRIPTION
 *  vr get database dir
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vr_get_dir_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vr_get_dir_req_struct *msg_p = (media_vr_get_dir_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;
    kal_uint16 db_path[VR_MAX_DB_PATH_LEN + 1];

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

    msg_p->folder_name[0] = 0;

    /* 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 (msg_p->mode)
        {
            case MED_VR_ISD_MODE:
                kal_wstrcpy(msg_p->folder_name, db_path);
                result = MED_RES_OK;
                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;
    }

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

    AUD_SET_EVENT(AUD_EVT_VR_GET_DIR);
}


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

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    AUD_FUNC_ENTRY(AUD_VR_ADD_TAG_REQ_HDLR);
    
    /* not allow to add tags 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))
        {
            id_length = (msg_p->id_length <= VR_MAX_ADD_ONCE_NUM) ? msg_p->id_length : VR_MAX_ADD_ONCE_NUM;
            switch (vr_ctx.mode)
            {
                case MED_VR_ISD_MODE:
                    result = aud_vr_sd_add_tag(msg_p->group_id, msg_p->id_array, id_length);
                    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_ADD_TAG);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vr_abort_req_hdlr
 * DESCRIPTION
 *  vr abort a session
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vr_abort_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

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

    if (vr_ctx.state != AUD_VR_STATE_IDLE)
    {
        switch (vr_ctx.mode)
        {
            case MED_VR_ISD_MODE:
                aud_vr_sd_abort();
                break;
            case MED_VR_CSI_MODE:
                break;
            case MED_VR_PSI_MODE:
                break;
            default:
                break;
        }
    }

    AUD_SET_EVENT(AUD_EVT_VR_ABORT);
}

#endif /* __MED_VR_MOD__ */ 

#endif /* MED_NOT_PRESENT */ 

⌨️ 快捷键说明

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