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

📄 aud_mma.c

📁 最新MTK手机软件源码
💻 C
📖 第 1 页 / 共 5 页
字号:
            }
            break;
        }
        case MMA_TYPE_IMY:
            player_p = &(aud_context_p->player[MMA_PLAYER_IMY]);
            if (player_p->used && player_p->handle == handle)
            {
                status = JImy_Resume((Media_Handle*) handle);
                result = (med_result_enum) aud_get_res((kal_uint8) status);
            }
            break;
        #ifdef MMA_AMR_SUPPORT
        case MMA_TYPE_AMR:
            player_p = &(aud_context_p->player[MMA_PLAYER_AMR]);
            if (player_p->used && player_p->handle == handle)
            {
                status = JAmr_Resume((Media_Handle*) handle);
                result = (med_result_enum) aud_get_res((kal_uint8) status);
            }
            break;
        #endif /* MMA_AMR_SUPPORT */ 
        #ifdef DAF_DECODE
        case MMA_TYPE_DAF:
        {
            player_p = &(aud_context_p->player[MMA_PLAYER_DAF]);
            if (player_p->used && player_p->handle == handle)
            {
                status = Media_Resume();
                result = (med_result_enum) aud_get_res((kal_uint8) status);
            }
            break;
        }
        #endif /* DAF_DECODE */ 
    #ifdef AAC_DECODE
        case MMA_TYPE_AAC:
        {
            player_p = &(aud_context_p->player[MMA_PLAYER_AAC]);
            if (player_p->used && player_p->handle == handle)
            {
                status = Media_Resume();
                result = (med_result_enum) aud_get_res((kal_uint8) status);
            }
            break;
        }
    #endif /* AAC_DECODE */ 
        case MMA_TYPE_AU:
        {
            player_p = &(aud_context_p->player[MMA_PLAYER_AU]);
            if (player_p->used && player_p->handle == handle)
            {
                status = Media_Resume();
                result = (med_result_enum) aud_get_res((kal_uint8) status);
            }
            break;
        }
        default:
            ASSERT(0);
            result = MED_RES_ERROR;
            break;
    }
    mma_set_status(result);
    MMA_SET_EVENT(MMA_EVT_RESUME);

}


/*****************************************************************************
 * FUNCTION
 *  aud_mma_set_start_time_req_hdlr
 * DESCRIPTION
 *  This function is to set the start time of the media.
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_mma_set_start_time_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_mma_set_start_time_req_struct *req_p;
    Media_Status status = MEDIA_FAIL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (aud_context_p->access_mod != ilm_ptr->src_mod_id)
    {
        mma_set_status(MED_RES_BLOCKED);
        MMA_SET_EVENT(MMA_EVT_SET_START_TIME);
        return;
    }

    req_p = (media_mma_set_start_time_req_struct*) ilm_ptr->local_para_ptr;

    switch (req_p->media_type)
    {
        case MMA_TYPE_MIDI:
            status = JSmf_SetStartTime((Media_Handle*) req_p->handle, req_p->start_time);
            break;
        case MMA_TYPE_TONE:
            status = JTone_SetStartTime((Media_Handle*) req_p->handle, req_p->start_time);
            break;
        case MMA_TYPE_WAV:
            status = JWav_SetStartTime((Media_Handle*) req_p->handle, req_p->start_time);
            break;
        case MMA_TYPE_IMY:
            status = JImy_SetStartTime((Media_Handle*) req_p->handle, req_p->start_time);
            break;
    #ifdef MMA_AMR_SUPPORT
        case MMA_TYPE_AMR:
            status = JAmr_SetStartTime((Media_Handle*) req_p->handle, req_p->start_time);
            break;
    #endif /* MMA_AMR_SUPPORT */ 
    }
    mma_set_status((kal_int32) aud_get_res((kal_uint8) status));
    MMA_SET_EVENT(MMA_EVT_SET_START_TIME);

}


/*****************************************************************************
 * FUNCTION
 *  aud_mma_set_stop_time_req_hdlr
 * DESCRIPTION
 *  This function is to set the stop time of the media.
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_mma_set_stop_time_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_mma_set_stop_time_req_struct *req_p;
    Media_Status status = MEDIA_FAIL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (aud_context_p->access_mod != ilm_ptr->src_mod_id)
    {
        mma_set_status(MED_RES_BLOCKED);
        MMA_SET_EVENT(MMA_EVT_SET_STOP_TIME);
        return;
    }

    req_p = (media_mma_set_stop_time_req_struct*) ilm_ptr->local_para_ptr;

    switch (req_p->media_type)
    {
        case MMA_TYPE_MIDI:
            status = JSmf_SetStopTime((Media_Handle*) req_p->handle, req_p->stop_time);
            break;
        case MMA_TYPE_TONE:
            status = JTone_SetStopTime((Media_Handle*) req_p->handle, req_p->stop_time);
            break;
        case MMA_TYPE_WAV:
            status = JWav_SetStopTime((Media_Handle*) req_p->handle, req_p->stop_time);
            break;
        case MMA_TYPE_IMY:
            status = JImy_SetStopTime((Media_Handle*) req_p->handle, req_p->stop_time);
            break;
    #ifdef MMA_AMR_SUPPORT
        case MMA_TYPE_AMR:
            status = JAmr_SetStopTime((Media_Handle*) req_p->handle, req_p->stop_time);
            break;
    #endif /* MMA_AMR_SUPPORT */ 
    }
    mma_set_status((kal_int32) aud_get_res((kal_uint8) status));
    MMA_SET_EVENT(MMA_EVT_SET_STOP_TIME);
}


