scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/inc/GifAnimationPlugin.h
changeset 14 8a173132b0aa
parent 2 058b1fc1663a
--- 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 <e32std.h>
-#include <coecntrl.h>
-#include <coemain.h>
-#include <fbs.h>
-#include <barsread.h>
-
-#include <npupp.h>
-#include <pluginadapterinterface.h>
-#include <CEcomBrowserPluginInterface.h>
-#include <MIHLViewerObserver.h>
-
-
-// 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 <code>CGifAnimationPluginControl</code>
-     */
-    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