diff -r ec62f27282ac -r 2b69f8f46e4a svgtviewer/SvgtViewerPlugin/SVGCodecInc/SVGCodec.h --- a/svgtviewer/SvgtViewerPlugin/SVGCodecInc/SVGCodec.h Mon Jan 18 20:09:49 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,291 +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: SVGT codec for reading the file header & data. -* -*/ - - -#ifndef SVGCODEC_H -#define SVGCODEC_H - -#include -#include -#include -#include - - -class CSvgEngineInterfaceImpl; -class CFbsBitmap; -class TFrameInfo; -class TSVGFrameInfo; -class MSvgError; -class CGulIcon; - -// SVG Read codec. -class CSvgReadCodec : public CImageProcessorReadCodec - ,public MSvgRequestObserver - , public MSvgLoadingListener - - { -public: - enum TDownloadNeeded - { - // The uri refers to a local image file - ELocalImageFile, - // The uri refers to a remote image file - ERemoteImageFile, - // The uri doesnt refer to an image file - ENotAnImageFile - }; - - enum TImagesLocation - { - EPhoneMemory, - EMemoryCard - }; -public: - - /** - * Static constructor. Creates and returns a pointer to CSvgReadCodec - * @since 3.1 - * @return Pointer to the read codec instance. - */ - static CSvgReadCodec* NewL(const TSize& aSize); - - /** - * Destructor. - */ - virtual ~CSvgReadCodec(); - - /** - * Sets the SVG presentation data - * @since 3.1 - * @param aFileData SVG presentation file data - */ - void SetFileDataL( const TDesC8& aFileData ); - -public: //From MSvgRequestObserver - void UpdateScreen(); - - TBool ScriptCall( const TDesC& aScript, CSvgElementImpl* aCallerElement ); - - TInt FetchImage( const TDesC& aUri, RFs& aSession, RFile& aFileHandle ) ; - TInt CSvgReadCodec::FetchFont( const TDesC& /* aUri */, - RFs& /* aSession */, RFile& /* aFileHandle */ ); - - void GetSmilFitValue( TDes& aSmilValue ); - - void UpdatePresentation( const TInt32& aNoOfAnimation ); - -public: //User methods - void PrepareEngine(); - TSize ContentSize() const; - void GenerateThumbnailL(CFbsBitmap* aFrame, CFbsBitmap* aFrameMask); - TDownloadNeeded IsDownloadNeededL( const TDesC& aUri ) const; - TBool GetLocalFile( const TDesC& aUri, - TDes& aFileName , - const TDesC& aRefPath ) const; - - HBufC* GetImagesPath( CSvgReadCodec::TImagesLocation aImagesLocation) const; - -protected: - // From CImageProcessorReadCodec - /** - * Performs initial processing of image data and mask bitmaps. - * @param aFrameInfo - A reference to a TFrameInfo object. - * @param aFrameImageData - A reference to a CFrameImageData object. - * @param aDisableErrorDiffusion - A flag indicating whether error diffusion should be disabled. - * @param aDestination - The destination bitmap. - * @param aDestinationMask - The destination mask bitmap. - */ - virtual void InitFrameL(TFrameInfo& aFrameInfo, CFrameImageData& aFrameImageData, TBool aDisableErrorDiffusion, CFbsBitmap& aDestination, CFbsBitmap* aDestinationMask); - - /** - * Processes the frame data contained in aSrc. - * This is a pure virtual function that each derived class must implement. - * @param aSrc - * A reference to the buffer containing the frame data. - * - * @return The current frame state after processing. - */ - - virtual TFrameState ProcessFrameL(TBufPtr8& aSrc); - -private: - - /** - * Precesses the SVG presentation file data - */ - void DoProcessL(); - - /** - * Default constructor - * @param aSize specifies the thubnail size - */ - CSvgReadCodec(const TSize& aSize); - - void ConstructL(); - void InitializeEngineL(); - /** - * Deletes the structures associated with the engine - * viz. The Frame List, Mask List, Delay Interval List, - * The DOM for the content and the Engine Implementation itself - */ - void DeleteEngine(); -// From MSvgLoadingListener -public: - /** - * Query the listener if every element is to be reported or only - * the children of tag. - * - * @since 1.0 - * @return : ETrue if every element is to be reported, otherwise - * only the children of are reported. - */ - TBool ReportAllElements(); - - /** - * Query the listener if client will call 'AssignImageData' to decode images - * separately from parsing. This is used to avoid non-thread-safe calls in - * creating bitmap and decoding images, which must be executed in the main thread. - * - * @since 1.0 - * @return : ETrue to use 'ImageDataReference' instead of 'FetchImage'. - */ - TBool WillAssignImageData(); - - /** - * Callback when the href:xlink attribute is encountered for the - * element. This method is used to notify clients of image data references - * needed by element. This method is called only when 'WillAssignImageData' - * returns ETrue. - * - * @since 1.0 - * @return : none. - */ - void ImageDataReference( const TDesC& aUri ); - - /** - * Notified when the start of a svg document( tag) is encountered. - * - * @since 1.0 - * @return : For future use. Value is ignored. - */ - TBool DocumentStart() ; - - /** - * Notified when the end of a svg document( tag) is encountered. - * - * @since 1.0 - * @return : For future use. Value is ignored. - */ - TBool DocumentEnd(); - - /** - * Notified when the start of a svg element is encountered. - * - * @since 1.0 - * @param : aTagName -- name of svg tag - * @param : aAttributeList -- attribute list. - * @return : For future use. Value is ignored. - */ - TBool ElementStart( const TDesC& aTagName, - MSvgAttributeList& aAttributeList); - - /** - * Notified when the end of a svg element is encountered. - * activated. - * - * @since 1.0 - * @param : aTagName -- name of svg tag - * @return : For future use. Value is ignored. - */ - TBool ElementEnd( const TDesC& aTagName ); - - /** - * Notified when an external data is needed by the svg document, - * such as a image-file or an embedded svg-file. - * - * @since 1.0 - * @param : aUri -- URI string of external data - * @return : For future use. Value is ignored. - */ - TBool ExternalDataRequested( const TDesC& aUri ); - - /** - * Notified when an external data has been retrieved, - * such as a image-file or an embedded svg-file. - * - * @since 1.0 - * @param : aUri -- URI string of external data - * @return : For future use. Value is ignored. - */ - TBool ExternalDataReceived( const TDesC& aUri ); - - /** - * Notified when an external data request has failed. - * - * @since 1.0 - * @param : aUri -- URI string of external data - * @return : For future use. Value is ignored. - */ - TBool ExternalDataRequestFailed( const TDesC& aUri ); - - /** - * Notified when an unsupported element is encountered. - * - * @since 1.0 - * @param : aTagName -- tag name of element - * @param : aAttributeList -- attribute list. - * @return : For future use. Value is ignored. - */ - TBool UnsupportedElement( const TDesC& aTagName, - MSvgAttributeList& aAttributeList ); - - void ImagesLoaded(TInt aError); - void GetNewDataPosition(TInt &aPosition, TInt &aLength); - -private: // Data - // Dummy Bitmap used by SVG Engine to render content. - CFbsBitmap* iSVGTBitMapDummy; - - // SVG Engine Interface Implementation pointer - CSvgEngineInterfaceImpl* iSvgModule; - - //Frame Array - RPointerArray iFrameList; - RPointerArray iMaskList; - RArray iDelayList; - - // SVG Thumbnail Handle - TInt iThumbnailHandle; - - // SVGT content filename descriptor - HBufC8* iFileData; - TSize iContentSize; - MSvgError* iPrepareDomResult; - - TBool iImagesPresent; - - TBool iImagesLoaded; - - TSize iOriginalSize; - }; - -#endif //SVGCODEC_H