--- a/vtprotocolplugins/VideoSource/inc/CVSCameraDataProvider.h Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,517 +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 CVSCAMERADATAPROVIDER_H
-#define CVSCAMERADATAPROVIDER_H
-
-// INCLUDE FILES
-
-#include "CApiVideoSource.h"
-
-#include <cvtimagescaler.h>
-#include <cvtimagebitmap.h>
-// CLASS FORWARDS
-
-class CVsFrameBuffer;
-
-// CLASS DECLARATION
-
-/**
-* Internal MFrameBuffer API.
-*
-* @lib videosource.lib
-* @since 5.0
-*/
-class MVsFrameBuffer
- {
-
-public:
-
- /**
- * Copies properties from the given frame buffer.
- * @param "aSource" Source frame buffer from which propreties will
- * be copied.
- */
- virtual void CopyProperties( MFrameBuffer* aSource ) = 0;
-
- /**
- * Copies properties from the given camera buffer.
- * @param "aSource" Source camera buffer from which propreties will
- * be copied.
- */
- virtual void CopyProperties( MCameraBuffer* aSource ) = 0;
-
- /**
- * Copies frame data and properties from the given frame buffer.
- * @param "aSource" Source frame buffer from which propreties and
- * frame data will be copied.
- */
- virtual void CopyFrameL( MFrameBuffer* aSource ) = 0;
-
- /**
- * Copies frame data and properties from the given camera buffer.
- * @param "aSource" Source camera buffer from which propreties and
- * frame data will be copied.
- */
- virtual void CopyFrameL( MCameraBuffer* aSource ) = 0;
-
- };
-
-/**
-* Internal MFrameBuffer implementation.
-*
-* @lib videosource.lib
-*/
-class CVsFrameBuffer : public CBase, public MVsFrameBuffer,
- public MFrameBuffer, public MCameraBuffer
- {
- public:
-
- /**
- * Constructor.
- * @param "sSize" Size of stored frame in bytes.
- * @exception Can leave with one of the system wide error codes.
- */
- IMPORT_C static CVsFrameBuffer* NewL( TInt aSize );
-
- /**
- * Destructor.
- */
- IMPORT_C ~CVsFrameBuffer();
-
- public: // from MVsFrameBuffer
-
- /**
- * @see MVsFrameBuffer::CopyProperties
- */
- virtual void CopyProperties( MFrameBuffer* aSource );
-
- /**
- * @see MVsFrameBuffer::CopyProperties
- */
- virtual void CopyProperties( MCameraBuffer* aSource );
-
- /**
- * @see MVsFrameBuffer::CopyFrameL
- */
- virtual void CopyFrameL( MFrameBuffer* aSource );
-
- /**
- * @see MVsFrameBuffer::CopyFrameL
- */
- virtual void CopyFrameL( MCameraBuffer* aSource );
-
- public: // from MFrameBuffer
-
- /**
- * @see MFrameBuffer::DataL or MCameraBuffer::DataL
- */
- TDesC8* DataL( TInt aIndex );
-
- /**
- * @see MFrameBuffer::FrameL or MCameraBuffer::FrameL
- */
- CFbsBitmap* FrameL( TInt aIndex );
-
- /**
- * @see MFrameBuffer::Release or MCameraBuffer::Release
- */
- void Release();
-
- /**
- * @see MCameraBuffer::FrameSize
- */
- TInt FrameSize(TInt aFrameIndex);
-
- /**
- * @see MCameraBuffer::ChunkOffsetL
- */
- TInt ChunkOffsetL(TInt aFrameIndex);
-
- /**
- * @see MCameraBuffer::ChunkL
- */
- RChunk& ChunkL();
-
- /**
- * @see MCameraBuffer::BitmapL
- */
- CFbsBitmap& BitmapL(TInt aFrameIndex);
-
- /**
- * @see MCameraBuffer::NumFrames
- */
- TInt NumFrames();
-
- private:
-
- /**
- * Constructor.
- */
- CVsFrameBuffer();
-
- /**
- * Second phase constructor.
- * @param "aSize" Size of the frame in bytes.
- */
- void ConstructL( TInt aSize );
-
- private:
-
- HBufC8* iBuffer;
-
- TPtr8 iPtr;
-
- };
-
-/**
-* Internal implementation of onboard camera data provider base class. This
-* class is inherited from public provider interface.
-*
-* @lib videosource.lib
-*/
-class CVSCameraDataProvider : public CVSDataProvider, public MCameraObserver, public MVtImageScalerObserver, public MCameraObserver2
- {
- public: // Constructor and destructor
-
- /**
- * Factory function to create instance of onboard camera data provider.
- * @param "aObserver" Pointer to provider observer.
- * @param "aProviderIndex" Index of the provider to be created.
- * @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 provider instance.
- */
- static CVSCameraDataProvider* NewL(
- MVSDataProviderObserver* aObserver,
- TInt aProviderIndex,
- MVSBufferPool* aPool );
-
- /**
- * Destructor.
- */
- ~CVSCameraDataProvider();
-
- public: // New functions
-
- public: // Functions from base classes
-
- /**
- * Initialize provider.
- * @param "aInitParams" Initialization parameters.
- * @exception Can leave with one of the system wide error codes.
- */
- void InitializeL( const TDesC8& aInitParams );
-
- /**
- * Cancel initialization of camera 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
- */
- 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: // from MCameraObserver
-
- /**
- * @see MCameraObserver::ImageReady
- */
- virtual void ImageReady( CFbsBitmap* aBitmap, HBufC8* aData,
- TInt aError );
-
- /**
- * @see MCameraObserver::PowerOnComplete
- */
- virtual void PowerOnComplete( TInt aError );
-
- /**
- * @see MCameraObserver::ViewFinderFrameReady
- */
- virtual void ViewFinderFrameReady( CFbsBitmap& aFrame );
-
- protected: // from MVtImageScalerObserver
-
- /**
- * @see MVtImageScalerObserver::ScalingFinished( TInt aError )
- */
- virtual void ScalingFinished( TInt aError );
-
- protected: // from MCameraObserver2
-
- /**
- * @see MCameraObserver2::ImageBufferReady
- */
- virtual void ImageBufferReady( MCameraBuffer& aCameraBuffer,
- TInt aError );
-
- protected: // New functions
-
- /**
- * Inliner to return reference to the onboard camera handle.
- * @return Reference to the onboard camera handle.
- */
- inline CCamera& Camera() const;
-
- protected: // Constructors and destructor
-
- /**
- * Constructor.
- * @param "aObserver" Pointer to provider observer.
- */
- CVSCameraDataProvider(
- MVSDataProviderObserver* aObserver,
- MVSBufferPool* aPool );
-
- private: // Constructors and destructors
-
- /**
- * 2nd phase constructor.
- * @param "aProviderIndex" Index of the provider to be created.
- * @exception Can leave with one of the system wide error codes.
- */
- void ConstructL( TInt aProviderIndex );
-
- void FreezeViewFinderFrame( CFbsBitmap& aFrame );
-
- void ScaleFrozenBitmapL( TSize& aSize );
-
- private: // New functions
-
- /**
- * Return provider information.
- */
- void ProviderInfoExL( TVSDataProviderInfo& aInfo );
-
- private: // Functions from base classes
-
- public: // Data
-
- protected: // Data
-
- enum TFreezePendingFlags
- {
- EViewFinderFreezePending = ( 1 << 0 ),
- EVideoFrameFreezePending = ( 1 << 1 )
- };
-
- // Camera handle number.
- TInt iCameraHandle;
-
- // ETrue after ReserveComplete for iCamera
- TBool iReserverComplete;
-
- // ETrue after PowerOnComplete for iCamera
- TBool iPowerOnComplete;
-
- // ETrue after Freeze
- TBool iFrozen;
-
- // Contains pending freeze flags after Freeze
- TUint iFreezePendingFlags;
-
- // has frozen viewfinder frame copy
- TBool iHasFrozenVFFrameCopyCreated;
-
- CVsFrameBuffer* iFrozenFrame;
-
- RCriticalSection iFreezeCS;
-
- private: // Data
-
- // Camera handle.
- CCamera* iCamera;
-
- // owned: Copy of frozen VF frame
- CFbsBitmap* iFrozenVFFrameCopy;
-
- //
- CVtImageBitmap* iSource;
-
- // owned: Scaled version of frozen VF frame (this is sent)
- CFbsBitmap* iFrozenVFFrameToBeSent;
-
- //
- CVtImageBitmap* iTarget;
-
- // owned: Scaler instance
- CVtImageScaler* iScaler;
-
- // ETrue when frozen VF frame is ready to be sent EFalse otherwise
- TBool iFrozenVfFrameReady;
-
- // Camera image processing
- CCamera::CCameraImageProcessing* iCamImgProc;
-
- private: // friends
-
- // Stif test module must be set as friend to be able to call protected
- // and private methods
- friend class CstiffVideoSourceAPICases;
-
- };
-
-#include "CVSCameraDataProvider.inl"
-
-#endif // CVSCAMERADATAPROVIDER_H
-
-// End of File