// ==========================================================================
//
// 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;
	}
}