diff -r 1882882c7f9c -r e52958d06c29 svgtviewer/SvgtViewerPlugin/ScreenSaverPluginInc/SvgRenderFrameControl.h --- a/svgtviewer/SvgtViewerPlugin/ScreenSaverPluginInc/SvgRenderFrameControl.h Tue May 25 12:28:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,272 +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: SVGRenderFrameControl provides an implementation of a control -* which renders SVG using RenderFrames API provided by the -* engine. -* -*/ - - -#ifndef SVGRENDERFRAMECONTROL_H -#define SVGRENDERFRAMECONTROL_H - -#include -#include -#include -#include -#include "SvgRenderFrameTimer.h" - -const TInt KMaxTimeDuration=2500; -class CSvgEngineInterfaceImpl; -class MSvgtAppObserver; - - -/** -* CSvgRenderFrameControl is a CCoeControl used to display SVGT content. -* It makes use of RenderFrames API provided by the svg engine to get -* the set of frame buffers and render it one by using render frame timer -* -* @lib SVGTScreenSaverPlugin.lib -* @since 3.1 -*/ -class CSvgRenderFrameControl: public CCoeControl, - public MSvgRenderFrameTimerListener, - public MSvgRequestObserver - { - - public: - - /** - * Two-phased constructor. - * @since 3.1 - */ - static CSvgRenderFrameControl* NewL( - const CCoeControl* aParent, - RFile& aFileHandle, - MSvgtAppObserver* aObserver = NULL ); - - /** - * Two-phased constructor. - * @since 3.1 - */ - static CSvgRenderFrameControl* NewLC( - const CCoeControl* aParent, - RFile& aFileHandle, - MSvgtAppObserver* aObserver = NULL ); - - /** - * Destructor. - */ - virtual ~CSvgRenderFrameControl(); - - - /** - * From CCoeControl, - * @since 3.1 - */ - void Draw(const TRect& aRect) const; - - /** - * From CCoeControl, - * @since 3.1 - */ - void SizeChanged(); - - public : // From MSvgRequestObserver - - /** - * From MSvgRequestObserver, Method Called by Svg Engine, - * when the frame buffer is updated and has to be redrawn - * @since 3.1 - */ - virtual void UpdateScreen(); - - /** - * From MSvgRequestObserver, Method Called by Svg Engine, - * when there is a script support - * @since 3.1 - */ - virtual TBool ScriptCall( const TDesC& aScript, - CSvgElementImpl* aCallerElement ); - - /** - * From MSvgRequestObserver, Method Called by Svg Engine, - * when it encounters an image element - * @since 3.1 - */ - virtual TInt FetchImage( const TDesC& aUri, RFs& aSession, - RFile& aFileHandle ); - - TInt FetchFont( const TDesC& /* aUri */, - RFs& /* aSession */, RFile& /* aFileHandle */ ); - - /** - * This Method is called by the Svg engine to Get the SMIL - * Fit Attribute Value - * @since 3.1 - */ - virtual void GetSmilFitValue( TDes& aSmilValue ); - - /** - * This Method updates the presentation status - * @since 3.1 - */ - virtual void UpdatePresentation(const TInt32& aNoOfAnimation); - - public: // From MSvgRenderFrameTimerListener - - /** - * This function is a callback from animation timer, - * when there is an animation timeout. - * @since 3.1 - */ - virtual void AnimationTimeOut(); - - - public: // New Function - - /* - * Starts the timer - * @since 3.1 - */ - void SetTimer(); - - /* - * Cancels the timer - * @since 3.1 - */ - void CancelTimer(); - - /* - * Processes the command sent by the user of the control - * @param aCommandId - command to be processed - * @since 3.1 - */ - virtual void ProcessViewerCommandL( TInt aCommandId ); - - /* - * Gets the current index of the frame buffers - * @since 3.1 - */ - TInt GetCurrentIndex() const; - - /* - * Sets the index of the buffer to be used - * @param aIndex - index to be set - * @since 3.1 - */ - void SetCurrentIndex( TInt aIndex ); - - /** - * This function initializes the svg engine. - * This function is also used to check the validity of the file. - * @param aCheckFile True if used in check file mode - * False otherwise - * @since 3.1 - */ - void InitializeEngineL( TBool aCheckFile, - MSvgRequestObserver* aObserver = NULL ); - - - /** - * This function deletes the svg engine. - * @since 3.1 - */ - void DeleteEngine(); - - /** - * This function uses the svg engine to get the frames in an array - * of buffers. - * @since 3.1 - */ - TInt RenderMyFrames(); - - /** - * This function moves the index of the array - * of buffers. - * @since 3.1 - */ - void MoveIndex(); - - /** - * This function logs the debug message - * @param aMsg - message to be logged - * @since 3.1 - */ - void PrintDebugMsg( const TDesC& aMsg ) const; - - - public: - /** - * Default Constructor - * @since 3.1 - */ - CSvgRenderFrameControl( RFile& aFileHandle , - MSvgtAppObserver* aObserver = NULL ); - - - /** - * 2nd phase constructor - * @since 3.1 - */ - void ConstructL( const CCoeControl* aParent ); - - private: - - // Pointer to the Svg Engine - CSvgEngineInterfaceImpl* iSvgEngine; - - // Frame buffer to be given to svg engine during initialization - CFbsBitmap* iBmap; - - // Array of bitmaps generated by RenderFrames - RPointerArray iBitmapFrames; - - // Array of corresponding masks for the Bitmaps - RPointerArray iMaskFrames; - - // Array of TimeInterval between frames - RArray iDelayIntervals; - - // file handle of the svg file to be set as ScreenSaver. - RFile* iFileHandle; - - // Index of the bitmap in the array - TInt iCurrentFrame; - - // Start duration to be given to RenderFrames - TUint iDuration; - - // Handle to the Svg Dom - TInt iSvgDom; - - // timer - CSvgRenderFrameTimer* iRenderFrameTimer; - - // boolean to check whether it is in play or paused state - TBool iCanPlay; - - // size of the control currently - TRect iRect; - - // Parent Control - const CCoeControl* iParent; - - // App observer pointer - MSvgtAppObserver* iAppObserver; - - }; - -#endif // SVGRENDERFRAMECONTROL_H -// End of File