00001 /* 00002 * ============================================================================== 00003 * Name : EnvironmentalReverbBase.h 00004 * Part of : Effects Framework 00005 * Description : This is the definition of the Environmental Reverb effect 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 Corporation. All rights are reserved. Copying, 00012 * including reproducing, storing, adapting or translating, any 00013 * or all of this material requires the prior written consent of 00014 * Nokia Corporation. This material also contains confidential 00015 * information which may not be disclosed to others without the 00016 * prior written consent of Nokia Corporation. 00017 * ============================================================================== 00018 */ 00019 00020 #ifndef CENVIRONMENTALREVERB_H 00021 #define CENVIRONMENTALREVERB_H 00022 00023 // INCLUDES 00024 00025 #include <e32base.h> 00026 #include <AudioEffectBase.h> 00027 #include <EnvironmentalReverbData.h> 00028 #include <MCustomInterface.h> 00029 00030 const TUid KUidEnvironmentalReverbEffect = {0x10203837}; 00031 00032 // FORWARD DELCARATION 00033 class CMdaAudioConvertUtility; 00034 class CMdaAudioPlayerUtility; 00035 class CMdaAudioRecorderUtility; 00036 class CMdaAudioInputStream; 00037 class CMdaAudioOutputStream; 00038 class CMdaAudioToneUtility; 00039 class CCustomCommandUtility; 00040 class CCustomInterfaceUtility; 00041 class CMMFDevSound; 00042 class CMidiClientUtility; 00043 class CDrmPlayerUtility; 00044 class CVideoPlayerUtility; 00045 00046 // CLASS DECLARATION 00047 00055 class CEnvironmentalReverb : public CAudioEffect 00056 { 00057 00058 public: //New Functions 00059 00065 IMPORT_C static CEnvironmentalReverb* NewL(); 00066 00073 IMPORT_C static CEnvironmentalReverb* NewL( CMdaAudioConvertUtility& aUtility ); 00074 00081 IMPORT_C static CEnvironmentalReverb* NewL( CMdaAudioInputStream& aUtility ); 00082 00089 IMPORT_C static CEnvironmentalReverb* NewL( CMdaAudioOutputStream& aUtility ); 00090 00097 IMPORT_C static CEnvironmentalReverb* NewL( CMdaAudioPlayerUtility& aUtility ); 00098 00107 IMPORT_C static CEnvironmentalReverb* NewL( CMdaAudioRecorderUtility& aUtility, TBool aRecordStream ); 00108 00115 IMPORT_C static CEnvironmentalReverb* NewL( CMdaAudioToneUtility& aUtility ); 00116 00123 IMPORT_C static CEnvironmentalReverb* NewL( CMMFDevSound& aDevSound ); 00124 00131 IMPORT_C static CEnvironmentalReverb* NewL( CCustomCommandUtility* aUtility ); 00132 00139 IMPORT_C static CEnvironmentalReverb* NewL( MCustomInterface& aCustomInterface ); 00140 00147 IMPORT_C static CEnvironmentalReverb* NewL( CMidiClientUtility& aUtility ); 00148 00155 IMPORT_C static CEnvironmentalReverb* NewL( CDrmPlayerUtility& aUtility ); 00156 00163 IMPORT_C static CEnvironmentalReverb* NewL( CVideoPlayerUtility& aUtility ); 00164 00169 IMPORT_C virtual ~CEnvironmentalReverb(); 00170 00176 IMPORT_C TUint32 DecayHFRatio() const; 00177 00184 IMPORT_C void DecayHFRatioRange(TUint32& aMin, TUint32& aMax); 00185 00191 IMPORT_C TUint32 DecayTime() const; 00192 00199 IMPORT_C void DecayTimeRange(TUint32& aMin, TUint32& aMax); 00200 00206 IMPORT_C TUint32 Density() const; 00207 00213 IMPORT_C TUint32 Diffusion() const; 00214 00220 IMPORT_C TUint32 ReflectionsDelay() const; 00221 00227 IMPORT_C TUint32 ReflectionsDelayMax() const; 00228 00234 IMPORT_C TInt32 ReflectionsLevel() const; 00235 00242 IMPORT_C void ReflectionLevelRange( TInt32& aMin, TInt32& aMax ); 00243 00249 IMPORT_C TUint32 ReverbDelay() const; 00250 00256 IMPORT_C TUint32 ReverbDelayMax() const; 00257 00263 IMPORT_C TInt32 ReverbLevel() const; 00264 00272 IMPORT_C void ReverbLevelRange( TInt32& aMin, TInt32& aMax ); 00273 00279 IMPORT_C TInt32 RoomHFLevel() const; 00280 00288 IMPORT_C void RoomHFLevelRange( TInt32& aMin, TInt32& aMax ); 00289 00295 IMPORT_C TInt32 RoomLevel() const; 00296 00304 IMPORT_C void RoomLevelRange( TInt32& aMin, TInt32& aMax ); 00305 00312 IMPORT_C void SetDecayHFRatioL( TUint32 aDecayHFRatio ); 00313 00319 IMPORT_C void SetDecayTimeL( TUint32 aDecayTime ); 00320 00326 IMPORT_C void SetDensityL( TUint32 aDensity ); 00327 00333 IMPORT_C void SetDiffusionL( TUint32 aDiffusion ); 00334 00340 IMPORT_C void SetReflectionsDelayL( TUint32 aReflectionsDelay ); 00341 00347 IMPORT_C void SetReflectionsLevelL( TInt32 aReflectionsLevel ); 00348 00354 IMPORT_C void SetReverbDelayL( TUint32 aReverbDelay ); 00355 00361 IMPORT_C void SetReverbLevelL( TInt32 aReverbLevel ); 00362 00368 IMPORT_C void SetRoomHFLevelL( TInt32 aRoomHFLevel ); 00369 00375 IMPORT_C void SetRoomLevelL( TInt32 aRoomLevel ); 00376 00382 IMPORT_C TUint32 DelayMax() const; 00383 00384 public: // functions from base class 00385 00386 /* 00387 * From CAudioEffect 00388 * Get the unique identifier of the audio effect 00389 * 00390 * @return Unique identifier 00391 */ 00392 IMPORT_C TUid Uid() const; 00393 00394 protected: // Functions from base classes 00395 00402 IMPORT_C const TDesC8& DoEffectData(); 00403 00411 IMPORT_C void SetEffectData( const TDesC8& aEffectDataBuffer ); 00412 00413 protected: 00414 00420 IMPORT_C CEnvironmentalReverb(); 00421 00422 protected: 00423 00424 // Reverb data structure 00425 TEfEnvironmentalReverb iReverbData; 00426 // Data package sent to server 00427 TEfEnvReverbDataPckg iDataPckgTo; 00428 // Data package received from server 00429 TEfEnvReverbDataPckg iDataPckgFrom; 00430 00431 protected: // Friend classes 00432 00433 friend class CEnvironmentalReverbMessageHandler; 00434 friend class CEnvironmentalReverbUtility; 00435 00436 }; 00437 00438 // of CENVIRONMENTALREVERB_H 00439 #endif 00440 00441 // End of File