vtprotocolplugins/VideoSource/inc/CVSStillImageDataProvider.h
changeset 18 d9b6a8729acd
parent 4 6dc066157ed4
child 23 c378a0498b84
child 27 dcbddbbaf8fd
--- a/vtprotocolplugins/VideoSource/inc/CVSStillImageDataProvider.h	Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,532 +0,0 @@
-/*
-* Copyright (c) 2006 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 CVSSTILLIMTAGEDATAPROVIDER_H
-#define CVSSTILLIMTAGEDATAPROVIDER_H
-
-// INCLUDE FILES
-
-#include <gdi.h>
-#include "CApiVideoSource.h"
-#include "cvtimagescaler.h"
-#include <ecamimageprocessing.h>
-
-#include "cactivewait.h"
-#include "mmultiframeprovider.h"
-
-// FORWARD DECLARATIONS
-
-class CImageDecoder;
-class CVSStillImageDataProvider;
-class CVSFrameRateTimer;
-class CVtImageBitmap;
-class CMultiframeProvider;
-
-
-// CLASS DECLARATION
-
-/**
-*  Internal implementation of still image data provider. This
-*  class is inherited from from public provider interface.
-*
-*  @lib videosource.lib
-*/
-class CVSStillImageDataProvider : public CVSDataProvider, MMultiframeprovider
-    {
-    public:        // Constructors and destructor
-
-        /**
-        * Static factory function create instance of this class.
-        * @param "aObserver" Pointer to provider observer.
-        * @param "aPool" Pointer to data MVSBufferPool that gives buffer to
-        * data provider.
-        * @exception Can leave with one of the system wide error codes.
-        * @return Pointer to new instance.
-        */
-        static CVSStillImageDataProvider* NewL(
-            MVSDataProviderObserver* aObserver,
-            MVSBufferPool* aPool );
-
-        /**
-        * Destructor.
-        */
-        ~CVSStillImageDataProvider();
-
-    public:        // New functions
-
-    public:        // Functions from base classes
-
-        /**
-        * Initialize provider.
-        * @param "aInitParams" Reference to the initialization parameters.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        void InitializeL( const TDesC8& aInitParams );
-
-        /**
-        * Cancel initialization of still image provider.
-        */
-        void CancelInitializing();
-
-        /**
-        * Return digital zoom factor.
-        * @return Digital zoom factor.
-        */
-        virtual TInt DigitalZoomFactor() const;
-
-        /**
-        * Set digital zoom factor.
-        * @param "aDigitalZoomFactor" Digital zoom factor.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        virtual void SetDigitalZoomFactorL( TInt aDigitalZoomFactor = 0 );
-
-        /**
-        * Start view finder bitmaps.
-        * @param "aSize" Size of the returned view finder bitmap.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        virtual void StartViewFinderBitmapsL( TSize& aSize );
-
-        /**
-        * Start view finder bitmaps.
-        * @param "aSize" Size of the returned view finder bitmap.
-        * @param "aClipRect" Required clip rectangle.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        virtual void StartViewFinderBitmapsL( TSize& aSize,TRect& aClipRect );
-
-        /**
-        * Stop view finder bitmaps.
-        */
-        virtual void StopViewFinder();
-
-        /**
-        * Test if view finder is active.
-        * @return ETrue if view finder active.
-        */
-        virtual TBool ViewFinderActive() const;
-
-        /**
-        * Start view finder bitmaps using direct screen access.
-        * @param "aWs" Window server session.
-        * @param "aScreenDevice" Screen device.
-        * @param "aWindow" Displayable window.
-        * @param "aScreenRect" Portion of the screen to which view finder data
-        * is to be transferred.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        virtual void StartViewFinderDirectL(
-            RWsSession& aWs,
-            CWsScreenDevice& aScreenDevice,
-            RWindowBase& aWindow,
-            TRect& aScreenRect );
-
-        /**
-        * Start view finder bitmaps using direct screen access.
-        * @param "aWs" Window server session.
-        * @param "aScreenDevice" Screen device.
-        * @param "aWindow" Displayable window.
-        * @param "aScreenRect" Portion of the screen to which view finder data
-        * is to be transferred.
-        * @param "aClipRect" The rectangle to which the screen will be clipped.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        virtual void StartViewFinderDirectL(
-            RWsSession& aWs,
-            CWsScreenDevice& aScreenDevice,
-            RWindowBase& aWindow,
-            TRect& aScreenRect,
-            TRect& aClipRect );
-
-        /**
-        * Return provider information.
-        * @param @param "aInfo" Reference to variable to where the provider
-        * information is copied.
-        */
-        virtual void ProviderInfo( TVSDataProviderInfo& aInfo );
-
-        /**
-        * See CVSDataProvider for description.
-        */
-        virtual void SetViewFinderMirrorL( TBool aMirror );
-
-        /**
-        * See CVSDataProvider for description.
-        */
-        virtual TBool ViewFinderMirror() const;
-
-        /**
-        * See CVSDataProvider for description.
-        */
-        virtual void FreezeL();
-
-        /**
-        * See CVSDataProvider for description.
-        */
-        virtual void UnfreezeL();
-
-        /**
-        * See CVSDataProvider for description.
-        */
-        virtual TBool IsFrozen() const;
-
-        /**
-        * @See CVSDataProvider::SetContrastL for description.
-        */
-		virtual void SetContrastL( TInt aContrast );
-
-        /**
-        * @See CVSDataProvider::GetContrast for description.
-        */
-		virtual TInt GetContrast( TInt& aContrast ) const;
-
-        /**
-        * @See CVSDataProvider::SetBrightnessL for description.
-        */
-		virtual void SetBrightnessL( TInt aBrightness );
-
-        /**
-        * @See CVSDataProvider::GetBrightness for description.
-        */
-		virtual TInt GetBrightness( TInt& aBrightness ) const;
-
-        /**
-        * @See CVSDataProvider::SetWhiteBalanceL for description.
-        */
-		virtual void SetWhiteBalanceL(
-			CCamera::TWhiteBalance aWhiteBalance = CCamera::EWBAuto);
-
-       	/**
-        * @See CVSDataProvider::GetWhiteBalance for description.
-        */
-		virtual TInt GetWhiteBalance(
-			CCamera::TWhiteBalance& aWhiteBalance ) const;
-
-       	/**
-        * @See CVSDataProvider::GetColorTone for description.
-        */
-        virtual TInt GetColorTone(
-        	CCamera::CCameraImageProcessing::TEffect& aColorTone) const;
-
-       	/**
-        * @See CVSDataProvider::SetColorToneL for description.
-        */
-        virtual void SetColorToneL(
-        	CCamera::CCameraImageProcessing::TEffect aValue );
-
-    protected:    // New functions
-
-    protected:    // Functions from base classes
-
-    private:    // New functions
-
-        /**
-        * See CVSDataProvider for description.
-        */
-        void PrimeL();
-
-    private:
-
-    private:    // Functions from base classes
-
-        /**
-        * See MDataSource for description.
-        */
-        virtual void FillBufferL(
-            CMMFBuffer* aBuffer,
-            MVTVideoSink* aConsumer,
-            TMediaId aMediaId );
-
-    private:
-
-        /**
-        * See MDataSource for description.
-        */
-        virtual void BufferEmptiedL( CMMFBuffer* aBuffer );
-
-        /**
-        * See MDataSource for description.
-        */
-        virtual TInt SourceThreadLogon( MAsyncEventHandler& aEventHandler );
-
-        /**
-        * See MDataSource for description.
-        */
-        virtual void SourceThreadLogoff();
-
-        /**
-        * See MDataSource for description.
-        */
-        virtual void SourcePrimeL();
-
-        /**
-        * See MDataSource for description.
-        */
-        virtual void SourcePlayL();
-
-        /**
-        * See MDataSource for description.
-        */
-        virtual void SourcePauseL();
-
-        /**
-        * See MDataSource for description.
-        */
-        virtual void SourceStopL();
-
-    private: // Functions from base classes
-
-        /**
-        * See MVTVideoInput for description.
-        */
-        virtual void SetFormatL( const TDesC8& aFormat );
-
-        /**
-        * See MVTVideoInput for description.
-        */
-        virtual void SetFrameRateL( TReal32 aFrameRate );
-
-        /**
-        * See MVTVideoInput for description.
-        */
-        virtual void SetVideoFrameSizeL( const TSize& aSize );
-
-        /**
-        * See MVTVideoInput for description.
-        */
-        virtual void GetVideoFrameSizeL( TSize& aSize ) const;
-
-    private:    // New functions
-
-        /**
-        * Common initialization of the provider (initializes features
-        * that are always needed by the provider).
-        * @exception Can leave with one of the system wide error codes.
-        */
-        void CommonInitializeL();
-
-        /**
-        * Undo common initialization of still image data provider.
-        */
-        void UndoCommonInitialized();
-
-        /**
-        * Loads image that was set in General Settings application.
-        * @param aType Type of of the general settings image.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        void GeneralSettingsInitializeL( const TGeneralSettingsImageType aType );
-
-        /**
-        * Initializes this instance as blank image instance.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        void BlankImageInitializeL();
-
-        /**
-        * Initializes this instance from image 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 FileImageInitializeL( const TFileName& aFileName );
-
-        /**
-        * View finder timer callback. This method is called when view finder
-        * needs updating.
-        */
-        void VFTimer();
-
-        /**
-        * protocol timer callback. This method is called when new frame
-        * will be sent to consumer.
-        */
-        void ProtoTimer();
-
-        /**
-        * Method for creating timer for protocol. This method is called
-        * in Proto thread context.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        void CreateProtoTimerL();
-
-        /**
-        * Releases protocol timer. This method is called in Protocol thread
-        * context.
-        */
-        void ReleaseProtoTimer();
-
-        /**
-        * Creates YUV buffer from still image. This method is called in Protocol
-        * thread context.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        void CreateYUVDataL();
-
-        /**
-        * Release YUV buffer. This method is called in Protocol thread context.
-        */
-        void ReleaseYUVData();
-
-    private:    // Constructors and destructor
-
-        /**
-        * Constructor.
-        * @param "aObserver" Pointer to provider observer.
-        */
-        CVSStillImageDataProvider(
-            MVSDataProviderObserver* aObserver,
-            MVSBufferPool* aPool );
-
-        /**
-        * 2nd phase constructor.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        void ConstructL();
-
-    private:    // Functions from base classes
-
-        /**
-        * Get video frame size.
-        */
-        virtual void GetVideoFrameSize(
-            TSize& aSize,
-            TInt aSizeIndex,
-            const TDesC8& aFormat );
-
-        /**
-        * Get video frame rate.
-        */
-        virtual void GetVideoFrameRate(
-            TReal32& aRate,
-            TInt aRateIndex,
-            const TDesC8& aFormat,
-            const TSize& aSize );
-
-        /**
-        * Returns current screen display mode.
-        */
-        TDisplayMode DisplayMode() const;
-				
-    private:
-        
-        // from MMultiframeprovider
-        /**
-        * @See MMultiframeprovider for description.
-        */
-        virtual void InitializeReady();
-				
-        /**
-        * @See MMultiframeprovider for description.
-        */
-				virtual void RefreshYUVData( TImageShareDataBuffer& aYUVBitMap );
-				
-				/**
-        * @See MMultiframeprovider for description.
-        */
-				virtual void RefreshViewFinder( TImageShareDataBuffer& aVFBitMap );
-				
-				/**
-        * @See MMultiframeprovider for description.
-        */
-				virtual void NotifyImageHandlingError( TInt aError );
-
-    public: // Data
-
-    protected:  // Data
-				 RCriticalSection iFreezeCS;
-    private:    // Data
-
-        // Provider state
-        enum TProviderState
-            {
-            EPSUninitialized,   // Provider is uninitialized
-            EPSStopped,         // Provider is initialized and stopped
-            EPSPrimed,          // Provider is initialized and ready for playing
-            EPSPlaying,         // Provider is playing
-            EPSInitializing,    // Provider is initializing
-            EPSUndoInitializing // Provider is undoinitializing
-            };
-
-        // Provider state
-        TProviderState iPSState;
-
-        // View finder state
-        enum TViewFinderState
-            {
-            EVFStopped, // View finder is not started
-            EVFPlaying  // View finder started
-            };
-
-        // View finder state
-        TViewFinderState iVFState;
-
-        // Source bitmap's name
-        TFileName iBitmapFileName;
-
-        // Pointer to view finder timer instance
-        CVSFrameRateTimer* iVFTimer; // owned
-
-        // Pointer to protocol timer instance
-        CVSFrameRateTimer* iProtoTimer; // owned, created in Proto thread context!
-
-        // Target image for CVtImageScaler
-        CVtImageBitmap* iScaled;
-        CVtImageBitmap* iYUVBitMap;
-
-        // Pointer to selected view finder image
-        CVtImageBitmap* iVFCurrent;
-        CVtImageBitmap* iVFBitmap;
-
-        // Pointer to active waiter instance
-        CVSActiveWait< CVSStillImageDataProvider >* iActiveWait; // owned
-
-        // Heap descriptor pointer that contains image as YUV
-        HBufC8* iYUVBuffer; // owned, created in Protocol thread context!
-
-        // Frame counter
-        TUint32 iFrameCount;
-
-        // protocol timer update rate
-        TInt iProtoUpdateRate;
-
-        // Rescaling recuirement flag
-        TBool iVFRescalingRequired;
-
-        // FireServer session instance
-        RFs iFs;
-
-        // Current display mode
-        TDisplayMode iDisplayMode;
-        
-        // Viewer instance
-        CMultiframeProvider* iViewer; //owned
-        
-        // Traget VF size
-        TSize iTargetSize;
-                
-        //Record TVSStillImageDataProviderParams::iInitialize in InitializeL(),
-        //used in CancelInitializing call 
-        TVSStillImageDataProviderParams::TInitialize iInitType;
-        
-    };
-
-#endif      // CVSSTILLIMTAGEDATAPROVIDER_H
-
-// End of File