00001 /* 00002 * ============================================================================== 00003 * Name : StereoWideningBase.h 00004 * Part of : Effects Framework 00005 * Description : This is the definition of the Stereo Widening effect class. 00006 * Version : %version: 3 % 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 CSTEREOWIDENING_H 00021 #define CSTEREOWIDENING_H 00022 00023 // INCLUDES 00024 00025 #include <e32base.h> 00026 #include <AudioEffectBase.h> 00027 #include <StereoWideningData.h> 00028 #include <MCustomInterface.h> 00029 00030 const TUid KUidStereoWideningEffect = {0x10203836}; 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 #start_since SINCE_3_1_SDK 00043 class CMidiClientUtility; 00044 #end_since SINCE_3_1_SDK 00045 00046 // CLASS DECLARATION 00047 00055 class CStereoWidening : public CAudioEffect 00056 { 00057 00058 public: //New Functions 00059 00065 IMPORT_C static CStereoWidening* NewL(); 00066 00075 IMPORT_C static CStereoWidening* NewL(CMdaAudioConvertUtility& aUtility, 00076 TBool aEnable = EFalse, 00077 TInt8 aInitialLevel = 0); 00078 00087 IMPORT_C static CStereoWidening* NewL(CMdaAudioInputStream& aUtility, 00088 TBool aEnable = EFalse, 00089 TInt8 aInitialLevel = 0); 00090 00099 IMPORT_C static CStereoWidening* NewL(CMdaAudioOutputStream& aUtility, 00100 TBool aEnable = EFalse, 00101 TInt8 aInitialLevel = 0); 00102 00111 IMPORT_C static CStereoWidening* NewL(CMdaAudioPlayerUtility& aUtility, 00112 TBool aEnable = EFalse, 00113 TInt8 aInitialLevel = 0); 00114 00125 IMPORT_C static CStereoWidening* NewL(CMdaAudioRecorderUtility& aUtility, 00126 TBool aRecordStream, 00127 TBool aEnable = EFalse, 00128 TInt8 aInitialLevel = 0); 00129 00138 IMPORT_C static CStereoWidening* NewL(CMdaAudioToneUtility& aUtility, 00139 TBool aEnable = EFalse, 00140 TInt8 aInitialLevel = 0); 00141 00150 IMPORT_C static CStereoWidening* NewL(CMMFDevSound& aDevSound, 00151 TBool aEnable = EFalse, 00152 TInt8 aInitialLevel = 0); 00153 00162 IMPORT_C static CStereoWidening* NewL(CCustomCommandUtility* aUtility, 00163 TBool aEnable = EFalse, 00164 TInt8 aInitialLevel = 0); 00165 00174 IMPORT_C static CStereoWidening* NewL(MCustomInterface& aCustomInterface, 00175 TBool aEnable = EFalse, 00176 TInt8 aInitialLevel = 0); 00177 00178 #start_since SINCE_3_1_SDK 00179 00188 IMPORT_C static CStereoWidening* NewL(CMidiClientUtility& aUtility, 00189 TBool aEnable = EFalse, 00190 TInt8 aInitialLevel = 0); 00191 #end_since SINCE_3_1_SDK 00192 00193 00198 IMPORT_C virtual ~CStereoWidening(); 00199 00207 IMPORT_C TBool IsContinuousLevelSupported() const; 00208 00214 IMPORT_C void SetStereoWideningLevelL( TUint8 aLevel ); 00215 00221 IMPORT_C TUint8 StereoWideningLevel() const; 00222 00223 00224 public: // functions from base class 00225 00226 /* 00227 * From CAudioEffect 00228 * Get the unique identifier of the audio effect 00229 * 00230 * @return Unique identifier 00231 */ 00232 IMPORT_C TUid Uid() const; 00233 00234 protected: // Functions from base classes 00235 00242 IMPORT_C const TDesC8& DoEffectData(); 00243 00251 IMPORT_C void SetEffectData( const TDesC8& aEffectDataBuffer ); 00252 00253 protected: 00254 00261 IMPORT_C CStereoWidening(); 00262 00263 protected: 00264 00265 // Balance data structure 00266 TEfStereoWidening iStereoWideningData; 00267 // Data package sent to server 00268 TEfStereoWideningDataPckg iDataPckgTo; 00269 // Data package received from server 00270 TEfStereoWideningDataPckg iDataPckgFrom; 00271 00272 protected: // Friend classes 00273 friend class CStereoWideningMessageHandler; 00274 00275 }; 00276 00277 // of CSTEREOWIDENING_H 00278 #endif 00279 00280 // End of File