diff -r 058b1fc1663a -r 8a173132b0aa scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/inc/GifAnimationPlugin.h --- a/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/inc/GifAnimationPlugin.h Mon Jan 18 20:19:52 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,430 +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: Screensaver GifAnimation plug-in implementation header file -* -*/ - - - -#ifndef C_GIFANIMATIONPLUGIN_H -#define C_GIFANIMATIONPLUGIN_H - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - - -// FORWARD DECLARATIONS -class MIHLFileImage; -class MIHLBitmap; -class MIHLImageViewer; - -class CCoeControl; -class CGifAnimationPlugin; - -// CONSTANTS -/** implementation id GifAnim Ecom Plugin */ -const TInt KGifAnimationPluginImplementationValue = 0x102750B4; - -/****************************************** -* This class is specific to ECom Style Plugin. -* This is used for passing plugin specific initialization information -* to and from browser. -*******************************************/ - -class CGifAnimationPluginEcomMain : public CEcomBrowserPluginInterface - { - public: // Functions from base classes - - /** - * Instance factory - * @param aInitParam an optional parameter - */ - static CGifAnimationPluginEcomMain* NewL(TAny* aInitParam); - - /** - * Destructor. - */ - virtual ~CGifAnimationPluginEcomMain(); - - /** - * @return pointer to functions struct. - */ - NPNetscapeFuncs* Funcs() { return iNpf; } - - private: // Constructors - CGifAnimationPluginEcomMain( NPNetscapeFuncs* aNpf ); - void Construct( NPPluginFuncs* aPluginFuncs ); - private: // new functions - /** - * Sets pointers to interface functions - * @param aPpf structure to fill - */ - NPError InitializeFuncs( NPPluginFuncs* aPpf ); - - private: // Data - // pointer to plug-in function pointers struct - NPNetscapeFuncs* iNpf; - }; - -/**************************************** -Class CGifAnimationPluginControl -Class to Handle UI related actions -****************************************/ -class CGifAnimationPluginControl : public CCoeControl, - public MIHLViewerObserver - - { -public: // Constructor and Destructor - - /** - * Function: NewL - * - * Description: Get instance of a CGifAnimationPluginControl object. - * @param aParentControl a parent class to register to - * @param aPluginAdapter pointer to plugin adapter - */ - static CGifAnimationPluginControl* NewL( CCoeControl* aParentControl, - MPluginAdapter* aPluginAdapter); - - /** - * Destructor. - */ - ~CGifAnimationPluginControl(); - -public: // From MIHLViewerObserver - /** - * From MIHLViewerObserver Notifies client - * when viewer bitmap content is changed. - * Leave situation is handled in ViewerError() callback. - */ - void ViewerBitmapChangedL(); - - /** - * From MIHLViewerObserver Notifies client if error occurs in viewer. - * @param aError IN System wide error code. - */ - void ViewerError( TInt aError ); - -public: // new methods - /** - * Loads the image into display. - * @param aImageFileName image file name - expected to be valid image - */ - void LoadImageL( const TDesC& aImageFileName ); - - /** - * @return last error, if any - */ - TInt GetLastError() const; - - /** - * Start animation. - */ - void StartAnimationL(); - - /** - * Stop animation. - */ - void StopAnimation(); - - /** - * Checks that the file is a valid image file. - * Will leave otherwise - * - * @param aImageFileName image file name - expected to be valid image - */ - static void CheckFileIsValidL( const TDesC& aImageFileName ); - - -private: // new methods - - /** - * @return ETrue if loaded image is animation. - */ - TBool IsAnimation() const; - - /** - * Cancel animation. - */ - void CancelAnimation(); - - /** - * Performs image loading steps. - * Uses file name stored in LoadImageL() - */ - void DoImageLoadingL(); - - /** - * Frees resources allocated with LoadImageL() - */ - void DeleteAnimation(); - - /** - * If loading content fails, non-leaving HandleCallback - * must be call always that parent can update its state - * properly. - */ - void HandleCallback( TInt aError ); - - /** - * Informes that the plug-in wants to terminate - */ - void InformPluginFinished(); - - /** - * Informs that DRM rights should not be consumed - */ - void SetPreviewMode(); - -private: // from CCoeControl - void Draw(const TRect& aRect) const; - void SizeChanged(); - -private: // Constructor - /** - * Constructor. - */ - CGifAnimationPluginControl(); - - /** - * ConstructL - * - * 2nd phase constructor. - * @param aParentControl a parent class to register to - * @param aPluginAdapter pointer to plugin adapter - */ - void ConstructL( CCoeControl *aParentControl, - MPluginAdapter* aPluginAdapter ); - -private: // Data - - /** - * Possible animation states - */ - enum TAnimationState - { - EAnimationNotReady=1, // the file was not loaded yet or corrupt - EAnimationLoading=2, - EAnimationPlaying=3 - }; - - // Source image - MIHLFileImage* iSourceImage; - - // Destination bitmap - MIHLBitmap* iDrawingBitmap; - - // the bitmap is used for scaling our way, IHL will not do scaling - CFbsBitmap* iScalingBitmap; - - // the mask for scaled bitmap - CFbsBitmap* iScalingBitmapMask; - - // size of target bitmap - TSize iTargetSize; - - // new size of target bitmap - TSize iTargetNewSize; - - // Image viewer used as engine - MIHLImageViewer* iEngine; - - // Internal animation state. - TAnimationState iAnimationState; - - // path and name of file being loaded - TFileName iFileName; - - // code of last loading error occured - TInt iLastError; - - // pointer to adapter, we do not own the instance - MPluginAdapter* iPluginAdapter; - - // if true, no DRM rights are consumed - TBool isPreviewMode; - }; - - -/******************************************************* -Class CGifAnimationPlugin -********************************************************/ - -class CGifAnimationPlugin : public CBase - { -public: // Constructor and Destructor - /** - * Instance factory - */ - static CGifAnimationPlugin* NewL( NPP anInstance ); - /** - * Destructor - */ - ~CGifAnimationPlugin(); - - /** - * Notifies host that plug-in has finished. - */ - void PrepareToExitL(); - - /** - * @return ref of CGifAnimationPluginControl - */ - CGifAnimationPluginControl* Control(); - - /** - * @return pointer on NPP instance - */ - NPP Instance(); - - /** - * Sets the parent window to plug-in. If already set, only updates size. - * @param aWindow a parent window - * @param aRect a parent window rectangle - */ - void SetWindowL( const NPWindow *aWindow, const TRect& aRect ); - -private: - /** - * Construct. - * - * 2nd phase constructor. - * @param anInstance NPP structure - */ - void Construct( NPP anInstance ); - -private: - // pointer to adapter - MPluginAdapter* iPluginAdapter; - - // pointer to Container - CGifAnimationPluginControl* iControl; - - // structure with pointers - NPP iInstance; - }; - -/**************************************************************************** -* -* Plugin API methods -* -*/ - -/** - * Create a plugin. - */ -NPError GifAnimationPluginNewp( NPMIMEType pluginType, - NPP instance, - uint16 mode, - CDesCArray* argn, - CDesCArray* argv, - NPSavedData* saved ); - -/** - * Destroy a plugin. - */ -NPError GifAnimationPluginDestroy(NPP instance, NPSavedData** save); - -/** - * This is the parent window of a plugin. - */ -NPError GifAnimationPluginSetWindow(NPP instance, NPWindow* window); - -/** - * A new data stream has been created for sending data to the plugin. - */ -NPError GifAnimationPluginNewStream( NPP instance, - NPMIMEType type, - NPStream* stream, - NPBool seekable, - uint16* stype ); - -/** - * A data stream has been terminated. - */ -NPError GifAnimationPluginDestroyStream( NPP instance, - NPStream* stream, - NPReason reason ); - -/** - * A data stream has been fully saved to a file. - */ -void GifAnimationPluginAsFile( NPP instance, - NPStream* stream, - const TDesC& fname ); - -/** - * Return the maximum number of bytes this plugin can accept from the stream. - * @param instance - the plug-in instance - * @param stream - the stream to use - */ -int32 GifAnimationPluginWriteReady( NPP instance, NPStream* stream ); - -/** - * Receive more data - return number of bytes processed. - * - * @param instance - the plug-in instance - * @param stream - the stream to read from - * @param buffer - contains the data. - * @param len - the number of bytes in buffer. - * @param offset - the number of bytes already sent/processed. - * @return TInt number of bytes processed. - */ -int32 GifAnimationPluginWrite( NPP instance, - NPStream* stream, - int32 offset, - int32 len, - void* buffer ); - -/** - * Generic hook to retrieve values/attributes from the plugin. - */ -NPError GifAnimationPluginGetValue( NPP instance, - NPPVariable variable, - void *ret_value ); - -/** - * Generic hook to set values/attributes within the plugin. - */ -NPError GifAnimationPluginSetValue( NPP instance, - NPNVariable variable, - void *ret_value ); - -/** - * Event - */ -int16 GifAnimationPluginEvent( NPP instance, void* event ); - -/** - * Notify - */ -void GifAnimationPluginURLNotify( NPP instance, - const TDesC& url, - NPReason reason, - void* notifyData ); - -/** - * Print - */ -void GifAnimationPluginPrint( NPP instance, NPPrint* platformPrint ); - -#endif // C_GIFANIMATIONPLUGIN_H