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

📄 aud_vrsi_main.c

📁 最新MTK手机软件源码
💻 C
📖 第 1 页 / 共 5 页
字号:
/*****************************************************************************
 * FUNCTION
 *  aud_vrsi_process_ind_hdlr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vrsi_process_ind_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vrsi_process_ind_struct *msg_p = (media_vrsi_process_ind_struct*) ilm_ptr->local_para_ptr;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (vrsi_ctx.state != MED_AUD_VRSI_STATE_PROCESS)
    {
        return;
    }

    switch (msg_p->proc_type)
    {
        case VRSI_PROCESS:
            VRSI_Process();
            break;
        case VRSI_RECOG_MPR:
            aud_send_vrsi_rcg_prompt_req(MOD_MMI, vrsi_ctx.session_id, MED_VRSI_CMD_RCG_PROMPT);
            break;
        case VRSI_RECOG_OK:
            vrsi_ctx.state = MED_AUD_VRSI_STATE_READY;
            VRSI_ReadResult((void **)&(vrsi_ctx.recog_result));
            vrsi_ctx.session_on = KAL_FALSE;
            aud_send_vrsi_rcg_result_ind(MOD_MMI, vrsi_ctx.session_id, vrsi_ctx.recog_result->resType);
            break;
        case VRSI_DIGIT_RECOG_MPR:
            aud_send_vrsi_rcg_prompt_req(MOD_MMI, vrsi_ctx.session_id, MED_VRSI_DGT_RCG_PROMPT);
            break;
        case VRSI_DIGIT_RECOG_OK:
            vrsi_ctx.state = MED_AUD_VRSI_STATE_READY;
            VRSI_ReadResult((void **)&(vrsi_ctx.dgt_rcg_result));
            vrsi_ctx.session_on = KAL_FALSE;
            aud_send_vrsi_rcg_result_ind(MOD_MMI, vrsi_ctx.session_id, 0);
            break;
        case VRSI_DIGIT_ADAPT_MPR:
            VRSI_ReadPrompt(&vrsi_ctx.pmp_len, &vrsi_ctx.pmp_text);
            aud_send_vrsi_trn_prompt_req(MOD_MMI, vrsi_ctx.session_id, MED_VRSI_1ST_DGT_ADP_PROMPT);
            break;
        case VRSI_DIGIT_ADAPT_OK:
            vrsi_ctx.state = MED_AUD_VRSI_STATE_READY;
            vrsi_ctx.session_on = KAL_FALSE;
            aud_send_vrsi_trn_result_ind(MOD_MMI, vrsi_ctx.session_id, 0);
            break;
        case VRSI_TRAIN_TAG_1ST_MPR:
            aud_send_vrsi_trn_prompt_req(MOD_MMI, vrsi_ctx.session_id, MED_VRSI_1ST_TRN_PROMPT);
            break;
        case VRSI_TRAIN_TAG_2ND_MPR:
            aud_send_vrsi_trn_prompt_req(MOD_MMI, vrsi_ctx.session_id, MED_VRSI_2ND_TRN_PROMPT);
            break;
        case VRSI_TRAIN_TAG_OK:
            vrsi_ctx.state = MED_AUD_VRSI_STATE_READY;
            vrsi_ctx.session_on = KAL_FALSE;
            aud_send_vrsi_trn_result_ind(MOD_MMI, vrsi_ctx.session_id, vrsi_ctx.tag_param.tagID);
            break;
        case VRSI_ADD_TAGS_OK:
            vrsi_ctx.state = MED_AUD_VRSI_STATE_READY;
            vrsi_ctx.session_on = KAL_FALSE;
            aud_vrsi_save_addtags_result();
            aud_set_result(MED_RES_OK);
            VRSI_SET_EVENT(VRSI_EVT_ADD_TAGS);
            break;
        case VRSI_TTS_OK:
            vrsi_ctx.state = MED_AUD_VRSI_STATE_READY;
            vrsi_ctx.session_on = KAL_FALSE;
            aud_send_vrsi_play_tts_finish_ind(MOD_MMI, vrsi_ctx.session_id);
            break;
        case VRSI_PLAY_TAG_OK:
            vrsi_ctx.state = MED_AUD_VRSI_STATE_READY;
            vrsi_ctx.session_on = KAL_FALSE;
            aud_send_vrsi_play_tag_finish_ind(MOD_MMI, vrsi_ctx.session_id);
            break;
        case VRSI_ERROR:
            vrsi_ctx.state = MED_AUD_VRSI_STATE_READY;
            vrsi_ctx.session_on = KAL_FALSE;
            aud_send_vrsi_err_ind(MOD_MMI, vrsi_ctx.session_id);
            break;
    }
}

/* play */


