// ==========================================================================
//
// Function Name: csl_audvoc_render_start
//
// Description: Start the data transfer of audio path render
//
// =========================================================================
Result_t csl_audio_render_start ( UInt32 streamID )
{
	CSL_AUDVOC_Drv_t	*audDrv = NULL;
	AUDDRV_InOut_Enum_t input_path_to_mixer = AUDDRV_AUDIO_OUTPUT;
	
	Log_DebugPrintf(LOGID_SOC_AUDIO, "csl_audvoc_render_start:: streamID = %d\n", streamID);

	audDrv = GetDriverByType (streamID);

	if (audDrv == NULL)
		return RESULT_ERROR;	
	
	if(OSDAL_DMA_Start_Transfer(audDrv->dmaCH) != OSDAL_ERR_OK)
	{
		Log_DebugPrintf(LOGID_SOC_AUDIO, "csl_audvoc_render_start::Error, Start transfer failed.\n");
	}

	if (streamID == CSL_AUDVOC_STREAM_POLYRINGER)
		input_path_to_mixer = AUDDRV_RINGTONE_OUTPUT;
	
	AUDDRV_EnableHWOutput (
			input_path_to_mixer,
			AUDDRV_SPKR_NONE,  //this param bears no meaning in this context.
			FALSE,	//this param bears no meaning in this context.
			AUDIO_SAMPLING_RATE_UNDEFINED,  //this param bears no meaning in this context.
			AUDIO_CHANNEL_STEREO,
			AUDDRV_REASON_DATA_DRIVER
       );

	return RESULT_OK;
}
// ==========================================================================
//
// Function Name: csl_audvoc_capture_start
//
// Description: Start the data transfer of the audio path capture
//
// =========================================================================
Result_t csl_audio_capture_start( UInt32 streamID )
{
	CSL_AUDVOC_Drv_t	*audDrv = NULL;
	Log_DebugPrintf(LOGID_SOC_AUDIO, "csl_audvoc_capture_start:: DMA streamID = %d\n", streamID);

	audDrv = GetDriverByType (streamID);

	if (audDrv == NULL)
		return RESULT_ERROR;	
	
	if(OSDAL_DMA_Start_Transfer(audDrv->dmaCH) != OSDAL_ERR_OK)
	{
		Log_DebugPrintf(LOGID_SOC_AUDIO, "csl_audvoc_capture_start::Error, Start transfer failed.\n");
	}

	if (streamID == CSL_AUDVOC_STREAM_BTW)
	{
		Log_DebugPrintf(LOGID_AUDIO, "csl_audio_capture_start BT wb tap \n");
	
		AUDDRV_Enable_MixerTap ( AUDDRV_MIXERTap_WB_INPUT, 
			AUDDRV_SPKR_NONE,   ////this param bears no meaning in this context.
			AUDDRV_SPKR_NONE,   ////this param bears no meaning in this context.
			AUDIO_SAMPLING_RATE_UNDEFINED,  //this param bears no meaning in this context
			AUDDRV_REASON_DATA_DRIVER
			);
	}
	else
	{
		AUDDRV_EnableHWInput ( AUDDRV_AUDIO_INPUT, 
			AUDDRV_MIC_NONE,    //this param bears no meaning in this context.
			AUDIO_SAMPLING_RATE_UNDEFINED,  //this param bears no meaning in this context.
			AUDDRV_REASON_DATA_DRIVER
		   );
	}

	return RESULT_OK;
}