/*****************************************************************************
 * FUNCTION
 *  aud_mma_set_rate_req_hdlr
 * DESCRIPTION
 *  This function is to set the rate of the media.
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_mma_set_rate_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_mma_set_rate_req_struct *req_p;
    Media_Status status = MEDIA_FAIL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (aud_context_p->access_mod != ilm_ptr->src_mod_id)
    {
        mma_set_status(MED_RES_BLOCKED);
        MMA_SET_EVENT(MMA_EVT_SET_RATE);
        return;
    }

    req_p = (media_mma_set_rate_req_struct*) ilm_ptr->local_para_ptr;

    switch (req_p->media_type)
    {
        case MMA_TYPE_MIDI:
            status = JMidi_SetRate((Media_Handle*) req_p->handle, req_p->rate);
            break;
        case MMA_TYPE_TONE:
        case MMA_TYPE_WAV:
            break;

    }
    mma_set_status((kal_int32) aud_get_res((kal_uint8) status));
    MMA_SET_EVENT(MMA_EVT_SET_RATE);
}


/*****************************************************************************
 * FUNCTION
 *  aud_mma_set_tempo_req_hdlr
 * DESCRIPTION
 *  This function is to set the tempo of the media.
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_mma_set_tempo_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_mma_set_tempo_req_struct *req_p;
    Media_Status status = MEDIA_FAIL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (aud_context_p->access_mod != ilm_ptr->src_mod_id)
    {
        mma_set_status(MED_RES_BLOCKED);
        MMA_SET_EVENT(MMA_EVT_SET_TEMPO);
        return;
    }

    req_p = (media_mma_set_tempo_req_struct*) ilm_ptr->local_para_ptr;

    status = JMidi_SetTempo((Media_Handle*) req_p->handle, req_p->tempo);
    mma_set_status((kal_int32) aud_get_res((kal_uint8) status));
    MMA_SET_EVENT(MMA_EVT_SET_TEMPO);
}


/*****************************************************************************
 * FUNCTION
 *  aud_mma_set_pitch_req_hdlr
 * DESCRIPTION
 *  This function is to set the pitch of the media.
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_mma_set_pitch_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_mma_set_pitch_req_struct *req_p;
    Media_Status status = MEDIA_FAIL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (aud_context_p->access_mod != ilm_ptr->src_mod_id)
    {
        mma_set_status(MED_RES_BLOCKED);
        MMA_SET_EVENT(MMA_EVT_SET_PITCH);
        return;
    }

    req_p = (media_mma_set_pitch_req_struct*) ilm_ptr->local_para_ptr;

    switch (req_p->media_type)
    {
        case MMA_TYPE_MIDI:
            status = JMidi_SetPitchTranspose((Media_Handle*) req_p->handle, req_p->pitch);
            break;
        case MMA_TYPE_TONE:
            status = JTone_SetPitchShift((Media_Handle*) req_p->handle, (kal_int8) req_p->pitch);
            break;
        case MMA_TYPE_WAV:
            break;

    }
    mma_set_status((kal_int32) aud_get_res((kal_uint8) status));
    MMA_SET_EVENT(MMA_EVT_SET_PITCH);

}


/*****************************************************************************
 * FUNCTION
 *  aud_mma_set_volume_req_hdlr
 * DESCRIPTION
 *  This function is to set the volume of the media.
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_mma_set_volume_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    media_mma_set_volume_req_struct *req_p;
    Media_Status status = MEDIA_FAIL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (aud_context_p->access_mod != ilm_ptr->src_mod_id)
    {
        mma_set_status(MED_RES_BLOCKED);
        MMA_SET_EVENT(MMA_EVT_SET_VOLUME);
        return;
    }

    req_p = (media_mma_set_volume_req_struct*) ilm_ptr->local_para_ptr;

    switch (req_p->media_type)
    {
        case MMA_TYPE_MIDI:
            status = JMidi_SetLevel((Media_Handle*) req_p->handle, req_p->volume);
            break;
        case MMA_TYPE_TONE:
            status = JTone_SetLevel((Media_Handle*) req_p->handle, req_p->volume);
            break;
        case MMA_TYPE_WAV:
            status = JWav_SetLevel((Media_Handle*) req_p->handle, req_p->volume);
            break;
        case MMA_TYPE_IMY:
            status = JImy_SetLevel((Media_Handle*) req_p->handle, req_p->volume);
            break;
    #ifdef MMA_AMR_SUPPORT
        case MMA_TYPE_AMR:
            status = JAmr_SetLevel((Media_Handle*) req_p->handle, req_p->volume);
            break;
    #endif /* MMA_AMR_SUPPORT */ 
    }
    mma_set_status((kal_int32) aud_get_res((kal_uint8) status));
    MMA_SET_EVENT(MMA_EVT_SET_VOLUME);

}


/*****************************************************************************
 * FUNCTION
 *  aud_mma_send_long_msg_req_hdlr
 * DESCRIPTION
 *  This function is to send long msg of the media.
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_mma_send_long_msg_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------

⌨️ 快捷键说明

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