// ========================================================================== // // Function Name: csl_audvoc_capture_stop // // Description: Stop the data transfer of the audio path capture // // ========================================================================= Result_t csl_audio_capture_stop( UInt32 streamID ) { CSL_AUDVOC_Drv_t *audDrv = NULL; Log_DebugPrintf(LOGID_AUDIO, " csl_audvoc_capture_stop:: DMA streamID = %d\n", streamID); audDrv = GetDriverByType (streamID); if (audDrv == NULL) return RESULT_ERROR; if(OSDAL_DMA_Stop_Transfer(audDrv->dmaCH) != OSDAL_ERR_OK) { Log_DebugPrintf(LOGID_AUDIO, "csl_audvoc_capture_stop::Error, Stop transfer failed.\n"); } if (streamID == CSL_AUDVOC_STREAM_AUDIO) { AUDDRV_DisableHWInput ( AUDDRV_AUDIO_INPUT, AUDDRV_REASON_DATA_DRIVER ); } else if (streamID == CSL_AUDVOC_STREAM_BTW) { AUDDRV_Disable_MixerTap ( AUDDRV_MIXERTap_WB_INPUT, AUDDRV_REASON_DATA_DRIVER ); } return RESULT_OK; }
void AUDDRV_Disable_Input ( AUDDRV_InOut_Enum_t path ) { switch(path) { case AUDDRV_VOICE_INPUT: Log_DebugPrintf(LOGID_AUDIO, "\n\r\t* AUDDRV_Disable_Input *\n\r" ); if(inVoiceCall != TRUE) { if ( voicePlayOutpathEnabled == FALSE ) { //if inVoiceCall== TRUE, assume the telphony_init() function sends ENABLE and CONNECT_UL audio_control_dsp(DSPCMD_TYPE_AUDIO_ENABLE, 0, 0, 0, 0, 0 ); audio_control_dsp(DSPCMD_TYPE_AUDIO_CONNECT_UL, FALSE, 0, 0, 0, 0); } if (currVoiceMic == AUDDRV_MIC_PCM_IF) //turn off PCM { currVoiceMic = AUDDRV_MIC_NONE; if (currVoiceSpkr != AUDDRV_SPKR_PCM_IF) //turn off PCM { VPRIPCMDQ_DigitalSound( FALSE ); } } //else, no need to care PCM i/f. OSTASK_Sleep( 3 ); //make sure audio is done currVoiceMic = AUDDRV_MIC_NONE; } voiceInPathEnabled = FALSE; AUDDRV_DisableHWInput ( path, AUDDRV_REASON_HW_CTRL ); break; default: AUDDRV_DisableHWInput ( path, AUDDRV_REASON_HW_CTRL ); break; } }