videditor/VideoEditorCommon/inc/VeiImageClipGenerator.h
changeset 9 d87d32eab1a9
parent 0 951a5db380a0
--- a/videditor/VideoEditorCommon/inc/VeiImageClipGenerator.h	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,446 +0,0 @@
-/*
-* Copyright (c) 2010 Ixonos Plc.
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the "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:
-* Ixonos Plc
-*
-* Description: 
-*
-*/
-
-
-
-#ifndef __VEIIMAGECLIPGENERATOR_H__
-#define __VEIIMAGECLIPGENERATOR_H__
-
-#include <e32base.h>
-
-#include <VedVideoClipGenerator.h>
-
-/*
- * UID of this generator. The Uids are only used to identify generators
- * in UI, the Engine does not use Uids for any purpose.
- */
-#define KUidImageClipGenerator TUid::Uid(0x00000001)
-
-
-// Forward declarations
-class CVeiImageClipFrameOperation;
-class CVeiImageClipDecodeOperation;
-class CFbsBitmap;
-class CImageDecoder;
-class CVeiImageClipGenerator;
-class CBitmapScaler;
-
-
-/**
- * Image clip generator observer.
- */
-class MVeiImageClipGeneratorObserver
-	{
-public:
-	/**
-	 * Callback method to notify that the image clip generator initialization
-	 * is complete.
-	 *
-	 * @param aGenerator  generator that caused the event
-	 * @param aError	  error code
-	 */
-	virtual void NotifyImageClipGeneratorInitializationComplete(
-		CVeiImageClipGenerator& aGenerator, TInt aError) = 0;
-	};
-
-
-/**
- * Image clip generator.
- */
-class CVeiImageClipGenerator : public CVedVideoClipGenerator
-	{
-public:
-
-	/* Constructors / destructors. */
-
-	/**
-	 * Factory method. Creates a new image clip generator.
-	 * 
-	 * @param aFilename		  filename for the image
-	 * @param aMaxResolution  maximum resolution that will be used
-	 * @param aDuration		  duration of the image frame
-	 * @param aBackgroundColor  background color
-	 * @param aMaxDisplayMode	display mode in which the bitmap is stored
-	 * @param aFs			  RFs session to use for loading the image
-	 * @param aObserver		  observer that will be notified when the
-	 *						  initialization is complete
-	 *
-	 * @return  constructed image clip generator
-	 */
-	IMPORT_C static CVeiImageClipGenerator* NewL(const TDesC& aFilename,
-												 const TSize& aMaxResolution, 
-												 const TTimeIntervalMicroSeconds& aDuration, 
-												 const TRgb& aBackgroundColor,
-												 TDisplayMode aMaxDisplayMode,
-												 RFs& aFs,
-												 MVeiImageClipGeneratorObserver& aObserver);
-		
-	/**
-	 * Factory method. Creates a new image clip generator and leaves it
-	 * in the cleanup stack.
-	 * 
-	 * @param aFilename		    filename for the image
-	 * @param aMaxResolution    maximum resolution that will be used
-	 * @param aDuration		    duration of the image frame
-	 * @param aBackgroundColor  background color
-	 * @param aMaxDisplayMode	display mode in which the bitmap is stored
-	 * @param aFs			    RFs session to use for loading the image
-	 * @param aObserver		    observer that will be notified when the
-	 *						    initialization is complete
-	 *
-	 * @return  constructed image clip generator
-	 */
-	IMPORT_C static CVeiImageClipGenerator* NewLC(const TDesC& aFilename,
-												  const TSize& aMaxResolution,
-												  const TTimeIntervalMicroSeconds& aDuration, 
-												  const TRgb& aBackgroundColor,
-												  TDisplayMode aMaxDisplayMode,
- 												  RFs& aFs,
-												  MVeiImageClipGeneratorObserver& aObserver);
-
-	/**
-	 * Destructor.
-	 */
-	IMPORT_C virtual ~CVeiImageClipGenerator();
-
-
-	/* Property methods. */
-
-	IMPORT_C virtual TPtrC DescriptiveName() const;
-
-	IMPORT_C virtual TUid Uid() const;
-
-    IMPORT_C virtual TTimeIntervalMicroSeconds Duration() const;
-
-
-	/* Video frame property methods. */
-
-    IMPORT_C virtual TInt VideoFrameCount() const ;
-
-	IMPORT_C virtual TTimeIntervalMicroSeconds VideoFrameStartTime(TInt aIndex) const;
-
-	IMPORT_C virtual TTimeIntervalMicroSeconds VideoFrameEndTime(TInt aIndex) const;
-
-	IMPORT_C virtual TTimeIntervalMicroSeconds VideoFrameDuration(TInt aIndex) const;
-
-	IMPORT_C virtual TBool VideoFrameIsIntra(TInt aIndex) const;
-
-	IMPORT_C virtual TInt VideoFirstFrameComplexityFactor() const;
-
-	IMPORT_C virtual TInt VideoFrameDifferenceFactor(TInt aIndex) const;
-
-    IMPORT_C virtual TInt GetVideoFrameIndex(TTimeIntervalMicroSeconds aTime) const;
-
-
-	/* Frame methods. */
-
-	IMPORT_C virtual void GetFrameL(MVedVideoClipGeneratorFrameObserver& aObserver,
-                           TInt aIndex,
-		                   TSize* const aResolution,
-						   TDisplayMode aDisplayMode,
-						   TBool aEnhance,
-						   TInt aPriority);
-    
-	IMPORT_C virtual void CancelFrame();
-
-
-	/* New methods. */
-
-	/**
-	 * Sets the duration.
-	 *
-	 * @param aDuration  duration
-	 */
-	IMPORT_C void SetDuration(const TTimeIntervalMicroSeconds& aDuration);
-
-	/**
-	 * Sets the background color.
-	 *
-	 * @param aBackgroundColor
-	 */
-	IMPORT_C void SetBackgroundColor(const TRgb& aBackgroundColor);
-
-	/**
-	 * Gets the background color.
-	 * 
-	 * @return  background color
-	 */
-	IMPORT_C const TRgb& BackgroundColor() const;
-
-	/**
-	 * Returns the image file name.
-	 *
-	 * @return  filename
-	 */
-	IMPORT_C TPtrC ImageFilename() const;
-
-private: // constructors
-	
-	/**
-	 * First-phase constructor.
-	 * 
-	 * @param aDuration        duration
-	 * @param aBackgroundColor background color 
-	 * @param aMaxResolution   maximum resolution
-	 */
-	CVeiImageClipGenerator(const TTimeIntervalMicroSeconds& aDuration, 
-						   const TRgb& aBackgroundColor,
-						   const TSize& aMaxResolution);
-
-	/**
-	 * Second-phase constructor.
-	 * 
-	 * @param aFilename       filename of the image
-	 * @param aObserver       observer
-	 * @param aMaxDisplyMode  display mode
-	 * @param aFs             RFs session
-	 */
-	void ConstructL(const TDesC& aFilename, 
-					MVeiImageClipGeneratorObserver& aObserver,
-					TDisplayMode aMaxDisplayMode, RFs& aFs);
-
-	
-private:
-	/**
-	 * Updates the first frame complexity factor.
-	 */
-	void UpdateFirstFrameComplexityFactorL();
-
-private:
-    // Member variables
-
-	/** Flag for readiness indication. */
-	TBool iReady;
-
-	/** First frame complexity factor. */
-	TInt iFirstFrameComplexityFactor;
-
-	/** Resolution. */
-	TSize iMaxResolution;
-
-	/** Duration. */
-	TTimeIntervalMicroSeconds iDuration;
-
-	/** Background color. */
-	TRgb iBackgroundColor;
-
-	/** Image decode operation. */
-	CVeiImageClipDecodeOperation* iDecodeOperation;
-
-	/** Frame generating operation. */
-	CVeiImageClipFrameOperation* iFrameOperation;
-
-	/** Descriptive name. */
-	HBufC* iDescriptiveName;
-
-	/** Image filename */
-	HBufC* iFilename;
-	
-	/** Bitmap. */
-	CFbsBitmap* iBitmap;
-
-	/** Mask. */
-	CFbsBitmap* iMask;
-
-	/** Is the generator initializing? */
-	TBool iInitializing;
-
-	/** Frame count. */
-	TInt iFrameCount;
-
-	friend class CVeiImageClipDecodeOperation;
-	};
-
-
-/**
- * Image decode operation. Helper class for decoding the image and 
- * performing first-stage resizing.
- */
-class CVeiImageClipDecodeOperation : public CActive
-	{
-	public: 
-		/**
-		 * Factory constructor. 
-		 * 
-		 * @param aGenerator  generator that owns this operation
-		 * @param aFilename	  filename for the image
-		 * @param aObserver	  observer that will be notified when the
-		 *					  operation completes
-		 * @param aFs		  RFs session to use for loading the image
-		 * @param aPriority   priority of the active object
-		 *
-		 * @return  constructed image clip decode operation
-		 */
-		static CVeiImageClipDecodeOperation* NewL(CVeiImageClipGenerator& aGenerator,
-												  const TDesC& aFilename, 
-												  MVeiImageClipGeneratorObserver& aObserver,
-												  RFs& aFs,
-												  TInt aPriority = CActive::EPriorityStandard);
-		/**
-		 * Destructor.
-		 */
-		virtual ~CVeiImageClipDecodeOperation();
-
-		virtual void RunL();
-		virtual void DoCancel();
-		virtual TInt RunError(TInt aError);
-
-		/**
-		 * Starts the operation.
-		 * 
-		 * @param aMaxResolution  maximum resolution that will be used
-		 * @param aDisplayMode	  display mode
-		 */
-		void StartOperationL(const TSize& aMaxResolution, TDisplayMode aDisplayMode);
-
-	private: // methods
-
-		/**
-		 * First-phase constructor.
-		 *
-		 * @param aGenerator  generator that owns this operation
-		 * @param aObserver	  observer that will be notified when the
-		 *					  operation completes
-		 * @param aPriority   priority of the active object
-		 */
-		CVeiImageClipDecodeOperation(CVeiImageClipGenerator& aGenerator, 
-									 MVeiImageClipGeneratorObserver& aObserver,
-									 TInt aPriority);
-
-		/**
-		 * Second-phase constructor.
-		 *
- 		 * @param aFilename	  filename for the image
-		 * @param aFs		  RFs session to use for loading the image
-		 */
-
-		void ConstructL(const TDesC& aFilename, RFs& aFs);
-
-	private: // members
-
-		/** Generator that owns this operation*/
-		CVeiImageClipGenerator& iGenerator;
-
-		/** Observer to be notified when the operation completes. */
-		MVeiImageClipGeneratorObserver& iObserver;
-
-		/** Decoder. */
-		CImageDecoder* iDecoder;
-
-		/** Bitmap. */
-		CFbsBitmap* iBitmap;
-
-		/** Mask. */
-		CFbsBitmap* iMask;
-	};
-
-
-/**
- * Image frame operation.
- */
-class CVeiImageClipFrameOperation : public CActive
-	{
-	public: 
-		/**
-		 * Factory constructor. 
-		 * 
-		 * @param aGenerator  generator that owns this operation
-		 *
-		 * @return  constructed image clip frame operation
-		 */
-		static CVeiImageClipFrameOperation* NewL(CVeiImageClipGenerator& aGenerator);
-
-		/**
-		 * Destructor. 
-		 */
-		virtual ~CVeiImageClipFrameOperation();
-
-		/**
-		 * Starts the operation.
-		 *
-		 * @param aObserver      observer to notify when the frame is complete
-		 * @param aIndex         index of the frame to generate
-		 * @param aEnhance       <code>ETrue</code> to produce better results
-		 *                       but slower, <code>EFalse</code> to be as fast
-		 *                       as possible.
-		 * @param aSourceBitmap  source bitmap
-		 * @param aDestBitmap    destination bitmap
-		 * @param aSourceMask    source mask
-		 * @param aPriority      priority for the active object
-		 *
-		 */
-		void StartOperationL(MVedVideoClipGeneratorFrameObserver* aObserver, 
-			TInt aIndex, TBool aEnhance, CFbsBitmap* aSourceBitmap, 
-			CFbsBitmap* aDestBitmap, CFbsBitmap* aSourceMask, TInt aPriority);
-
-		virtual void RunL();
-		virtual void DoCancel();
-		virtual TInt RunError(TInt aError);
-
-	private: // methods
-		/**
-		 * First-phase constructor.
-		 * 
-		 * @param aGenerator  generator that owns this operation
-		 */
-		CVeiImageClipFrameOperation(CVeiImageClipGenerator& aGenerator);
-
-		/**
-		 * Second-phase constructor.
-		 */
-		void ConstructL();
-
-	private: // members
-		/** Generator. */
-		CVeiImageClipGenerator& iGenerator;
-
-		/** Index of the frame being generated. */
-		TInt iIndex;
-
-		/** Whether to be fast or do quality work. */
-		TBool iEnhance;
-
-		/** Source bitmap. */
-		CFbsBitmap* iSourceBitmap;
-
-		/** Destination bitmap. */
-		CFbsBitmap* iDestBitmap;
-
-		/** Scaled bitmap. */
-		CFbsBitmap* iScaledBitmap;
-
-		/** Scaled mask. */
-		CFbsBitmap* iScaledMask;
-
-		/** Source mask. */
-		CFbsBitmap* iSourceMask;
-
-		/** Scaler. */
-		CBitmapScaler* iScaler;
-
-		/** Flag for no scaling. */
-		TBool iNoScaling;
-
-		/** Observer. */
-		MVedVideoClipGeneratorFrameObserver* iObserver;
-	};
-
-
-
-#endif // __VEIIMAGECLIPGENERATOR_H__
-