Exemple #1
0
int ZyxAudioOpen(PU8 audio_buf,int size,ZYX_MEDIA_TYPE format, ZyxAudioHandler cb)

{
    if (audio_buf == NULL)
        return -1;

    ZyxTrace("ZyxAudioOpen 1\n");
    mdi_audio_stop_all();
    ZyxTrace("ZyxAudioOpen 2\n");
    //mute bug???
    DM_SetAudioVolume(zma.volume);
    MusicStartAudioMode();
    ZyxTrace("ZyxAudioOpen 3\n");

    ZyxTrace("zyx audio buf=%x,size=%d",audio_buf, size);
    if (pzma)
    {
        ZyxTrace("zyx stop audio first");
        return -1;
    }

    if (NULL == pzma)
    {
        ZyxAudioHandlerCallback = cb;
        switch (format)
        {
        case ZYX_AUDIO_FORMAT_AAC:
            pzma = &zma;
            pzma->format = ZYX_AUDIO_FORMAT_AAC;
            break;
        case ZYX_AUDIO_FORMAT_AMR:
            pzma = &zma;
            pzma->format = ZYX_AUDIO_FORMAT_AMR;
            break;
        default:
            return -1;
            break;
        }

        ZyxTrace("zyx pzma = 0x%x", pzma);
        if (pzma)
        {
            pzma->current_time = 0;
            pzma->start_time = 0;
            pzma->stat = AAC_STATE_STOP;
            Media_SetBuffer((U16*)audio_buf, (U32)size/2);
        }
    }

    return 0;
}
/*****************************************************************************
 * FUNCTION
 *  mmi_fmsr_power_on
 * DESCRIPTION
 *  Power on the FM radio and playing
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_fmsr_power_on(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (g_fmsr_cntx.rec.state != FMSR_STATE_IDLE)
    {
        /* Enter error screen */
        return;
    }
#ifdef __MMI_BACKGROUND_CALL__
    if (srv_ucm_is_background_call())
    {
        return;
    }
#endif /* __MMI_BACKGROUND_CALL__ */ 

    if (!mdi_check_device_ownership())
    {
        /* Enter error screen */
        return;
    }
    else
    {
        /* Stop all aduo and begin to record */
        mdi_audio_stop_all();

        mdi_audio_set_volume(AUD_VOLUME_FMR, g_fmsr_cntx.rec.volume);
        mdi_fmr_power_on_with_path(
            MDI_DEVICE_SPEAKER_BOTH /* MDI_DEVICE_SPEAKER2 */ ,
            (mdi_ext_callback) mmi_fmsr_mdi_callback,
            NULL);
        mdi_fmr_set_freq(g_fmsr_cntx.rec.freqency);
        g_fmsr_cntx.rec.state = FMSR_STATE_READY;
    }
}