--- a/vtprotocolplugins/VideoSource/inc/cmultiframeprovider.h Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,395 +0,0 @@
-/*
-* Copyright (c) 2008 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: Video Source subsystem.
-*
-*/
-
-
-#ifndef C_MULTIFRAMEPROVIDER_H
-#define C_MULTIFRAMEPROVIDER_H
-
-// INCLUDE FILES
-#include <f32file.h>
-#include <gdi.h>
-#include "cactivewait.h"
-#include "cvtimagescaler.h"
-#include "mmultiframeprovider.h"
-
-// FORWARD DECLARATIONS
-
-class CVtImageBitmap;
-class CImageDecoder;
-class CMultiframeloopAO;
-class TScalingMediator;
-class CMultiframeProvider;
-class CMultiframeDataAO;
-
-const TInt KFirstFrameIndx = 0;
-
-// CLASS DECLARATION
-// ============================ TScalingMediator ===============================
-/**
-* Internal implementation of still scaling mediator
-* @lib videosource.lib
-*/
-
-NONSHARABLE_CLASS( TScalingMediator) : public MVtImageScalerObserver
- {
- public :
- TScalingMediator();
- public :
- /**
- * @see MVtImageScalerObserver::ScalingFinished( TInt aError )
- */
- void ScalingFinished( TInt aError );
-
- /**
- * Sets waiter observer
- */
- void SetWaiter( CVSActiveWait< CMultiframeProvider >* aWait );
- private :
- CVSActiveWait< CMultiframeProvider >* iWait;
- };
-
-
-// ============================ CMultiframeProvider ===============================
-/**
-* Internal implementation of multiframe provider
-* @lib videosource.lib
-*/
-NONSHARABLE_CLASS( CMultiframeProvider ) : public CBase
- {
-
- public : // Constructors and destructor
-
- /**
- * Static factory function create instance of this class.
- * @param "aObserver" Pointer to data provider observer.
- * @param aDisplayMode current display mode
- * @exception Can leave with one of the system wide error codes.
- * @return Pointer to new instance.
- */
- static CMultiframeProvider* NewL( MMultiframeprovider* aObserver, TDisplayMode aDisplayMode );
-
- /**
- * Destructor.
- */
- ~CMultiframeProvider();
-
-
- public : // Functions from base classes
-
- /**
- * Initializes this instance from image or multiframe file.
- * @param aFileName Name of the file from which this intance will be
- * initialized.
- * @exception Can leave with one of the system wide error codes.
- */
- void InitializeL( const TFileName* aFileName );
-
- /**
- * Cancel initialization of multiframe provider.
- * @return ETrue if don't need to wait a error message.
- */
- TBool CancelInitializing();
-
- /**
- * Initializes this instance for blank image bitmap.
- */
- void IniatializeBlankL();
-
- /**
- * Initializes this instance for Generalsettings image bitmap.
- */
- void IniatializeGSL( const TGeneralSettingsImageType aType );
- /**
- * Sets ViewFinder size
- * @param aSize size of target bitmap (view finder)
- */
- void SetVFScalingTargetSize( TSize aSize );
-
- /**
- * Decodes and scales initialized image or multiframe file
- * @param aFrameindex index of frame to be decoded and scaled
- */
- void ConvertAndScaleL( TInt aFrameIndex );
-
- /**
- * Scales and copies decoded frame for view finder display
- * @param aSize size of target bitmap ( view fiender )
- */
- void ScaleCopy( TSize& aSize, TBool aVFUpdate = EFalse );
-
- /**
- * Signals looping AO to proceed to next frame
- */
- void NextFrame();
-
- /**
- * Clears ViewFinder size
- */
- void ClearVFScalingTargetSize();
-
- /**
- * Increases number of data consumers by one
- */
- void IncreaseDataConsumer();
-
- /**
- * Decreases number of data consumers by one
- * and if number is less than one it cancels data looping
- * mechanism
- */
- void DecreaseDataConsumer();
-
- /**
- * Adds used bitmap to free queue
- */
- void AddBitmapToFreeQueue();
-
- /**
- * Indicates that second VF buffer needs to be used
- */
- void UseSecondVfBuffer();
-
- /**
- * Indicates that VF has been stopped
- */
- TBool IsVFStopped();
-
- /**
- * Set ViewFinder of Multiframe provider to stop
- */
- void SetVFStop();
-
- /**
- * Wait for converting function exit
- */
- void WaitForConverting();
-
- /**
- * Release converting flag
- */
- void ReleaseForConverting();
-
- private : // Constructors and destructor
-
- /**
- * Constructor.
- * @param "aObserver" Pointer to data provider observer.
- * @param aDisplayMode current display mode
- */
- CMultiframeProvider( MMultiframeprovider* aObserver, TDisplayMode aDisplayMode );
-
- /**
- * 2nd phase constructor.
- * @exception Can leave with one of the system wide error codes.
- */
- void ConstructL();
-
- /**
- * Image conversion finished callback. This method is called when image
- * conversion is done.
- * @param "aError" Error code. KErrNone if no error happened, one of the
- * system wide error codes.
- * otherwise.
- */
- void ConversionFinished( TInt aError );
-
- /**
- * Image scaling finished callback. This method is called when image
- * scaling is done.
- * @param "aError" Error code. KErrNone if no error happened, one of
- * the system wide error codes.
- */
- void BMSScalingFinished( TInt aError );
-
- /**
- * Scales VF to new size.
- * @param "aSize" New VF size.
- * the system wide error codes.
- */
- void ScaleVF( const TSize& aSize );
-
- /**
- * When view finder frame must be rescaled (wanted view finder size is
- * neither QCIF nor QQQCIF) this callback will be called when the
- * rescaling has finished.
- * @param "aError" Error code. KErrNone if no error happened, one of
- * the system wide error codes.
- */
- void VFRescalingFinished( TInt aError );
-
- /**
- * When view finder frames are rescaled this callback method will be
- * called.
- * @param "aError" Error code. KErrNone if no error happened, one of
- * the system wide error codes.
- */
- void VFScalingReady();
-
- /**
- * Creates blank bitmap with given size, color mode and color.
- * @param "aBitmap" Bitmap pointer reference into which pointer to new
- * isntance will be copied.
- * @param "aSize" Size of the blank bitmap to be created.
- * @param "aMode" Color mode for created bitmap.
- * @param "aColor" Color of created bitmap.
- * @exception Can leave with one of the system wide error codes.
- */
- void CreateBlankBitmapL( CFbsBitmap*& aBitmap, const TSize& aSize, const TDisplayMode& aMode, const TRgb& aColor );
-
- public : // Data
-
- TBool iAnimation;
-
- TBool iConvertAndScale;
-
- protected: // Data
-
- RCriticalSection iFreezeCS;
-
- private : //Data
-
-
- // Source image for CVtImageScaler
- CVtImageBitmap* iConverted;
-
- // Target image for CVtImageScaler
- CVtImageBitmap* iScaled;
- CVtImageBitmap* iBuffer1;
- CVtImageBitmap* iBuffer2;
-
- // Pointer to remote image
- CVtImageBitmap* iYUVBitMap;
-
- // Pointer to QCIF sized view finder image
- CVtImageBitmap* iVFbitmap;
- CVtImageBitmap* iFirstVfBuf;
- CVtImageBitmap* iSecondVfBuf;
-
- // Boolean values of VF buffer validation
- TBool iSecondVFBuffer;
- TBool iFirstVFBuffer;
-
- // Pointer to bitmap loaded from GS
- CVtImageBitmap* iGSBitmap;
-
- // Pointer to selected view finder image
- CVtImageBitmap* iVFCurrent;
-
- // Viewer AO instance
- CMultiframeloopAO* iLoopAo;// owned
-
- // Initalisation scaling mediator
- TScalingMediator iInitMediator;
-
- // ViewFinder scaling scaling mediator
- TScalingMediator iScalingMediator;
-
- // Waiter instance for initialisation
- CVSActiveWait< CMultiframeProvider >* iActiveWaitInit;// owned
-
- // Waiter instance for scaling
- CVSActiveWait< CMultiframeProvider >* iActiveWaitScale;// owned
-
- // Waiter instance for scaling
- CVSActiveWait< CMultiframeProvider >* iActiveWaitInitScale; // owned
-
- // VT image scaler instance for initialisation
- CVtImageScaler* iVtImageScalerInit; // owned
-
- // VT image scaler instance for scaling
- CVtImageScaler* iVtImageScalerScale; // owned
-
- // Image decoder instance
- CImageDecoder* iImageDecoder; // owned
-
- // Wanted view finder size
- TSize iWantedVFSize;
-
- // FireServer session instance
- RFs iFs;
-
- // Current display mode
- TDisplayMode iDisplayMode;
-
- // Rescaling recuirement flag
- TBool iVFRescalingRequired;
-
- // Multiframe observer instance
- MMultiframeprovider* iObserver;
-
- // VF bitmap size
- TSize iTargetSize;
-
- // Is blank image share
- TBool iBlank;
-
- // Is GS image share
- TBool iGSImage;
-
- // Is second bitmap in use
- TBool iOldBM;
-
- // Pointer to old bitmap
- CVtImageBitmap* iOldBitmap;
-
- // Frame count
- TInt iCount;
-
- // Is initialization ongoing flag
- TBool iInitialization;
-
- // Frame delay
- TTimeIntervalMicroSeconds iDelay;
-
- // Start time for image conversion
- TTime iStartTime;
-
- // Data timer expiration / Frame update time
- TTimeIntervalMicroSeconds iFrameUpdateTime;
-
- // Pointer to data timer AO
- CMultiframeDataAO* iDataTimer;
-
- // Number of data consumers
- TInt iNumOfConsumers;
-
- // Queue for bitmaps that are free for use
- RPointerArray<CVtImageBitmap> iFreeQueue;
-
- // Pointer to bitmap mask
- CFbsBitmap* iMask;
-
- // Pointer to temporary bitmap
- CVtImageBitmap* iTempBM;
-
- TSize iVFSize;
-
- // Boolean value of VF buffer update
- TBool iVFUpdate;
-
- // file handle to default VT image
- RFile iDefaultImageFile;
- // Boolean value of VF buffer stopping
- TBool iIsVfStopped;
-
- // Boolean value of VF buffer stopping
- TBool iWaitForConverting;
- };
-
-#endif // C_MULTIFRAMEPROVIDER_H
-
-// End of File