os/mm/devsound/devsoundpluginsupport/inc/plugin/devsoundplugin.h
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/mm/devsound/devsoundpluginsupport/inc/plugin/devsoundplugin.h	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,527 @@
     1.4 +
     1.5 +// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.6 +// All rights reserved.
     1.7 +// This component and the accompanying materials are made available
     1.8 +// under the terms of "Eclipse Public License v1.0"
     1.9 +// which accompanies this distribution, and is available
    1.10 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
    1.11 +//
    1.12 +// Initial Contributors:
    1.13 +// Nokia Corporation - initial contribution.
    1.14 +//
    1.15 +// Contributors:
    1.16 +//
    1.17 +// Description:
    1.18 +//
    1.19 +
    1.20 +/**
    1.21 + @file
    1.22 + @publishedPartner
    1.23 + @released
    1.24 +*/
    1.25 +
    1.26 +#ifndef DEVSOUNDPLUGIN_H
    1.27 +#define DEVSOUNDPLUGIN_H
    1.28 +
    1.29 +_LIT8(KDevSoundPluginMatchString, "*"); // ECom insists on something
    1.30 +
    1.31 +/**
    1.32 +Interface class used in the plugin implementation of DevSound.
    1.33 +The CMMFDevSound implementation loads a plugin based on this interface class. 
    1.34 +Once this has been constructed, calls to method functions of CMMFDevSound are passed
    1.35 +verbatim to this interface. For further description of required functionality, 
    1.36 +see CMMFDevSound.
    1.37 +
    1.38 +@see CMMFDevSound
    1.39 +*/
    1.40 +
    1.41 +class MMMFDevSoundPlugin
    1.42 +	{
    1.43 +public:
    1.44 +	/**	
    1.45 +	This must provide an implementation as defined by CMMFDevSound::~CMMFDevSound()
    1.46 +	
    1.47 +	@see CMMFDevSound::~CMMFDevSound()
    1.48 +	*/
    1.49 +	virtual ~MMMFDevSoundPlugin() {}
    1.50 +
    1.51 +	/**
    1.52 +	This must provide an implementation as defined by 
    1.53 +	CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TMMFState aMode)
    1.54 +	
    1.55 +	@param  aDevSoundObserver
    1.56 +	        A reference to DevSound Observer instance.
    1.57 +	@param  aMode
    1.58 +	        The mode for which this object will be used.
    1.59 +	        
    1.60 +	@see CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TMMFState aMode)
    1.61 +	*/
    1.62 +    virtual void InitializeL(MDevSoundObserver& aDevSoundObserver, TMMFState aMode)=0;
    1.63 +
    1.64 +
    1.65 +	/**
    1.66 +	This must provide an implementation as defined by 
    1.67 +	CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TUid aHWDev, TMMFState aMode)
    1.68 +	
    1.69 +	@param  aDevSoundObserver
    1.70 +	        A reference to DevSound Observer instance.
    1.71 +	@param  aHWDev
    1.72 +	        The CMMFHwDevice implementation identifier.
    1.73 +	@param  aMode
    1.74 +	        The mode for which this object will be used.
    1.75 +	        
    1.76 +	@see CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TUid aHWDev, TMMFState aMode)
    1.77 +	*/
    1.78 +	virtual void InitializeL(MDevSoundObserver& aDevSoundObserver, TUid aHWDev, TMMFState aMode)=0;
    1.79 +
    1.80 +	/**
    1.81 +	This must provide an implementation as defined by 
    1.82 +	CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TFourCC aDesiredFourCC, TMMFState aMode)
    1.83 +
    1.84 +	@param  aDevSoundObserver
    1.85 +	        A reference to DevSound Observer instance.
    1.86 +	@param  aDesiredFourCC
    1.87 +	        The CMMFHwDevice implementation FourCC code.
    1.88 +	@param  aMode
    1.89 +	        The mode for which this object will be used.
    1.90 +	        
    1.91 +	@see CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TFourCC aDesiredFourCC, TMMFState aMode)
    1.92 +	*/
    1.93 +	virtual void InitializeL(MDevSoundObserver& aDevSoundObserver, TFourCC aDesiredFourCC, TMMFState aMode)=0;
    1.94 +
    1.95 +	/**
    1.96 +	This must provide an implementation as defined by CMMFDevSound::Capabilities()
    1.97 +	
    1.98 +	@return	The device settings.
    1.99 +	
   1.100 +	@see CMMFDevSound::Capabilities()
   1.101 +	*/
   1.102 +	virtual TMMFCapabilities Capabilities()=0;
   1.103 +
   1.104 +	/**
   1.105 +	This must provide an implementation as defined by CMMFDevSound::Config()
   1.106 +	
   1.107 +	@return	The device settings.
   1.108 +	
   1.109 +	@see CMMFDevSound::Config()
   1.110 +	*/
   1.111 +	virtual TMMFCapabilities Config() const=0;
   1.112 +
   1.113 +	/**
   1.114 +	This must provide an implementation as defined by CMMFDevSound::SetConfigL(const TMMFCapabilities& aCaps)
   1.115 +
   1.116 +	@param  aCaps The attribute values to which CMMFDevSound object will be configured to.
   1.117 +	        
   1.118 +	@see CMMFDevSound::SetConfigL(const TMMFCapabilities& aCaps)
   1.119 +	*/
   1.120 +	virtual void SetConfigL(const TMMFCapabilities& aCaps)=0;
   1.121 +
   1.122 +	/**
   1.123 +	This must provide an implementation as defined by CMMFDevSound::MaxVolume()
   1.124 +	
   1.125 +	@return	The maximum volume. This value is platform dependent but is always greater than or equal
   1.126 +	to one.
   1.127 +	
   1.128 +	@see CMMFDevSound::MaxVolume()
   1.129 +	*/
   1.130 +	virtual TInt MaxVolume()=0;
   1.131 +
   1.132 +	/**
   1.133 +	This must provide an implementation as defined by CMMFDevSound::Volume()
   1.134 +	
   1.135 +	@return The current volume level.
   1.136 +		
   1.137 +	@see CMMFDevSound::Volume()
   1.138 +	*/
   1.139 +	virtual TInt Volume()=0;
   1.140 +
   1.141 +	/**
   1.142 +	This must provide an implementation as defined by CMMFDevSound::SetVolume()
   1.143 +	
   1.144 +	@param  aVolume
   1.145 +	        The volume setting. This can be any value from 0 to the value
   1.146 +	        returned by a call to CMMFDevSound::MaxVolume(). If the
   1.147 +	        volume is not within this range, the volume is automatically set to
   1.148 +	        minimum or maximum value based on the value that is being passed.
   1.149 +	        Setting a zero value mutes the sound. Setting the maximum value
   1.150 +	        results in the loudest possible sound.
   1.151 +        
   1.152 +	@see CMMFDevSound::SetVolume()
   1.153 +	*/
   1.154 +	virtual void SetVolume(TInt aVolume)=0;
   1.155 +
   1.156 +	/**
   1.157 +	This must provide an implementation as defined by CMMFDevSound::MaxGain()
   1.158 +	
   1.159 +	@return The maximum gain. This value is platform dependent but is always greater than or equal
   1.160 +	to one.
   1.161 +	
   1.162 +	@see CMMFDevSound::MaxGain()
   1.163 +	*/
   1.164 +	virtual TInt MaxGain()=0;
   1.165 +
   1.166 +	/**
   1.167 +	This must provide an implementation as defined by CMMFDevSound::Gain()
   1.168 +	
   1.169 +	@return The current gain level.
   1.170 +	
   1.171 +	@see CMMFDevSound::Gain()
   1.172 +	*/
   1.173 +	virtual TInt Gain()=0;
   1.174 +
   1.175 +	/**
   1.176 +	This must provide an implementation as defined by CMMFDevSound::SetGain()
   1.177 +	
   1.178 +	@param  aGain
   1.179 +		    The gain setting. This can be any value from zero to the value
   1.180 +		    returned by a call to CMMFDevSound::MaxGain(). If the
   1.181 +		    volume is not within this range, the gain is automatically set to
   1.182 +		    minimum or maximum value based on the value that is being passed.
   1.183 +		    Setting a zero value mutes the sound. Setting the maximum value
   1.184 +		    results in the loudest possible sound.
   1.185 +	@see CMMFDevSound::SetGain()
   1.186 +	*/
   1.187 +	virtual void SetGain(TInt aGain)=0;
   1.188 +
   1.189 +	/**
   1.190 +	This must provide an implementation as defined by 
   1.191 +	CMMFDevSound::GetPlayBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)
   1.192 +	
   1.193 +	@param  aLeftPercentage
   1.194 +	        On return contains the left speaker volume percentage.
   1.195 +	@param  aRightPercentage
   1.196 +	        On return contains the right speaker volume percentage.
   1.197 +	        
   1.198 +	@see CMMFDevSound::GetPlayBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)
   1.199 +	*/
   1.200 +	virtual void GetPlayBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)=0;
   1.201 +
   1.202 +	/**
   1.203 +	This must provide an implementation as defined by 
   1.204 +	CMMFDevSound::SetPlayBalanceL(TInt aLeftPercentage, TInt aRightPercentage)
   1.205 +	
   1.206 +	@param  aLeftPercentage
   1.207 +	        On return contains left speaker volume perecentage. This can be any
   1.208 +	        value from zero to 100. Setting a zero value mutes the sound on left
   1.209 +	        speaker.
   1.210 +	@param  aRightPercentage
   1.211 +	        On return contains right speaker volume perecentage. This can be any
   1.212 +	        value from zero to 100. Setting a zero value mutes the sound on
   1.213 +	        right speaker.
   1.214 +	        
   1.215 +	@see CMMFDevSound::SetPlayBalanceL(TInt aLeftPercentage, TInt aRightPercentage)
   1.216 +	*/
   1.217 +	virtual void SetPlayBalanceL(TInt aLeftPercentage, TInt aRightPercentage)=0;
   1.218 +
   1.219 +	/**
   1.220 +	This must provide an implementation as defined by 
   1.221 +	CMMFDevSound::GetRecordBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)
   1.222 +	
   1.223 +	@param  aLeftPercentage
   1.224 +	        On return contains the left microphone gain percentage.
   1.225 +	@param  aRightPercentage
   1.226 +	        On return contains the right microphone gain percentage.
   1.227 +	        
   1.228 +	@see CMMFDevSound::GetRecordBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)
   1.229 +	*/
   1.230 +	virtual void GetRecordBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)=0;
   1.231 +
   1.232 +	/**
   1.233 +	This must provide an implementation as defined by 
   1.234 +	CMMFDevSound::GetRecordBalanceL(TInt aLeftPercentage, TInt aRightPercentage)
   1.235 +	
   1.236 +	@param  aLeftPercentage
   1.237 +	        The left microphone gain precentage. This can be any value from zero to
   1.238 +	        100. Setting a zero value mutes the gain on left microphone.
   1.239 +	@param  aRightPercentage
   1.240 +	        The right microphone gain precentage. This can be any value from zero to
   1.241 +	        100. Setting a zero value mutes the gain on right microphone.
   1.242 +	        
   1.243 +	@see CMMFDevSound::GetRecordBalanceL(TInt aLeftPercentage, TInt aRightPercentage)
   1.244 +	*/
   1.245 +	virtual void SetRecordBalanceL(TInt aLeftPercentage, TInt aRightPercentage)=0;
   1.246 +
   1.247 +	/**
   1.248 +	This must provide an implementation as defined by CMMFDevSound::PlayInitL()
   1.249 +	
   1.250 +	@see CMMFDevSound::PlayInitL()
   1.251 +	*/
   1.252 +	virtual void PlayInitL()=0;
   1.253 +
   1.254 +	/**
   1.255 +	This must provide an implementation as defined by CMMFDevSound::RecordInitL()
   1.256 +
   1.257 +	@see CMMFDevSound::RecordInitL()
   1.258 +	*/
   1.259 +	virtual void RecordInitL()=0;
   1.260 +
   1.261 +	/**
   1.262 +	This must provide an implementation as defined by CMMFDevSound::PlayData()
   1.263 +	
   1.264 +	@see CMMFDevSound::PlayData()
   1.265 +	*/
   1.266 +	virtual void PlayData()=0;
   1.267 +
   1.268 +	/**
   1.269 +	This must provide an implementation as defined by CMMFDevSound::RecordData()
   1.270 +	
   1.271 +	@see CMMFDevSound::RecordData()
   1.272 +	*/
   1.273 +	virtual void RecordData()=0;
   1.274 +
   1.275 +	/**
   1.276 +	This must provide an implementation as defined by CMMFDevSound::Stop()
   1.277 +	
   1.278 +	@see CMMFDevSound::Stop()
   1.279 +	*/
   1.280 +	virtual void Stop()=0;
   1.281 +
   1.282 +	/**
   1.283 +	This must provide an implementation as defined by CMMFDevSound::Pause()
   1.284 +	
   1.285 +	@see CMMFDevSound::Pause()
   1.286 +	*/
   1.287 +	virtual void Pause()=0;
   1.288 +
   1.289 +	/**
   1.290 +	This must provide an implementation as defined by CMMFDevSound::SamplesRecorded()
   1.291 +	
   1.292 +	@return The samples recorded.
   1.293 +	
   1.294 +	@see CMMFDevSound::SamplesRecorded()
   1.295 +	*/
   1.296 +	virtual TInt SamplesRecorded()=0;
   1.297 +
   1.298 +	/**
   1.299 +	This must provide an implementation as defined by CMMFDevSound::SamplesPlayed()
   1.300 +	
   1.301 +	@return The samples played.
   1.302 +	
   1.303 +	@see CMMFDevSound::SamplesPlayed()
   1.304 +	*/
   1.305 +	virtual TInt SamplesPlayed()=0;
   1.306 +
   1.307 +	/**
   1.308 +	This must provide an implementation as defined by 
   1.309 +	CMMFDevSound::PlayToneL(TInt aFrequency, const TTimeIntervalMicroSeconds& aDuration)
   1.310 +	
   1.311 +	@param  aFrequency
   1.312 +	        The frequency at which the tone will be played.
   1.313 +	@param  aDuration
   1.314 +	        The period over which the tone will be played. A zero value causes
   1.315 +	        the no tone to be played.
   1.316 +	        
   1.317 +	@see CMMFDevSound::PlayToneL(TInt aFrequency, const TTimeIntervalMicroSeconds& aDuration)
   1.318 +	*/
   1.319 +	virtual void PlayToneL(TInt aFrequency, const TTimeIntervalMicroSeconds& aDuration)=0;
   1.320 +
   1.321 +	/**
   1.322 +	This must provide an implementation as defined by 
   1.323 +	CMMFDevSound::PlayDualToneL(TInt aFrequencyOne, TInt aFrequencyTwo, const TTimeIntervalMicroSeconds& aDuration)
   1.324 +	
   1.325 +	@param  aFrequencyOne
   1.326 +	        The first frequency of dual tone.
   1.327 +	@param  aFrequencyTwo
   1.328 +	        The second frequency of dual tone
   1.329 +	@param  aDuration
   1.330 +	        The period over which the tone will be played. A zero value causes
   1.331 +	        the no tone to be played (Verify this with test app).
   1.332 +	        
   1.333 +	@see CMMFDevSound::PlayDualToneL(TInt aFrequencyOne, TInt aFrequencyTwo, const TTimeIntervalMicroSeconds& aDuration)
   1.334 +	*/
   1.335 +	virtual void PlayDualToneL(TInt aFrequencyOne, TInt aFrequencyTwo, const TTimeIntervalMicroSeconds& aDuration)=0;
   1.336 +
   1.337 +	/**
   1.338 +	This must provide an implementation as defined by CMMFDevSound::PlayDTMFStringL(const TDesC& aDTMFString)
   1.339 +	
   1.340 +	@param  aDTMFString The DTMF sequence in a descriptor.
   1.341 +	
   1.342 +	@see CMMFDevSound::PlayDTMFStringL(const TDesC& aDTMFString)
   1.343 +	*/
   1.344 +	virtual void PlayDTMFStringL(const TDesC& aDTMFString)=0;
   1.345 +
   1.346 +	/**
   1.347 +	This must provide an implementation as defined by CMMFDevSound::PlayToneSequenceL(const TDesC8& aData)
   1.348 +
   1.349 +	@param  aData The tone sequence in a descriptor.
   1.350 +	
   1.351 +	@see CMMFDevSound::PlayToneSequenceL(const TDesC8& aData)
   1.352 +	*/
   1.353 +	virtual void PlayToneSequenceL(const TDesC8& aData)=0;
   1.354 +
   1.355 +	/**
   1.356 +	This must provide an implementation as defined by CMMFDevSound::PlayFixedSequenceL(TInt aSequenceNumber)
   1.357 +	
   1.358 +	@param  aSequenceNumber
   1.359 +	        The index identifying the specific pre-defined tone sequence. Index
   1.360 +	        values are relative to zero.
   1.361 +	        This can be any value from zero to the value returned by a call to
   1.362 +	        FixedSequenceCount() - 1.
   1.363 +	        The function raises a panic if the sequence number is not within this
   1.364 +	        range.
   1.365 +	        
   1.366 +	@see CMMFDevSound::PlayFixedSequenceL(TInt aSequenceNumber)
   1.367 +	@see FixedSequenceCount()
   1.368 +	*/
   1.369 +	virtual void PlayFixedSequenceL(TInt aSequenceNumber)=0;
   1.370 +
   1.371 +	/**
   1.372 +	This must provide an implementation as defined by 
   1.373 +	CMMFDevSound::SetToneRepeats(TInt aRepeatCount,
   1.374 +					const TTimeIntervalMicroSeconds& aRepeatTrailingSilence)
   1.375 +	
   1.376 +	@param  aRepeatCount
   1.377 +	        The number of times the tone, together with the trailing silence,
   1.378 +	        is to be repeated. If this is set to KMdaRepeatForever, then the
   1.379 +	        tone, together with the trailing silence, is repeated indefinitely
   1.380 +	        or until Stop() is called. If this is set to zero, then the tone is
   1.381 +	        not repeated.
   1.382 +	@param  aRepeatTrailingSilence
   1.383 +	        An interval of silence which will be played after each tone.
   1.384 +	        Supported only during tone playing.
   1.385 +	        
   1.386 +	@see CMMFDevSound::SetToneRepeats(TInt aRepeatCount,
   1.387 +					const TTimeIntervalMicroSeconds& aRepeatTrailingSilence)
   1.388 +	*/
   1.389 +	virtual void SetToneRepeats(TInt aRepeatCount,
   1.390 +					const TTimeIntervalMicroSeconds& aRepeatTrailingSilence)=0;
   1.391 +
   1.392 +	/**
   1.393 +	This must provide an implementation as defined by 
   1.394 +	CMMFDevSound::(TTimeIntervalMicroSeconds32& aToneOnLength,
   1.395 +									TTimeIntervalMicroSeconds32& aToneOffLength,
   1.396 +									TTimeIntervalMicroSeconds32& aPauseLength)
   1.397 +
   1.398 +	@param  aToneOnLength
   1.399 +	        The period over which the tone will be played. If this is set to
   1.400 +	        zero, then the tone is not played.
   1.401 +	@param  aToneOffLength
   1.402 +	        The period over which the no tone will be played.
   1.403 +	@param  aPauseLength
   1.404 +	        The period over which the tone playing will be paused.
   1.405 +	        
   1.406 +	@see CMMFDevSound::(TTimeIntervalMicroSeconds32& aToneOnLength,
   1.407 +									TTimeIntervalMicroSeconds32& aToneOffLength,
   1.408 +									TTimeIntervalMicroSeconds32& aPauseLength)
   1.409 +	*/
   1.410 +	virtual void SetDTMFLengths(TTimeIntervalMicroSeconds32& aToneOnLength,
   1.411 +									TTimeIntervalMicroSeconds32& aToneOffLength,
   1.412 +									TTimeIntervalMicroSeconds32& aPauseLength)=0;
   1.413 +
   1.414 +	/**
   1.415 +	This must provide an implementation as defined by 
   1.416 +	CMMFDevSound::SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration)
   1.417 +	
   1.418 +	@param  aRampDuration
   1.419 +	        The period over which the volume is to rise. A zero value causes
   1.420 +	        the tone sample to be played at the normal level for the full
   1.421 +	        duration of the playback. A value, which is longer than the duration
   1.422 +	        of the tone sample means that the sample never reaches its normal
   1.423 +	        volume level.
   1.424 +	        
   1.425 +	@see CMMFDevSound::SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration)
   1.426 +	*/
   1.427 +	virtual void SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration)=0;
   1.428 +
   1.429 +	/**
   1.430 +	This must provide an implementation as defined by 
   1.431 +	CMMFDevSound::SetPrioritySettings(const TMMFPrioritySettings& aPrioritySettings)
   1.432 +
   1.433 +	@param	aPrioritySettings 
   1.434 +			A class type representing the client's priority, priority preference and state.
   1.435 +			
   1.436 +	@see CMMFDevSound::SetPrioritySettings(const TMMFPrioritySettings& aPrioritySettings)
   1.437 +	*/
   1.438 +	virtual void SetPrioritySettings(const TMMFPrioritySettings& aPrioritySettings)=0;
   1.439 +
   1.440 +	/**
   1.441 +	This must provide an implementation as defined by CMMFDevSound::CustomInterface(TUid aInterfaceId)
   1.442 +	
   1.443 +	@param  aInterfaceId
   1.444 +	        The interface UID, defined with the custom interface.
   1.445 +	
   1.446 +	@return A pointer to the interface implementation, or NULL if the device does not
   1.447 +	        implement the interface requested. The return value must be cast to the
   1.448 +	        correct type by the user.The user should be careful while caching the custom interface pointer,
   1.449 +	        as in some situations the lower level custom interface pointer may become NULL
   1.450 +	        
   1.451 +	@see CMMFDevSound::CustomInterface(TUid aInterfaceId)
   1.452 +	*/
   1.453 +	virtual TAny* CustomInterface(TUid aInterfaceId)=0;
   1.454 +
   1.455 +	/**
   1.456 +	This must provide an implementation as defined by CMMFDevSound::FixedSequenceCount()
   1.457 +	
   1.458 +	@return The fixed sequence count. This value is implementation dependent but is always greater 
   1.459 +	        than or equal to zero.
   1.460 +	        
   1.461 +	@see CMMFDevSound::FixedSequenceCount()
   1.462 +	*/
   1.463 +	virtual TInt FixedSequenceCount()=0;
   1.464 +
   1.465 +	/**
   1.466 +	This must provide an implementation as defined by CMMFDevSound::FixedSequenceName(TInt aSequenceNumber)
   1.467 +	
   1.468 +	@param  aSequenceNumber
   1.469 +	        The index identifying the specific pre-defined tone sequence. Index values are relative 
   1.470 +	        to zero. This can be any value from zero to the value returned by a call to
   1.471 +	        FixedSequenceCount() - 1.
   1.472 +	        The function raises a panic if sequence number is not within this
   1.473 +	        range.
   1.474 +
   1.475 +	@return A reference to a Descriptor containing the fixed sequence name indexed by
   1.476 +	        aSequenceNumber.
   1.477 +	        
   1.478 +	@see CMMFDevSound::FixedSequenceName(TInt aSequenceNumber)
   1.479 +	@see FixedSequenceCount()
   1.480 +	*/
   1.481 +	virtual const TDesC& FixedSequenceName(TInt aSequenceNumber)=0;
   1.482 +
   1.483 +	/**
   1.484 +	This must provide an implementation as defined by 
   1.485 +	CMMFDevSound::GetSupportedInputDataTypesL(RArray<TFourCC>& aSupportedDataTypes,
   1.486 +													const TMMFPrioritySettings& aPrioritySettings) const
   1.487 +	
   1.488 +	@param  aSupportedDataTypes
   1.489 +	        The array of supported data types that will be filled in by this function.
   1.490 +	        The supported data types of the DevSound are in the form of an array
   1.491 +	        of TFourCC codes. Any existing entries in the array will be overwritten on 
   1.492 +	        calling this function. If no supported data types are found given the priority 
   1.493 +	        settings, then the aSupportedDatatypes array will have zero entries.
   1.494 +	@param  aPrioritySettings
   1.495 +	        The priority settings used to determine the supported datatypes.  Note this
   1.496 +	        does not set the priority settings. For input datatypes the iState member
   1.497 +	        of the priority settings would be expected to be either
   1.498 +	        EMMFStatePlaying or EMMFStatePlayingRecording. The priority settings may
   1.499 +	        effect the supported datatypes depending on the audio routing.
   1.500 +	        
   1.501 +	@see CMMFDevSound::GetSupportedInputDataTypesL(RArray<TFourCC>& aSupportedDataTypes,
   1.502 +													const TMMFPrioritySettings& aPrioritySettings) const
   1.503 +	*/
   1.504 +	virtual void GetSupportedInputDataTypesL(RArray<TFourCC>& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings) const=0;
   1.505 +
   1.506 +	/**
   1.507 +	This must provide an implementation as defined by 
   1.508 +	CMMFDevSound::GetSupportedOutputDataTypesL(RArray<TFourCC>& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings) const
   1.509 +	
   1.510 +	@param  aSupportedDataTypes
   1.511 +	        The array of supported data types that will be filled in by this function.
   1.512 +	        The supported datatypes of the DevSound are in the form of an array
   1.513 +	        of TFourCC codes.
   1.514 +	        Any existing entries in the array will be overwritten on calling this function.
   1.515 +	        If no supported datatypes are found given the priority settings, then
   1.516 +	        the aSupportedDatatypes array will have zero entries.
   1.517 +	@param  aPrioritySettings
   1.518 +	        The priority settings used to determine the supported data types.  Note this
   1.519 +	        does not set the priority settings. For output data types the iState member
   1.520 +	        of the priority settings would expected to be either
   1.521 +	        EMMFStateRecording or EMMFStatePlayingRecording. The priority settings may
   1.522 +	        effect the supported datatypes depending on the audio routing.
   1.523 +	        
   1.524 +	@see CMMFDevSound::GetSupportedOutputDataTypesL(RArray<TFourCC>& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings) const
   1.525 +	*/
   1.526 +	virtual void GetSupportedOutputDataTypesL(RArray<TFourCC>& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings) const=0;
   1.527 +	
   1.528 +	};
   1.529 +
   1.530 +#endif // DEVSOUNDPLUGIN_H