devsound/devsoundpluginsupport/inc/plugin/DevSoundPlugin.h
changeset 29 eb1e5d7cc688
parent 26 c36d67f77f75
child 30 9707f1c07383
--- a/devsound/devsoundpluginsupport/inc/plugin/DevSoundPlugin.h	Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,527 +0,0 @@
-
-// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-/**
- @file
- @publishedPartner
- @released
-*/
-
-#ifndef DEVSOUNDPLUGIN_H
-#define DEVSOUNDPLUGIN_H
-
-_LIT8(KDevSoundPluginMatchString, "*"); // ECom insists on something
-
-/**
-Interface class used in the plugin implementation of DevSound.
-The CMMFDevSound implementation loads a plugin based on this interface class. 
-Once this has been constructed, calls to method functions of CMMFDevSound are passed
-verbatim to this interface. For further description of required functionality, 
-see CMMFDevSound.
-
-@see CMMFDevSound
-*/
-
-class MMMFDevSoundPlugin
-	{
-public:
-	/**	
-	This must provide an implementation as defined by CMMFDevSound::~CMMFDevSound()
-	
-	@see CMMFDevSound::~CMMFDevSound()
-	*/
-	virtual ~MMMFDevSoundPlugin() {}
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TMMFState aMode)
-	
-	@param  aDevSoundObserver
-	        A reference to DevSound Observer instance.
-	@param  aMode
-	        The mode for which this object will be used.
-	        
-	@see CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TMMFState aMode)
-	*/
-    virtual void InitializeL(MDevSoundObserver& aDevSoundObserver, TMMFState aMode)=0;
-
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TUid aHWDev, TMMFState aMode)
-	
-	@param  aDevSoundObserver
-	        A reference to DevSound Observer instance.
-	@param  aHWDev
-	        The CMMFHwDevice implementation identifier.
-	@param  aMode
-	        The mode for which this object will be used.
-	        
-	@see CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TUid aHWDev, TMMFState aMode)
-	*/
-	virtual void InitializeL(MDevSoundObserver& aDevSoundObserver, TUid aHWDev, TMMFState aMode)=0;
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TFourCC aDesiredFourCC, TMMFState aMode)
-
-	@param  aDevSoundObserver
-	        A reference to DevSound Observer instance.
-	@param  aDesiredFourCC
-	        The CMMFHwDevice implementation FourCC code.
-	@param  aMode
-	        The mode for which this object will be used.
-	        
-	@see CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TFourCC aDesiredFourCC, TMMFState aMode)
-	*/
-	virtual void InitializeL(MDevSoundObserver& aDevSoundObserver, TFourCC aDesiredFourCC, TMMFState aMode)=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::Capabilities()
-	
-	@return	The device settings.
-	
-	@see CMMFDevSound::Capabilities()
-	*/
-	virtual TMMFCapabilities Capabilities()=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::Config()
-	
-	@return	The device settings.
-	
-	@see CMMFDevSound::Config()
-	*/
-	virtual TMMFCapabilities Config() const=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::SetConfigL(const TMMFCapabilities& aCaps)
-
-	@param  aCaps The attribute values to which CMMFDevSound object will be configured to.
-	        
-	@see CMMFDevSound::SetConfigL(const TMMFCapabilities& aCaps)
-	*/
-	virtual void SetConfigL(const TMMFCapabilities& aCaps)=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::MaxVolume()
-	
-	@return	The maximum volume. This value is platform dependent but is always greater than or equal
-	to one.
-	
-	@see CMMFDevSound::MaxVolume()
-	*/
-	virtual TInt MaxVolume()=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::Volume()
-	
-	@return The current volume level.
-		
-	@see CMMFDevSound::Volume()
-	*/
-	virtual TInt Volume()=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::SetVolume()
-	
-	@param  aVolume
-	        The volume setting. This can be any value from 0 to the value
-	        returned by a call to CMMFDevSound::MaxVolume(). If the
-	        volume is not within this range, the volume is automatically set to
-	        minimum or maximum value based on the value that is being passed.
-	        Setting a zero value mutes the sound. Setting the maximum value
-	        results in the loudest possible sound.
-        
-	@see CMMFDevSound::SetVolume()
-	*/
-	virtual void SetVolume(TInt aVolume)=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::MaxGain()
-	
-	@return The maximum gain. This value is platform dependent but is always greater than or equal
-	to one.
-	
-	@see CMMFDevSound::MaxGain()
-	*/
-	virtual TInt MaxGain()=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::Gain()
-	
-	@return The current gain level.
-	
-	@see CMMFDevSound::Gain()
-	*/
-	virtual TInt Gain()=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::SetGain()
-	
-	@param  aGain
-		    The gain setting. This can be any value from zero to the value
-		    returned by a call to CMMFDevSound::MaxGain(). If the
-		    volume is not within this range, the gain is automatically set to
-		    minimum or maximum value based on the value that is being passed.
-		    Setting a zero value mutes the sound. Setting the maximum value
-		    results in the loudest possible sound.
-	@see CMMFDevSound::SetGain()
-	*/
-	virtual void SetGain(TInt aGain)=0;
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::GetPlayBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)
-	
-	@param  aLeftPercentage
-	        On return contains the left speaker volume percentage.
-	@param  aRightPercentage
-	        On return contains the right speaker volume percentage.
-	        
-	@see CMMFDevSound::GetPlayBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)
-	*/
-	virtual void GetPlayBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)=0;
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::SetPlayBalanceL(TInt aLeftPercentage, TInt aRightPercentage)
-	
-	@param  aLeftPercentage
-	        On return contains left speaker volume perecentage. This can be any
-	        value from zero to 100. Setting a zero value mutes the sound on left
-	        speaker.
-	@param  aRightPercentage
-	        On return contains right speaker volume perecentage. This can be any
-	        value from zero to 100. Setting a zero value mutes the sound on
-	        right speaker.
-	        
-	@see CMMFDevSound::SetPlayBalanceL(TInt aLeftPercentage, TInt aRightPercentage)
-	*/
-	virtual void SetPlayBalanceL(TInt aLeftPercentage, TInt aRightPercentage)=0;
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::GetRecordBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)
-	
-	@param  aLeftPercentage
-	        On return contains the left microphone gain percentage.
-	@param  aRightPercentage
-	        On return contains the right microphone gain percentage.
-	        
-	@see CMMFDevSound::GetRecordBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)
-	*/
-	virtual void GetRecordBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage)=0;
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::GetRecordBalanceL(TInt aLeftPercentage, TInt aRightPercentage)
-	
-	@param  aLeftPercentage
-	        The left microphone gain precentage. This can be any value from zero to
-	        100. Setting a zero value mutes the gain on left microphone.
-	@param  aRightPercentage
-	        The right microphone gain precentage. This can be any value from zero to
-	        100. Setting a zero value mutes the gain on right microphone.
-	        
-	@see CMMFDevSound::GetRecordBalanceL(TInt aLeftPercentage, TInt aRightPercentage)
-	*/
-	virtual void SetRecordBalanceL(TInt aLeftPercentage, TInt aRightPercentage)=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::PlayInitL()
-	
-	@see CMMFDevSound::PlayInitL()
-	*/
-	virtual void PlayInitL()=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::RecordInitL()
-
-	@see CMMFDevSound::RecordInitL()
-	*/
-	virtual void RecordInitL()=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::PlayData()
-	
-	@see CMMFDevSound::PlayData()
-	*/
-	virtual void PlayData()=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::RecordData()
-	
-	@see CMMFDevSound::RecordData()
-	*/
-	virtual void RecordData()=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::Stop()
-	
-	@see CMMFDevSound::Stop()
-	*/
-	virtual void Stop()=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::Pause()
-	
-	@see CMMFDevSound::Pause()
-	*/
-	virtual void Pause()=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::SamplesRecorded()
-	
-	@return The samples recorded.
-	
-	@see CMMFDevSound::SamplesRecorded()
-	*/
-	virtual TInt SamplesRecorded()=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::SamplesPlayed()
-	
-	@return The samples played.
-	
-	@see CMMFDevSound::SamplesPlayed()
-	*/
-	virtual TInt SamplesPlayed()=0;
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::PlayToneL(TInt aFrequency, const TTimeIntervalMicroSeconds& aDuration)
-	
-	@param  aFrequency
-	        The frequency at which the tone will be played.
-	@param  aDuration
-	        The period over which the tone will be played. A zero value causes
-	        the no tone to be played.
-	        
-	@see CMMFDevSound::PlayToneL(TInt aFrequency, const TTimeIntervalMicroSeconds& aDuration)
-	*/
-	virtual void PlayToneL(TInt aFrequency, const TTimeIntervalMicroSeconds& aDuration)=0;
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::PlayDualToneL(TInt aFrequencyOne, TInt aFrequencyTwo, const TTimeIntervalMicroSeconds& aDuration)
-	
-	@param  aFrequencyOne
-	        The first frequency of dual tone.
-	@param  aFrequencyTwo
-	        The second frequency of dual tone
-	@param  aDuration
-	        The period over which the tone will be played. A zero value causes
-	        the no tone to be played (Verify this with test app).
-	        
-	@see CMMFDevSound::PlayDualToneL(TInt aFrequencyOne, TInt aFrequencyTwo, const TTimeIntervalMicroSeconds& aDuration)
-	*/
-	virtual void PlayDualToneL(TInt aFrequencyOne, TInt aFrequencyTwo, const TTimeIntervalMicroSeconds& aDuration)=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::PlayDTMFStringL(const TDesC& aDTMFString)
-	
-	@param  aDTMFString The DTMF sequence in a descriptor.
-	
-	@see CMMFDevSound::PlayDTMFStringL(const TDesC& aDTMFString)
-	*/
-	virtual void PlayDTMFStringL(const TDesC& aDTMFString)=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::PlayToneSequenceL(const TDesC8& aData)
-
-	@param  aData The tone sequence in a descriptor.
-	
-	@see CMMFDevSound::PlayToneSequenceL(const TDesC8& aData)
-	*/
-	virtual void PlayToneSequenceL(const TDesC8& aData)=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::PlayFixedSequenceL(TInt aSequenceNumber)
-	
-	@param  aSequenceNumber
-	        The index identifying the specific pre-defined tone sequence. Index
-	        values are relative to zero.
-	        This can be any value from zero to the value returned by a call to
-	        FixedSequenceCount() - 1.
-	        The function raises a panic if the sequence number is not within this
-	        range.
-	        
-	@see CMMFDevSound::PlayFixedSequenceL(TInt aSequenceNumber)
-	@see FixedSequenceCount()
-	*/
-	virtual void PlayFixedSequenceL(TInt aSequenceNumber)=0;
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::SetToneRepeats(TInt aRepeatCount,
-					const TTimeIntervalMicroSeconds& aRepeatTrailingSilence)
-	
-	@param  aRepeatCount
-	        The number of times the tone, together with the trailing silence,
-	        is to be repeated. If this is set to KMdaRepeatForever, then the
-	        tone, together with the trailing silence, is repeated indefinitely
-	        or until Stop() is called. If this is set to zero, then the tone is
-	        not repeated.
-	@param  aRepeatTrailingSilence
-	        An interval of silence which will be played after each tone.
-	        Supported only during tone playing.
-	        
-	@see CMMFDevSound::SetToneRepeats(TInt aRepeatCount,
-					const TTimeIntervalMicroSeconds& aRepeatTrailingSilence)
-	*/
-	virtual void SetToneRepeats(TInt aRepeatCount,
-					const TTimeIntervalMicroSeconds& aRepeatTrailingSilence)=0;
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::(TTimeIntervalMicroSeconds32& aToneOnLength,
-									TTimeIntervalMicroSeconds32& aToneOffLength,
-									TTimeIntervalMicroSeconds32& aPauseLength)
-
-	@param  aToneOnLength
-	        The period over which the tone will be played. If this is set to
-	        zero, then the tone is not played.
-	@param  aToneOffLength
-	        The period over which the no tone will be played.
-	@param  aPauseLength
-	        The period over which the tone playing will be paused.
-	        
-	@see CMMFDevSound::(TTimeIntervalMicroSeconds32& aToneOnLength,
-									TTimeIntervalMicroSeconds32& aToneOffLength,
-									TTimeIntervalMicroSeconds32& aPauseLength)
-	*/
-	virtual void SetDTMFLengths(TTimeIntervalMicroSeconds32& aToneOnLength,
-									TTimeIntervalMicroSeconds32& aToneOffLength,
-									TTimeIntervalMicroSeconds32& aPauseLength)=0;
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration)
-	
-	@param  aRampDuration
-	        The period over which the volume is to rise. A zero value causes
-	        the tone sample to be played at the normal level for the full
-	        duration of the playback. A value, which is longer than the duration
-	        of the tone sample means that the sample never reaches its normal
-	        volume level.
-	        
-	@see CMMFDevSound::SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration)
-	*/
-	virtual void SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration)=0;
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::SetPrioritySettings(const TMMFPrioritySettings& aPrioritySettings)
-
-	@param	aPrioritySettings 
-			A class type representing the client's priority, priority preference and state.
-			
-	@see CMMFDevSound::SetPrioritySettings(const TMMFPrioritySettings& aPrioritySettings)
-	*/
-	virtual void SetPrioritySettings(const TMMFPrioritySettings& aPrioritySettings)=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::CustomInterface(TUid aInterfaceId)
-	
-	@param  aInterfaceId
-	        The interface UID, defined with the custom interface.
-	
-	@return A pointer to the interface implementation, or NULL if the device does not
-	        implement the interface requested. The return value must be cast to the
-	        correct type by the user.The user should be careful while caching the custom interface pointer,
-	        as in some situations the lower level custom interface pointer may become NULL
-	        
-	@see CMMFDevSound::CustomInterface(TUid aInterfaceId)
-	*/
-	virtual TAny* CustomInterface(TUid aInterfaceId)=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::FixedSequenceCount()
-	
-	@return The fixed sequence count. This value is implementation dependent but is always greater 
-	        than or equal to zero.
-	        
-	@see CMMFDevSound::FixedSequenceCount()
-	*/
-	virtual TInt FixedSequenceCount()=0;
-
-	/**
-	This must provide an implementation as defined by CMMFDevSound::FixedSequenceName(TInt aSequenceNumber)
-	
-	@param  aSequenceNumber
-	        The index identifying the specific pre-defined tone sequence. Index values are relative 
-	        to zero. This can be any value from zero to the value returned by a call to
-	        FixedSequenceCount() - 1.
-	        The function raises a panic if sequence number is not within this
-	        range.
-
-	@return A reference to a Descriptor containing the fixed sequence name indexed by
-	        aSequenceNumber.
-	        
-	@see CMMFDevSound::FixedSequenceName(TInt aSequenceNumber)
-	@see FixedSequenceCount()
-	*/
-	virtual const TDesC& FixedSequenceName(TInt aSequenceNumber)=0;
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::GetSupportedInputDataTypesL(RArray<TFourCC>& aSupportedDataTypes,
-													const TMMFPrioritySettings& aPrioritySettings) const
-	
-	@param  aSupportedDataTypes
-	        The array of supported data types that will be filled in by this function.
-	        The supported data types of the DevSound are in the form of an array
-	        of TFourCC codes. Any existing entries in the array will be overwritten on 
-	        calling this function. If no supported data types are found given the priority 
-	        settings, then the aSupportedDatatypes array will have zero entries.
-	@param  aPrioritySettings
-	        The priority settings used to determine the supported datatypes.  Note this
-	        does not set the priority settings. For input datatypes the iState member
-	        of the priority settings would be expected to be either
-	        EMMFStatePlaying or EMMFStatePlayingRecording. The priority settings may
-	        effect the supported datatypes depending on the audio routing.
-	        
-	@see CMMFDevSound::GetSupportedInputDataTypesL(RArray<TFourCC>& aSupportedDataTypes,
-													const TMMFPrioritySettings& aPrioritySettings) const
-	*/
-	virtual void GetSupportedInputDataTypesL(RArray<TFourCC>& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings) const=0;
-
-	/**
-	This must provide an implementation as defined by 
-	CMMFDevSound::GetSupportedOutputDataTypesL(RArray<TFourCC>& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings) const
-	
-	@param  aSupportedDataTypes
-	        The array of supported data types that will be filled in by this function.
-	        The supported datatypes of the DevSound are in the form of an array
-	        of TFourCC codes.
-	        Any existing entries in the array will be overwritten on calling this function.
-	        If no supported datatypes are found given the priority settings, then
-	        the aSupportedDatatypes array will have zero entries.
-	@param  aPrioritySettings
-	        The priority settings used to determine the supported data types.  Note this
-	        does not set the priority settings. For output data types the iState member
-	        of the priority settings would expected to be either
-	        EMMFStateRecording or EMMFStatePlayingRecording. The priority settings may
-	        effect the supported datatypes depending on the audio routing.
-	        
-	@see CMMFDevSound::GetSupportedOutputDataTypesL(RArray<TFourCC>& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings) const
-	*/
-	virtual void GetSupportedOutputDataTypesL(RArray<TFourCC>& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings) const=0;
-	
-	};
-
-#endif // DEVSOUNDPLUGIN_H