--- /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