diff -r 000000000000 -r 2e3d3ce01487 startupservices/startupanimation/sanimengine/inc/sanimengineimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/startupservices/startupanimation/sanimengine/inc/sanimengineimpl.h Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,209 @@ +/* +* Copyright (c) 2007 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: Declaration of CSAnimEngineImpl class +* +*/ + + +#ifndef SANIMENGINEIMPL_H +#define SANIMENGINEIMPL_H + +#include "sanimengine.h" + +class CSAnimImagePlugin; +class CSAnimPluginCtrl; +class CSAnimTonePlugin; +class RFs; + +/** +* Start-up Animation Engine implementation class. +* +* @lib None +* @since S60 3.2 +*/ +NONSHARABLE_CLASS( CSAnimEngineImpl ) : public CSAnimEngine + { + +public: + + /** + * Constructor. + * + * @since S60 3.2 + * + * @param aFs Fileserver reference. + * @param aObserver Observer for animation events.. + */ + CSAnimEngineImpl( RFs& aFs, MSAnimObserver& aObserver ); + + /** + * Destructor. + * + * @since S60 3.2 + */ + virtual ~CSAnimEngineImpl(); + + /** + * Call-back to be called when a plug-in completes its activity. + * + * @since S60 3.2 + */ + void PluginFinished(); + +protected: + + /** + * Set the file name identifying the image / animation to show and other + * properties that affect how the image / animation is shown. + * From CSAnimEngine. + * + * @since S60 3.2 + * + * @param aImageFileName Identifies the image file to use. + * @param aDisplayMode Display mode to use, if supported by the image. + * @param aSize Requested size for the image. + * @param aFrameDelay Frame delay to use. + * @param aScalingEnabled Identifies whether to try to scale the image to fit + * the screen size or just use the target size of the animation as it is. + * @param aRepeatCount How many times to repeat the animation. + * Zero indicates infinite. + * @return KErrNone if file was found, a plug-in for the file type was found + * and successfully loaded. One of the system-wide error codes otherwise. + */ + virtual TInt SetImageProperties( + const TDesC& aImageFileName, + const TDisplayMode aDisplayMode, + const TSize& aSize, + const TTimeIntervalMicroSeconds32& aFrameDelay, + const TBool aScalingEnabled, + const TInt aRepeatCount ); + + /** + * Set the file name identifying the tone to play and other properties that + * affect how the tone is played. + * From CSAnimEngine. + * + * @since S60 3.2 + * + * @param aToneFileName Identifies the tone file to use. + * @param aVolume Volume level to use. + * @param aVolumeRamp Volume ramp: the period over which the volume level is + * to rise smoothly from nothing to the normal volume level. + * @param aRepeatCount How many times to repeat the tone. + * Zero indicates infinite. + * @return KErrNone if file was found, a plug-in for the file type was found + * and successfully loaded. One of the system-wide error codes otherwise. + */ + virtual TInt SetToneProperties( + const TDesC& aToneFileName, + const TInt aVolume, + const TTimeIntervalMicroSeconds& aVolumeRamp, + const TInt aRepeatCount ); + + /** + * Load the parts of the show (image/animation and/or tone) from file(s). + * Completes immediately with KErrNone if the show has no parts. + * From CSAnimEngine. + * + * @since S60 3.2 + * + * @param aStatus Request to complete when loading is complete. + */ + virtual void Load( TRequestStatus& aStatus ); + + /** + * Get the backgroud colour of the image. + * Should only be called after successfully loading the image. + * From CSAnimEngine. + * + * @since S60 3.2 + * + * @return The backgroud colour requested for the image. + */ + virtual TRgb BackroundColour() const; + + /** + * Start the show (image/animation and/or tone). + * Completes immediately with KErrNone if the show has no parts. + * From CSAnimEngine. + * + * @since S60 3.2 + * + * @param aStatus Request to complete when all parts of the show have + * finished. + */ + virtual void Start( TRequestStatus& aStatus ); + + /** + * Cancel activity. + * From CSAnimEngine. + * + * @since S60 3.2 + */ + virtual void Cancel(); + +private: + + /** + * Store client request status to member variable. + * + * @since S60 3.2 + * + * @param aStatus Request status from client. + */ + void SetClientRequest( TRequestStatus& aStatus ); + + /** + * Set client request to pending state. + * + * @since S60 3.2 + */ + void SetRequestPending(); + + /** + * Complete client request with the given status code. + * + * @since S60 3.2 + * + * @param aStatusCode KErrNone or one of Symbian error codes. + */ + void CompleteClientRequest( const TInt aStatusCode ); + +private: + + /** Copy constructor. */ + CSAnimEngineImpl( const CSAnimEngineImpl& ); + /** Assignment operator. */ + CSAnimEngineImpl& operator=( const CSAnimEngineImpl& ); + +protected: // data + + /** File server session. */ + RFs& iFs; + + /** Observer for animation events. */ + MSAnimObserver& iObserver; + + /** Controller for the image plug-in. Owned. May be NULL. */ + CSAnimPluginCtrl* iImagePluginCtrl; + + /** Controller for the tone plug-in. Owned. May be NULL. */ + CSAnimPluginCtrl* iTonePluginCtrl; + + /** To be used to inform client about request completion. May be NULL. Not owned. */ + TRequestStatus* iClientStatus; + + }; + +#endif // SANIMENGINEIMPL_H