/*****************************************************************************
 * FUNCTION
 *  aud_vrsi_play_tag_req_hdlr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vrsi_play_tag_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vrsi_play_tag_req_struct *msg_p = (media_vrsi_play_tag_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (!vrsi_ctx.session_on || vrsi_ctx.session_id != msg_p->session_id)
    {
        result = MED_RES_VRSI_ERR_SESSION;
    }
    else
    {
        SET_CURRENT_VOLUME_LEVEL(AUD_VOLUME_MEDIA, msg_p->volume);
        aud_set_active_ring_tone_volume();

        aud_context_p->melody_output_device = msg_p->output_path;
        aud_get_active_device_path_by_mode(msg_p->output_path, aud_melody_set_output_device);

        vrsi_ctx.grammar = msg_p->grammar;

        result = aud_vrsi_play_tag(msg_p->tag_id);
    }

    aud_set_result(result);
    VRSI_SET_EVENT(VRSI_EVT_PLAY_TAG);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vrsi_play_tts_req_hdlr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vrsi_play_tts_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vrsi_play_tts_req_struct *msg_p = (media_vrsi_play_tts_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (!vrsi_ctx.session_on || vrsi_ctx.session_id != msg_p->session_id)
    {
        result = MED_RES_VRSI_ERR_SESSION;
    }
    else
    {
        SET_CURRENT_VOLUME_LEVEL(AUD_VOLUME_MEDIA, msg_p->volume);
        aud_set_active_ring_tone_volume();

        aud_context_p->melody_output_device = msg_p->output_path;
        aud_get_active_device_path_by_mode(msg_p->output_path,aud_melody_set_output_device);

        vrsi_ctx.pmp_text = msg_p->text;
        result = aud_vrsi_play_tts(msg_p->lang);
    }

    aud_set_result(result);
    VRSI_SET_EVENT(VRSI_EVT_PLAY_TTS);
}

/* database maagement : ok */


/*****************************************************************************
 * FUNCTION
 *  aud_vrsi_get_tagnum_req_hdlr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vrsi_get_tagnum_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vrsi_get_tagnum_req_struct *msg_p = (media_vrsi_get_tagnum_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (vrsi_ctx.session_on)
    {
        result = MED_RES_VRSI_ERR_BUSY;
    }
    else
    {
        vrsi_ctx.grammar = msg_p->grammar;
        result = aud_vrsi_get_tagnum(msg_p->tag_num);
    }

    aud_set_result(result);
    VRSI_SET_EVENT(VRSI_EVT_GET_TAG_NUM);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vrsi_get_taginfo_req_hdlr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vrsi_get_taginfo_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vrsi_get_taginfo_req_struct *msg_p = (media_vrsi_get_taginfo_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (vrsi_ctx.session_on)
    {
        result = MED_RES_VRSI_ERR_BUSY;
    }
    else
    {
        vrsi_ctx.grammar = msg_p->grammar;

        result = aud_vrsi_get_tag_info(msg_p->tag_num, msg_p->id_list, msg_p->name_list, msg_p->long_list);
    }

    aud_set_result(result);
    VRSI_SET_EVENT(VRSI_EVT_GET_TAG_INFO);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vrsi_del_tags_req_hdlr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vrsi_del_tags_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vrsi_del_tags_req_struct *msg_p = (media_vrsi_del_tags_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (vrsi_ctx.session_on)
    {
        result = MED_RES_VRSI_ERR_BUSY;
    }
    else
    {
        vrsi_ctx.grammar = msg_p->grammar;

        result = aud_vrsi_del_tags(msg_p->tag_num, msg_p->id_list);
    }

    aud_set_result(result);
    VRSI_SET_EVENT(VRSI_EVT_DEL_TAGS);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vrsi_reset_tags_req_hdlr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vrsi_reset_tags_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vrsi_reset_tags_req_struct *msg_p = (media_vrsi_reset_tags_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (vrsi_ctx.session_on)
    {
        result = MED_RES_VRSI_ERR_BUSY;
    }
    else
    {
        vrsi_ctx.grammar = msg_p->grammar;

        result = aud_vrsi_reset_tags();
    }

    aud_set_result(result);
    VRSI_SET_EVENT(VRSI_EVT_RESET_TAGS);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vrsi_sync_db_req_hdlr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vrsi_sync_db_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_vrsi_sync_db_req_struct *msg_p = (media_vrsi_sync_db_req_struct*) ilm_ptr->local_para_ptr;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (vrsi_ctx.session_on)
    {
        result = MED_RES_VRSI_ERR_BUSY;
    }
    else
    {
        vrsi_ctx.grammar = msg_p->grammar;
        if (msg_p->name_list == NULL)

⌨️ 快捷键说明

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