sl@0: // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0: // All rights reserved.
sl@0: // This component and the accompanying materials are made available
sl@0: // under the terms of "Eclipse Public License v1.0"
sl@0: // which accompanies this distribution, and is available
sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0: //
sl@0: // Initial Contributors:
sl@0: // Nokia Corporation - initial contribution.
sl@0: //
sl@0: // Contributors:
sl@0: //
sl@0: // Description:
sl@0: //
sl@0: 
sl@0: /**
sl@0:  @publishedPartner
sl@0:  @released
sl@0: */
sl@0: 
sl@0: #ifndef __TASKCONFIG_H__
sl@0: #define __TASKCONFIG_H__
sl@0: 
sl@0: /**
sl@0: @publishedPartner
sl@0: @released
sl@0: 
sl@0: TTaskSampleRate is a member of TTaskConfig which tells the HwDevice plugin the sample
sl@0: rate of the audio data.
sl@0: */
sl@0: enum TTaskSampleRate
sl@0: 	{
sl@0:   	/** 8000 Hz Sampling Rate
sl@0: 	*/
sl@0: 	ETask8000Hz  = 0x00000001,
sl@0:   	/** 11025 Hz Sampling Rate
sl@0: 	*/
sl@0: 	ETask11025Hz = 0x00000002,
sl@0:   	/** 16000 Hz Sampling Rate
sl@0: 	*/
sl@0: 	ETask16000Hz = 0x00000004,
sl@0:   	/** 22050 Hz Sampling Rate
sl@0: 	*/
sl@0: 	ETask22050Hz = 0x00000008,
sl@0:   	/** 32000 Hz Sampling Rate
sl@0: 	*/
sl@0: 	ETask32000Hz = 0x00000010,
sl@0:   	/** 44100 Hz Sampling Rate
sl@0: 	*/
sl@0: 	ETask44100Hz = 0x00000020,
sl@0:   	/** 48000 Hz Sampling Rate
sl@0: 	*/
sl@0: 	ETask48000Hz = 0x00000040,
sl@0:   	/** 88200 Hz Sampling Rate
sl@0: 	*/
sl@0: 	ETask88200Hz = 0x00000080,
sl@0:   	/** 96000 Hz Sampling Rate
sl@0: 	*/
sl@0: 	ETask96000Hz = 0x00000100,
sl@0:   	/** 12000 Hz Sampling Rate
sl@0: 	*/
sl@0: 	ETask12000Hz = 0x00000200,
sl@0:   	/** 24000 Hz Sampling Rate
sl@0: 	*/
sl@0: 	ETask24000Hz = 0x00000400,
sl@0: 	/** 64000 Hz Sampling Rate
sl@0: 	*/
sl@0: 	ETask64000Hz = 0x00000800
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedPartner
sl@0: @released
sl@0: 
sl@0: TTaskStereoMode is a member of TTaskConfig which tells the HwDevice plugin whether stereo audio
sl@0: data is interleaved or not.
sl@0: */
sl@0: enum TTaskStereoMode
sl@0: 	{
sl@0:   	/** Audio data is mono.
sl@0: 	*/
sl@0: 	ETaskMono			= 0x00000001,
sl@0:   	/** Audio data is interleaved.
sl@0: 	*/
sl@0: 	ETaskInterleaved	= 0x00000002,
sl@0:   	/** Audio data is non-interleaved.
sl@0: 	*/
sl@0: 	ETaskNonInterleaved	= 0x00000004
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedPartner
sl@0: @released
sl@0: 
sl@0: Used by the SetConfig() method to configure the sample rate and stereo mode of a CMMFHwDevice 
sl@0: plugin. The configuration of HwDevices is device specific.
sl@0: */
sl@0: class TTaskConfig
sl@0: 	{
sl@0: 	public:
sl@0: 		/** The rate of the audio data.
sl@0: 
sl@0: 		@see TTaskSampleRate
sl@0: 	    */
sl@0: 		TInt iRate;
sl@0: 		/** The type of stereo audio data.
sl@0: 
sl@0: 		@see TTaskStereoMode
sl@0: 		*/
sl@0: 		TInt iStereoMode;
sl@0: 		/** Uid for this TTaskConfig struct
sl@0: 		*/
sl@0: 		TInt iUid;
sl@0: 	};
sl@0: 	
sl@0: /**
sl@0: @publishedPartner
sl@0: @released
sl@0: 
sl@0: Extended version of TTaskConfig used by the SetConfig() method to configure the sample rate, 
sl@0: stereo mode and number of channels of a CMdfHwDevice plugin. The configuration of HwDevices 
sl@0: is device specific.
sl@0: */	
sl@0: class TTaskConfig2 : public TTaskConfig
sl@0: 	{
sl@0: public:
sl@0: 	/** 
sl@0: 	The number of channels.
sl@0: 	*/
sl@0: 	TInt iNumberOfChannels;
sl@0: 	};	
sl@0: 
sl@0: #endif
sl@0: