mm_pub/audio_effects_api/inc/EnvironmentalReverbBase.h
changeset 0 40261b775718
child 14 cd271b19d824
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mm_pub/audio_effects_api/inc/EnvironmentalReverbBase.h	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,439 @@
+/*
+* Copyright (c) 2006 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:  This is the definition of the Environmental Reverb effect class.
+*
+*/
+
+
+#ifndef CENVIRONMENTALREVERB_H
+#define CENVIRONMENTALREVERB_H
+
+// INCLUDES
+
+#include <e32base.h>
+#include <AudioEffectBase.h>
+#include <EnvironmentalReverbData.h>
+#include <MCustomInterface.h>
+
+const TUid KUidEnvironmentalReverbEffect = {0x10203837};
+
+// FORWARD DELCARATION
+class CMdaAudioConvertUtility;
+class CMdaAudioPlayerUtility;
+class CMdaAudioRecorderUtility;
+class CMdaAudioInputStream;
+class CMdaAudioOutputStream;
+class CMdaAudioToneUtility;
+class CCustomCommandUtility;
+class CCustomInterfaceUtility;
+class CMMFDevSound;
+class CMidiClientUtility;
+class CDrmPlayerUtility;
+class CVideoPlayerUtility;
+
+// CLASS DECLARATION
+
+/**
+*  This is the Environmental Reverb effect class for managing reverb settings.
+*
+*  @lib EnvironmentalReverbEffect.lib
+*  @since 3.0
+*/
+
+class CEnvironmentalReverb : public CAudioEffect
+    {
+
+    public:     //New Functions
+
+        /**
+        * Factory function for creating the audio reverb object.
+        * @since 3.0
+        * @return pointer to CEnvironmentalReverb object
+        */
+        IMPORT_C static CEnvironmentalReverb* NewL();
+
+        /**
+        * Factory function for creating the audio reverb object.
+        * @since 3.0
+        * @param aUtility A reference to a convert utility
+        * @return pointer to CEnvironmentalReverb object
+        */
+        IMPORT_C static CEnvironmentalReverb* NewL( CMdaAudioConvertUtility& aUtility );
+
+        /**
+        * Factory function for creating the audio reverb object.
+        * @since 3.0
+        * @param aUtility A reference to an audio input stream utility
+        * @return pointer to CEnvironmentalReverb object
+        */
+        IMPORT_C static CEnvironmentalReverb* NewL( CMdaAudioInputStream& aUtility );
+
+        /**
+        * Factory function for creating the audio reverb object.
+        * @since 3.0
+        * @param aUtility A reference to an audio output stream utility
+        * @return pointer to CEnvironmentalReverb object
+        */
+        IMPORT_C static CEnvironmentalReverb* NewL( CMdaAudioOutputStream& aUtility );
+
+        /**
+        * Factory function for creating the audio reverb object.
+        * @since 3.0
+        * @param aUtility A reference to an audio player utility
+        * @return pointer to CEnvironmentalReverb object
+        */
+        IMPORT_C static CEnvironmentalReverb* NewL( CMdaAudioPlayerUtility& aUtility );
+
+        /**
+        * Factory function for creating the audio reverb object.
+        * @since 3.0
+        * @param aUtility A reference to an audio record utility
+        * @param aRecordStream ETrue if the effect is to be applied to the recording,
+        *                      EFalse if the effect is to be applied only to the playback
+        * @return pointer to CEnvironmentalReverb object
+        */
+        IMPORT_C static CEnvironmentalReverb* NewL( CMdaAudioRecorderUtility& aUtility, TBool aRecordStream );
+
+        /**
+        * Factory function for creating the audio reverb object.
+        * @since 3.0
+        * @param aUtility A reference to an audio tone utility
+        * @return pointer to CEnvironmentalReverb object
+        */
+        IMPORT_C static CEnvironmentalReverb* NewL( CMdaAudioToneUtility& aUtility );
+
+        /**
+        * Factory function for creating the audio reverb object.
+        * @since 3.0
+        * @param aDevSound A reference to a DevSound instance
+        * @return pointer to CEnvironmentalReverb object
+        */
+        IMPORT_C static CEnvironmentalReverb* NewL( CMMFDevSound& aDevSound );
+
+        /**
+        * Factory function for creating the audio reverb object.
+        * @since 3.0
+        * @param aUtility A reference to a custom command utility
+        * @return pointer to CEnvironmentalReverb object
+        */
+        IMPORT_C static CEnvironmentalReverb* NewL( CCustomCommandUtility* aUtility );
+
+        /**
+        * Factory function for creating the audio reverb object.
+        * @since 3.0
+        * @param aCustomInterface A reference to a custom interface
+        * @return pointer to CEnvironmentalReverb object
+        */
+        IMPORT_C static CEnvironmentalReverb* NewL( MCustomInterface& aCustomInterface );
+
+        /**
+        * Factory function for creating the audio reverb object.
+        * @since 3.0
+        * @param aUtility A reference to a CMidiClientUtility object
+        * @return pointer to CEnvironmentalReverb object
+        */
+        IMPORT_C static CEnvironmentalReverb* NewL( CMidiClientUtility& aUtility );
+
+        /**
+        * Factory function for creating the audio equalizer object.
+        * @since 3.0
+        * @param CDrmPlayerUtility A reference to a CDrmPlayerUtility object
+        * @return pointer to CAudioEqualizer object
+        */
+        IMPORT_C static CEnvironmentalReverb* NewL( CDrmPlayerUtility& aUtility );
+
+        /**
+        * Factory function for creating the audio equalizer object.
+        * @since 3.2
+        * @param CVideoPlayerUtility A reference to a CVideoPlayerUtility object
+        * @return pointer to CAudioEqualizer object
+        */
+        IMPORT_C static CEnvironmentalReverb* NewL( CVideoPlayerUtility& aUtility );
+
+        /**
+        *
+        * Destructor
+        */
+        IMPORT_C virtual ~CEnvironmentalReverb();
+
+        /**
+        * Gets the decay HF Ratio in hundredths
+        * @since 3.0
+        * @return decay HF Ratio
+        */
+        IMPORT_C TUint32 DecayHFRatio() const;
+
+        /**
+        * Gets the reverb decay HF Ratio minimum and maximum in hundredths.
+        * @since 3.0
+        * @param aMin Minimum decay HF Ratio
+        * @param aMax Maximum decay HF Ratio
+        */
+        IMPORT_C void DecayHFRatioRange(TUint32& aMin, TUint32& aMax);
+
+        /**
+        * Gets the decay time in milliseconds
+        * @since 3.0
+        * @return decay time
+        */
+        IMPORT_C TUint32 DecayTime() const;
+
+        /**
+        * Gets the allowable reverb decay time range in milliseconds.
+        * @since 3.0
+        * @param aMin Minimum decay time in milliseconds
+        * @param aMax Maximum decay time in milliseconds
+        */
+        IMPORT_C void DecayTimeRange(TUint32& aMin, TUint32& aMax);
+
+        /**
+        * Gets the density current value as a percentage in hundredths
+        * @since 3.0
+        * @return density value
+        */
+        IMPORT_C TUint32 Density() const;
+
+        /**
+        * Gets the diffusion current value as a percentage in hundredths.
+        * @since 3.0
+        * @return diffusion value
+        */
+        IMPORT_C TUint32 Diffusion() const;
+
+        /**
+        * Gets the reverb reflections delay in ms.
+        * @since 3.0
+        * @return reverb reflections delay
+        */
+        IMPORT_C TUint32 ReflectionsDelay() const;
+
+        /**
+        * Gets the reverb reflections delay maximum in milliseconds.
+        * @since 3.0
+        * @return reverb reflections delay maximum
+        */
+        IMPORT_C TUint32 ReflectionsDelayMax() const;
+
+        /**
+        * Gets the reverb reflections level in mB
+        * @since 3.0
+        * @return Reverb reflections level
+        */
+        IMPORT_C TInt32 ReflectionsLevel() const;
+
+        /**
+        * Gets the reverb reflections level maximum and minimum in mB
+        * @since 3.0
+        * @param aMin Minimum reflections level
+        * @param aMax Maximum reflections level
+        */
+        IMPORT_C void ReflectionLevelRange( TInt32& aMin, TInt32& aMax );
+
+        /**
+        * Gets the reverb delay in milliseconds
+        * @since 3.0
+        * @return reverb delay
+        */
+        IMPORT_C TUint32 ReverbDelay() const;
+
+        /**
+        * Gets the reverb delay maximum in milliseconds
+        * @since 3.0
+        * @return reverb delay maximum
+        */
+        IMPORT_C TUint32 ReverbDelayMax() const;
+
+        /**
+        * Gets the reverb current level in mB
+        * @since 3.0
+        * @return reverb current level
+        */
+        IMPORT_C TInt32 ReverbLevel() const;
+
+        /**
+        * Gets the reverb current level maximum and minimum in mB
+        * @since 3.0
+        * @param aMin Minimum current level
+        * @param aMax Maximum current level
+        * @return -
+        */
+        IMPORT_C void ReverbLevelRange( TInt32& aMin, TInt32& aMax );
+
+        /**
+        * Gets the room HF level current ratio
+        * @since 3.0
+        * @return room HF level ratio
+        */
+        IMPORT_C TInt32 RoomHFLevel() const;
+
+        /**
+        * Gets the room HF level maximum and minimum ratios
+        * @since 3.0
+        * @param aMin Minimum current room HF level
+        * @param aMax Maximum current room HF level
+        * @return -
+        */
+        IMPORT_C void RoomHFLevelRange( TInt32& aMin, TInt32& aMax );
+
+        /**
+        * Gets the room level current value in mB
+        * @since 3.0
+        * @return room level value
+        */
+        IMPORT_C TInt32 RoomLevel() const;
+
+        /**
+        * Gets the room level maximum and minimum in mB
+        * @since 3.0
+        * @param aMin Minimum current room level
+        * @param aMax Maximum current room level
+        * @return -
+        */
+        IMPORT_C void RoomLevelRange( TInt32& aMin, TInt32& aMax );
+
+        /**
+        * Sets the decay HF Ratio in hundredths
+        * @since 3.0
+        * @param aDecayHFRatio The decay high frequence ratio in hundredths
+        * @return -
+        */
+        IMPORT_C void SetDecayHFRatioL( TUint32 aDecayHFRatio );
+
+        /**
+        * Sets the decay time in millisecond
+        * @since 3.0
+        * @param aDecayTime Decay time in ms
+        */
+        IMPORT_C void SetDecayTimeL( TUint32 aDecayTime );
+
+        /**
+        * Sets the density value as percentage in hundredths
+        * @since 3.0
+        * @param aDensity The density.
+        */
+        IMPORT_C void SetDensityL( TUint32 aDensity );
+
+        /**
+        * Sets the diffusion value as a percentage in hundredths
+        * @since 3.0
+        * @param aDiffusion The diffusion.
+        */
+        IMPORT_C void SetDiffusionL( TUint32 aDiffusion );
+
+        /**
+        * Sets the reverb reflections delay
+        * @since 3.0
+        * @param aRefectionsDelay The reflection delay in ms.
+        */
+        IMPORT_C void SetReflectionsDelayL( TUint32 aReflectionsDelay );
+
+        /**
+        * Sets the reverb reflections level in milli-dB
+        * @since 3.0
+        * @param aRefectionsLevel The reflection level in mB
+        */
+        IMPORT_C void SetReflectionsLevelL( TInt32 aReflectionsLevel );
+
+        /**
+        * Sets the reverb delay
+        * @since 3.0
+        * @param aReverbDelay The reverb delay in ms
+        */
+        IMPORT_C void SetReverbDelayL( TUint32 aReverbDelay );
+
+        /**
+        * Sets the reverb level
+        * @since 3.0
+        * @param aReverbLevel The reverb level in mB
+        */
+        IMPORT_C void SetReverbLevelL( TInt32 aReverbLevel );
+
+        /**
+        * Sets the room HF level ratio
+        * @since 3.0
+        * @param aRoomHFLevel The room high frequency ratio
+        */
+        IMPORT_C void SetRoomHFLevelL( TInt32 aRoomHFLevel );
+
+        /**
+        * Sets the room level value in milli-dB
+        * @since 3.0
+        * @param aRoomLevel The room level
+        */
+        IMPORT_C void SetRoomLevelL( TInt32 aRoomLevel );
+
+        /**
+        * Gets the total delay maximum in milliseconds
+        * @since 3.0
+        * @return reverb delay maximum
+        */
+        IMPORT_C TUint32 DelayMax() const;
+
+    public: // functions from base class
+
+        /*
+        * From CAudioEffect
+        * Get the unique identifier of the audio effect
+        * @since 3.0
+        * @return Unique identifier
+        */
+        IMPORT_C TUid Uid() const;
+
+    protected:  // Functions from base classes
+
+        /**
+        * From CAudioEffect
+        * Create a package of the effect data
+        * @since 3.0
+        * @return A descriptor containing the effect data.
+        */
+        IMPORT_C const TDesC8& DoEffectData();
+
+        /**
+        * From CAudioEffect
+        * Internal function to unpack effect data
+        * @since 3.0
+        * @param aEffectDataBuffer Descriptor containing packed effect data
+        * @return -
+        */
+        IMPORT_C void SetEffectData( const TDesC8& aEffectDataBuffer );
+
+    protected:
+
+        /**
+        * Private C++ constructor for this class.
+        * @since 3.0
+        * @return   -
+        */
+        IMPORT_C CEnvironmentalReverb();
+
+    protected:
+
+        // Reverb data structure
+        TEfEnvironmentalReverb iReverbData;
+        // Data package sent to server
+        TEfEnvReverbDataPckg iDataPckgTo;
+        // Data package received from server
+        TEfEnvReverbDataPckg iDataPckgFrom;
+
+    protected:    // Friend classes
+
+        friend class CEnvironmentalReverbMessageHandler;
+        friend class CEnvironmentalReverbUtility;
+
+    };
+
+#endif  // of CENVIRONMENTALREVERB_H
+
+// End of File