diff -r 8bda91a87a00 -r 8ee96d21d9bf profilesservices/RingingTone3DPlugin/inc/CRingingTone3DPlugin.h --- a/profilesservices/RingingTone3DPlugin/inc/CRingingTone3DPlugin.h Thu Aug 19 10:12:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,360 +0,0 @@ -/* -* Copyright (c) 2005 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: Plug-In that implements C3DRingingToneInterface. -* -*/ - - -#ifndef CRINGINGTONE3DPLUGIN_H -#define CRINGINGTONE3DPLUGIN_H - -// INCLUDES -#include -#include -#include - -#include -#include "C3DAudioTimeOutTimer.h" -#include "C3DAudioPattern.h" -#include "C3DAudioXMLParser.h" - -#include -#include - - -// FORWARD DECLARATIONS -class C3DAudioTimeOutTimer; -class CEnvironmentalReverbUtility; -class CSourceDoppler; -class CSourceLocation; -class CListenerLocation; - -class C3DPatternParser; - -#ifdef __STEREO_WIDENING_EFFECT_UI -class CStereoWidening; -#endif - - -// CONSTANTS -const TInt32 KRingingTone3DAudioEComPluginUID = 0x10208ADF; -const TInt KBufSize256 = 256; - - - -// CLASS DECLARATION - - -/** -* Plug-In implementing C3DRingingToneInterface. -* -* Used for playing 3D ringing tones. For playing, plugin uses player utility -* (eg CDrmPlayerUtility) from calling application. 3D effect is achieved by -* adding 3D data into normal ringing tone. C3DAudioXMLParser reads this -* data from .xml files (one file per 3D effect). -* -* @lib RingingTone3DPlugin.dll -* @since 5.0 -*/ -NONSHARABLE_CLASS (CRingingTone3DPlugin): public C3DRingingToneInterface, - public M3DAudioTimeOutNotifier - { - private: - - enum TRingingTonePlayerType - { - EMdaAudioPlayerUtility, - EMdaAudioToneUtility, - EDrmPlayerUtility, - EVideoPlayerUtility - }; - - - public: - - /** - * Two-phased constructor. - */ - static CRingingTone3DPlugin* NewL( TAny* aParameter ); - - /** - * Destructor. - */ - virtual ~CRingingTone3DPlugin(); - - private: - - /** - * C++ default constructor. - */ - CRingingTone3DPlugin(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL( TAny* aParameter ); - - - public: // Functions from C3DRingingToneInterface - - /** - * Set 3D plugin attribute. - * @param aAttributeKey - * @param aValue - * @return System-wide error code. - */ - TInt SetAttr( T3DRingingToneInterfaceAttr aAttributeKey, TInt aValue ); - - /** - * Set 3D plugin attribute. - * @param aAttributeKey - * @param aValue - * @return System-wide error code. - */ - TInt SetAttr( T3DRingingToneInterfaceAttr aAttributeKey, const TDesC& aValue ); - - /** - * Set 3D plugin attribute. - * @param aAttributeKey - * @param aValue - * @return System-wide error code. - */ - TInt SetAttr( TInt aAttributeKey, TAny* aValue ); - - /** - * Plays 3D ringing tone. - */ - void PlayL(); - - /** - * Stops playing 3D ringing tone. - */ - void Stop(); - - - private: // from M3DAudioTimeOutNotifier - - /** - * Callback initiated from C3DAudioTimeOutTimer. - */ - void TimerExpiredL(); - - private: - - /** - * Initializes player utility. - * @param aSamplePlayer Player utility. - */ - void Init( CMdaAudioPlayerUtility* aSamplePlayer ); - - /** - * Initializes player utility. - * @param aSamplePlayer Player utility. - */ - void Init( CMdaAudioToneUtility* aSamplePlayer ); - - /** - * Initializes player utility. - * @param aSamplePlayer Player utility. - */ - void Init( CDrmPlayerUtility* aSamplePlayer ); - -#ifdef RD_VIDEO_AS_RINGING_TONE - /** - * Initializes player utility. - * @param aSamplePlayer Player utility. - */ - void Init( CVideoPlayerUtility* aSamplePlayer ); -#endif - - /** - * Plays 3D ringing tone. - */ - void DoPlayL(); - - /** - * Add 3D pattern (effect) data into normal ringing tone. - */ - void SetNext3DPatternPositionL(); - - /** - * Plays 3D ringing tone. - */ - void PlayRingingTone(); - - /** - * Stops playing 3D ringing tone. - */ - void StopRingingTone(); - - private: - - /** - * Calculates the correct dTime according to velocity-value in cenrep. - * @param aTime Time from the script to be calculated. - */ - void CalculateDTime( TInt& aTime ); - - /** - * Plugin initialization. - */ - void InitializeL(); - - /** - * Plugin uninitialization. Needed in error case when normal ringing - * tone is played. - */ - void UnInitialize(); - - - private: - - /** - * Gets CEnvironmentalReverbUtility object. - * @return CEnvironmentalReverbUtility. - */ - CEnvironmentalReverbUtility* EnvironmentalReverbUtilityL(); - - /** - * Gets CSourceLocation object. - * @return CSourceLocation. - */ - CSourceLocation* SourceLocationL(); - - /** - * Gets CListenerLocation object. - * @return CListenerLocation. - */ - CListenerLocation* ListenerLocationL(); - - /** - * Gets CSourceDoppler object. - * @return CSourceDoppler. - */ - CSourceDoppler* SourceDopplerL(); - -#ifdef __STEREO_WIDENING_EFFECT_UI - CStereoWidening* StereoWideningL(); -#endif - - - private: - - /** - * Read active profile setting from profile engine. Needed in case calling - * app does not set 3D effect and echo attributes. - */ - void ReadActiveProfileL(); - - /** - * Checks that tone can be used as 3D ringing tone. This check is only - * done if calling app explicitly sets ringing tone attribute. - */ - TBool CheckRingingTone(); - - /** - * Panics plugin dll. - * @param aReason Panic code. - */ - void Panic(TInt aReason); - - -#ifdef _DEBUG - public: - void FlogRepositoryL(CRepository* aRepository, TInt aEcho); - //void FlogPatternsL(TInt aOldPattern, TInt aNewPattern); - void FlogProfileL(MProfile* aProfile); - void FlogPlayer(TInt aPlayer); - void Check3DEchoL(TInt aEcho); - void Check3DPatternL(TInt aPattern); - void FlogPositionL(T3DPosition& aPosition, TInt aIndex); - void FlogVelocityL(T3DVelocity& aVelocity, TInt aIndex); - void FlogTimeL(TInt aTime, TInt aIndex); - void FlogPubSubL(TInt aEcho); -#endif - - - private: // Data - - // 3D Ringing tone velocity - TInt iVelocity; - - // Doppler status - TBool iDoppler; - - // 3D effect (pattern) - TInt iProfile3DToneEffect; - - // 3D echo - TInt iProfile3DToneEcho; - - // ringing tone, used only for validity check - TFileName iRingingTone; - - // profile id, currently not used - TInt iProfileId; - - // ringing tone player type - TInt iPlayerType; - - // is ringing tone playing - TInt iPlaying; - - // 3D pattern parser - C3DAudioXMLParser* iParser; - - // current position in pattern script - TInt iCurrentUpdate; - - // player utility used for playback - CMdaAudioPlayerUtility* iAudioPlayerUtility; - - // player utility - CMdaAudioToneUtility* iAudioToneUtility; - - // player utility - CDrmPlayerUtility* iDrmPlayerUtility; - -#ifdef RD_VIDEO_AS_RINGING_TONE - // player utility - CVideoPlayerUtility* iVideoPlayerUtility; -#endif - - // timer for updating 3D pattern position - C3DAudioTimeOutTimer* iTimer; - - // reverberation utility used to set reverb presets - CEnvironmentalReverbUtility* iReverbEffect; - - // doppler-effect - CSourceDoppler* iDopplerEffect; - - // source location-effect - CSourceLocation* iSource; - - // listener location-effect - CListenerLocation* iListener; - -#ifdef __STEREO_WIDENING_EFFECT_UI - // stereo widening-effect - CStereoWidening* iStereoWidening; -#endif - }; - - - - -#endif // CRINGINGTONE3DPLUGIN_H - -// End of File