00001 /* 00002 * ============================================================================== 00003 * Name : AUDIOEQUALIZERUTILITY.h 00004 * Part of : Audio Effects Framework 00005 * Description : This is the definition of the audio equalizer utility class. 00006 * Version : %version: 5 % 00007 * 00008 * Copyright © 2006 Nokia. All rights reserved. 00009 * This material, including documentation and any related 00010 * computer programs, is protected by copyright controlled by 00011 * Nokia. All rights are reserved. Copying, including 00012 * reproducing, storing, adapting or translating, any 00013 * or all of this material requires the prior written consent of 00014 * Nokia. This material also contains confidential 00015 * information which may not be disclosed to others without the 00016 * prior written consent of Nokia. 00017 * ============================================================================== 00018 */ 00019 00020 00021 #ifndef CAUDIOEQUALIZERUTILITY_H 00022 #define CAUDIOEQUALIZERUTILITY_H 00023 00024 // INCLUDES 00025 #include <e32base.h> 00026 #include <e32svr.h> 00027 #include <AudioEqualizerBase.h> 00028 #include <BassBoostBase.h> 00029 #include <centralrepository.h> 00030 #include <AudioEqualizerUtilityData.h> 00031 00032 // FORWARD DECLARATIONS 00033 class TEfAudioEqualizerUtilityPreset; 00034 class CAudioEqualizer; 00035 class CBassBoost; 00036 class CMdaAudioConvertUtility; 00037 class CMdaAudioPlayerUtility; 00038 class CMdaAudioRecorderUtility; 00039 class CMdaAudioInputStream; 00040 class CMdaAudioOutputStream; 00041 class CMdaAudioToneUtility; 00042 class CCustomCommandUtility; 00043 class CCustomInterfaceUtility; 00044 class CMMFDevSound; 00045 class CRepository; 00046 #start_since SINCE_3_1_SDK 00047 class CMidiClientUtility; 00048 #end_since SINCE_3_1_SDK 00049 00050 // CLASS DECLARATION 00051 00059 class CAudioEqualizerUtility : public CBase 00060 { 00061 public: // Constructors and destructor 00062 00063 00070 IMPORT_C static CAudioEqualizerUtility* NewL(CMMFDevSound& aDevSound); 00071 00078 IMPORT_C static CAudioEqualizerUtility* NewL(CMdaAudioConvertUtility& aUtility); 00079 00086 IMPORT_C static CAudioEqualizerUtility* NewL(CMdaAudioInputStream& aUtility); 00087 00094 IMPORT_C static CAudioEqualizerUtility* NewL(CMdaAudioOutputStream& aUtility); 00095 00102 IMPORT_C static CAudioEqualizerUtility* NewL(CMdaAudioPlayerUtility& aUtility); 00103 00110 IMPORT_C static CAudioEqualizerUtility* NewL(CMdaAudioRecorderUtility& aUtility); 00111 00118 IMPORT_C static CAudioEqualizerUtility* NewL(CMdaAudioToneUtility& aUtility); 00119 00126 IMPORT_C static CAudioEqualizerUtility* NewL(CCustomCommandUtility* aUtility); 00127 00134 IMPORT_C static CAudioEqualizerUtility* NewL(MCustomInterface& aCustomInterface); 00135 00136 #start_since SINCE_3_1_SDK 00137 00144 IMPORT_C static CAudioEqualizerUtility* NewL(CMidiClientUtility& aUtility); 00145 #end_since SINCE_3_1_SDK 00146 00147 00151 virtual ~CAudioEqualizerUtility(); 00152 00158 IMPORT_C void ApplyPresetL(TInt aPreset); 00159 00164 IMPORT_C void DisableEqualizerL(); 00165 00172 IMPORT_C void CreatePresetL(TDesC& aName, CAudioEqualizer& aAudioEqualizerUI); 00173 00179 IMPORT_C void DeletePresetL(TInt aPresetIndex); 00180 00186 IMPORT_C const TDesC& GetPresetL(TInt aPresetIndex); 00187 00193 IMPORT_C CAudioEqualizer& Equalizer(); 00194 00200 IMPORT_C CBassBoost& BassBoost(); 00201 00209 IMPORT_C void ModifyPresetL(TInt aPresetIndex, TDesC& aName, CAudioEqualizer& aAudioEqualizerUI); 00210 00216 IMPORT_C TUint32 NumberOfPreDefinedPresets() const; 00217 00223 IMPORT_C TArray<TEfAudioEqualizerUtilityPreset> Presets(); 00224 00230 IMPORT_C void ResetPresetL(TInt aPresetIndex); 00231 00232 private: 00233 00237 CAudioEqualizerUtility(); 00238 00248 void ConstructL(CMMFDevSound& aDevSound); 00249 00255 void ConstructL(CMdaAudioConvertUtility& aUtility); 00256 00262 void ConstructL(CMdaAudioInputStream& aUtility); 00263 00269 void ConstructL(CMdaAudioOutputStream& aUtility); 00270 00276 void ConstructL(CMdaAudioPlayerUtility& aUtility); 00277 00283 void ConstructL(CMdaAudioRecorderUtility& aUtility); 00284 00290 void ConstructL(CMdaAudioToneUtility& aUtility); 00291 00297 void ConstructL(CCustomCommandUtility* aUtility); 00298 00304 void ConstructL(MCustomInterface& aCustomInterface); 00305 00311 void ConstructL(CMidiClientUtility& aUtility); 00312 00318 void ConstructL(CDrmPlayerUtility& aUtility); 00319 00325 void UpdateFullPresetArrayFromCenRep(RArray<TEfAudioEqualizerUtilityPreset> &aFullPresetArray); 00326 00332 void UpdatePresetArray(RArray<TEfAudioEqualizerUtilityPreset>& aPresetArray,const RArray<TEfAudioEqualizerUtilityPreset> &aFullPresetArray); 00333 00334 00335 private: // Data 00336 00337 // Array for Storing the Current State of the Repository 00338 // which has been compacted after the transaction 00339 // with the Central Repository 00340 RArray<TEfAudioEqualizerUtilityPreset> iPresetArray; 00341 00342 // Array Which contains the full information from the 00343 // Central Repository except the Description Values 00344 RArray<TEfAudioEqualizerUtilityPreset> iFullPresetArray; 00345 00346 // Pointer to the Equalizer Object 00347 CAudioEqualizer* iAudioEqualizer; 00348 00349 // Pointer to the Equalizer Object 00350 // which is returned to the UI for Manipulation 00351 CAudioEqualizer* iTransAudioEqualizer; 00352 00353 // Pointer to the Bass Boost Ojbect 00354 CBassBoost* iBassBoost; 00355 00356 // Pointer to the Preset Repository 00357 CRepository* iPresetRepository; 00358 }; 00359 00360 // CAUDIOEQUALIZERUTILITY_H 00361 #endif 00362 00363 // End of File