epoc32/include/audioequalizerutility.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
child 4 837f303aceeb
--- a/epoc32/include/audioequalizerutility.h	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/audioequalizerutility.h	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,380 @@
-audioequalizerutility.h
+/*
+* 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 the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  This is the definition of the audio equalizer utility class.
+*
+*/
+
+
+
+#ifndef CAUDIOEQUALIZERUTILITY_H
+#define CAUDIOEQUALIZERUTILITY_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <e32svr.h>
+#include <AudioEqualizerBase.h>
+#include <BassBoostBase.h>
+#include <centralrepository.h>
+#include <AudioEqualizerUtilityData.h>
+
+// FORWARD DECLARATIONS
+class TEfAudioEqualizerUtilityPreset;
+class CAudioEqualizer;
+class CBassBoost;
+class CMdaAudioConvertUtility;
+class CMdaAudioPlayerUtility;
+class CMdaAudioRecorderUtility;
+class CMdaAudioInputStream;
+class CMdaAudioOutputStream;
+class CMdaAudioToneUtility;
+class CCustomCommandUtility;
+class CCustomInterfaceUtility;
+class CMMFDevSound;
+class CRepository;
+class CMidiClientUtility;
+class CDrmPlayerUtility;
+class CVideoPlayerUtility;
+
+// CLASS DECLARATION
+
+/**
+*  This is the Equalizer Utility class for managing audio equalizer presets.
+*
+*  @lib AudioEqualizerUtility.lib
+*  @since 3.0
+*/
+
+class CAudioEqualizerUtility : public CBase
+    {
+    public:  // Constructors and destructor
+
+
+        /**
+		* Factory function for creating the audio equalizer utility object.
+		* @since 3.0
+		* @param aUtility A reference to a Devsound Instance
+		* @return pointer to CAudioEqualizerUtility object
+        */
+        IMPORT_C static CAudioEqualizerUtility* NewL(CMMFDevSound& aDevSound);
+
+		/**
+        * Factory function for creating the audio equalizer utility object.
+        * @since 3.0
+        * @param aUtility A reference to a convert utility
+        * @return pointer to CAudioEqualizerUtility object
+        */
+		IMPORT_C static CAudioEqualizerUtility* NewL(CMdaAudioConvertUtility& aUtility);
+
+		/**
+        * Factory function for creating the audio equalizer utility object.
+        * @since 3.0
+        * @param aUtility A reference to a audio input stream utility
+        * @return pointer to CAudioEqualizerUtility object
+        */
+		IMPORT_C static CAudioEqualizerUtility* NewL(CMdaAudioInputStream& aUtility);
+
+		/**
+		* Factory function for creating the audio equalizer utility object.
+		* @since 3.0
+		* @param aUtility A reference to a audio output stream utility
+		* @return pointer to CAudioEqualizerUtility object
+        */
+		IMPORT_C static CAudioEqualizerUtility* NewL(CMdaAudioOutputStream& aUtility);
+
+		/**
+		* Factory function for creating the audio equalizer utility object.
+		* @since 3.0
+		* @param aUtility A reference to a audio player utility
+		* @return pointer to CAudioEqualizerUtility object
+        */
+		IMPORT_C static CAudioEqualizerUtility* NewL(CMdaAudioPlayerUtility& aUtility);
+
+		/**
+		* Factory function for creating the audio equalizer utility object.
+		* @since 3.0
+		* @param aUtility A reference to a audio recorder utility
+		* @return pointer to CAudioEqualizerUtility object
+        */
+		IMPORT_C static CAudioEqualizerUtility* NewL(CMdaAudioRecorderUtility& aUtility);
+
+		/**
+		* Factory function for creating the audio equalizer utility object.
+		* @since 3.0
+		* @param aUtility A reference to a audio tone utility
+		* @return pointer to CAudioEqualizerUtility object
+        */
+		IMPORT_C static CAudioEqualizerUtility* NewL(CMdaAudioToneUtility& aUtility);
+
+		/**
+		* Factory function for creating the audio equalizer utility object.
+		* @since 3.0
+		* @param aUtility A reference to custom command utility
+		* @return pointer to CAudioEqualizerUtility object
+        */
+		IMPORT_C static CAudioEqualizerUtility* NewL(CCustomCommandUtility* aUtility);
+
+		/**
+		* Factory function for creating the audio equalizer utility object.
+		* @since 3.0
+		* @param aUtility A reference to custom interface utility
+		* @return pointer to CAudioEqualizerUtility object
+        */
+		IMPORT_C static CAudioEqualizerUtility* NewL(MCustomInterface& aCustomInterface);
+		
+		/**
+		* Factory function for creating the audio equalizer utility object.
+		* @since 3.0
+		* @param aUtility A reference to CMidiClientUtility
+		* @return pointer to CAudioEqualizerUtility object
+        */
+		IMPORT_C static CAudioEqualizerUtility* 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 CAudioEqualizerUtility* 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 CAudioEqualizerUtility* NewL( CVideoPlayerUtility& aUtility );
+
+		 /**
+        * Destructor.
+        */
+        virtual ~CAudioEqualizerUtility();
+
+		/**
+        * Apply the Preset Index value
+        * @since 3.0
+        * @param aPreset Preset Value
+        */
+		IMPORT_C void ApplyPresetL(TInt aPreset);
+
+		/**
+        * Disable the Equalizer
+        * @since 3.0
+        */
+		IMPORT_C void DisableEqualizerL();
+
+		/**
+        * Create a Preset with the given Name and Equalizer Settings
+        * @since 3.0
+        * @param aName Name of the Preset
+        * @param aAudioEqualizer Equalizer Settings for the Preset
+        */
+		IMPORT_C void CreatePresetL(TDesC& aName, CAudioEqualizer& aAudioEqualizerUI);
+
+		/**
+        * Delete a Preset with the given index in the Central Repository
+        * @since 3.0
+        * @param aPresetIndex Index of the Preset in the Array
+        */
+		IMPORT_C void DeletePresetL(TInt aPresetIndex);
+
+		/**
+        * Retrieves a Preset with the given index from the Central Repository
+        * @since 3.0
+        * @param aPresetIndex Index of the Preset in the Array
+        */
+		IMPORT_C  const TDesC& GetPresetL(TInt aPresetIndex);
+
+		/**
+        * Get the reference to the Equalizer Object
+        * @since 3.0
+        * @return Reference to the Equalizer Object.
+        */
+		IMPORT_C CAudioEqualizer& Equalizer();
+
+		/**
+		* Get the reference to the BassBoost Object
+		* @since 3.0
+		* @return Reference to the CBassBoost Object.
+		*/
+		IMPORT_C CBassBoost& BassBoost();
+
+		/**
+        * Modify a Preset with the given Name and Equalizer Settings
+        * @since 3.0
+        * @param aPresetIndex Array Index of the Preset
+        * @param aName Name of the Preset
+        * @param aAudioEqualizer Equalizer Settings for the Preset
+        */
+		IMPORT_C void ModifyPresetL(TInt aPresetIndex, TDesC& aName, CAudioEqualizer& aAudioEqualizerUI);
+
+		/**
+        * Get the number of Pre Defined Presets
+        * @since 3.0
+        * @return Number of Pre Defined Presets
+        */
+		IMPORT_C TUint32 NumberOfPreDefinedPresets() const;
+
+		/**
+        * Get all the Presets defined in the Central Repository
+        * @since 3.0
+        * @return Array of all Presets.
+        */
+		IMPORT_C TArray<TEfAudioEqualizerUtilityPreset> Presets();
+
+		/**
+		 * Reset a System Defined Preset with the given index in the Array returned from Presets()
+		 * @since 3.0
+		 * @param aPresetIndex Index of the Preset in the Array
+		 */
+		IMPORT_C void ResetPresetL(TInt aPresetIndex);
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CAudioEqualizerUtility();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+
+        /**
+		* Second Phase Costructor for DevSound Instance
+		* @since 3.0
+		* @param aDevSound DevSound Referece
+		*/
+        void ConstructL(CMMFDevSound& aDevSound);
+
+		/**
+		* Second Phase Costructor for Audio Convert Utility
+		* @since 3.0
+		* @param aUtility CMdaAudioConvertUtility Referece
+		*/
+		void ConstructL(CMdaAudioConvertUtility& aUtility);
+
+		/**
+		* Second Phase Costructor for CMdaAudioInputStream
+		* @since 3.0
+		* @param aUtility CMdaAudioInputStream Referece
+		*/
+		void ConstructL(CMdaAudioInputStream& aUtility);
+
+		/**
+		* Second Phase Costructor for CMdaAudioOutputStream
+		* @since 3.0
+		* @param aUtilityCMdaAudioOutputStream Referece
+		*/
+		void ConstructL(CMdaAudioOutputStream& aUtility);
+
+		/**
+		* Second Phase Costructor for CMdaAudioPlayerUtility
+		* @since 3.0
+		* @param aUtility CMdaAudioPlayerUtility Referece
+		*/
+		void ConstructL(CMdaAudioPlayerUtility& aUtility);
+
+		/**
+		* Second Phase Costructor for CMdaAudioRecordUtility
+		* @since 3.0
+		* @param aUtility CMdaAudioRecordUtility Referece
+		*/
+		void ConstructL(CMdaAudioRecorderUtility& aUtility);
+
+		/**
+		* Second Phase Costructor for CMdaAudioToneUtility
+		* @since 3.0
+		* @param aUtility CMdaAudioToneUtility Referece
+		*/
+		void ConstructL(CMdaAudioToneUtility& aUtility);
+
+		/**
+		* Second Phase Costructor for MCustomCommand
+		* @since 3.0
+		* @param aUtility MCustomCommand Referece
+		*/
+		void ConstructL(CCustomCommandUtility* aUtility);
+
+		/**
+		* Second Phase Costructor for MCustomInterface
+		* @since 3.0
+		* @param aUtility MCustomInterface Referece
+		*/
+		void ConstructL(MCustomInterface& aCustomInterface);
+
+		/**
+		* Second Phase Costructor for CMidiClientUtility
+		* @since 3.0
+		* @param aUtility CMidiClientUtility Referece
+		*/
+		void ConstructL(CMidiClientUtility& aUtility);
+		
+		/**
+		* Second Phase Costructor for CDrmPlayerUtility
+		* @since 3.0
+		* @param aUtility CDrmPlayerUtility Referece
+		*/
+		void ConstructL(CDrmPlayerUtility& aUtility);		
+
+		/**
+		* Second Phase Costructor for CVideoPlayerUtility
+		* @since 3.2
+		* @param aUtility CVideoPlayerUtility Referece
+		*/
+		void ConstructL(CVideoPlayerUtility& aUtility);		
+
+		/**
+		* Function for Updating the Array from the Central Repository
+		* @since 3.0
+		* @param aUtility MCustomInterface Referece
+		*/
+		void UpdateFullPresetArrayFromCenRep(RArray<TEfAudioEqualizerUtilityPreset> &aFullPresetArray);
+
+		/**
+		* Function of Updating the Preset Array for the User
+		* @since 3.0
+		* @param aUtility MCustomInterface Referece
+		*/
+		void UpdatePresetArray(RArray<TEfAudioEqualizerUtilityPreset>& aPresetArray,const RArray<TEfAudioEqualizerUtilityPreset> &aFullPresetArray);
+
+
+	private: // Data
+
+		// Array for Storing the Current State of the Repository
+		// which has been compacted after the transaction
+		// with the Central Repository
+		RArray<TEfAudioEqualizerUtilityPreset> iPresetArray;
+
+		// Array Which contains the full information from the
+		// Central Repository except the Description Values
+		RArray<TEfAudioEqualizerUtilityPreset> iFullPresetArray;
+
+		// Pointer to the Equalizer Object
+		CAudioEqualizer* iAudioEqualizer;
+
+		// Pointer to the Equalizer Object
+		// which is returned to the UI for Manipulation
+		CAudioEqualizer* iTransAudioEqualizer;
+
+		// Pointer to the Bass Boost Ojbect
+		CBassBoost* iBassBoost;
+
+		// Pointer to the Preset Repository
+		CRepository* iPresetRepository;
+   };
+
+#endif      // CAUDIOEQUALIZERUTILITY_H
+
+// End of File