--- 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