vtprotocolplugins/VideoSource/src/CVSCameraDataProvider.cpp
changeset 18 d9b6a8729acd
parent 4 6dc066157ed4
child 23 c378a0498b84
child 27 dcbddbbaf8fd
--- a/vtprotocolplugins/VideoSource/src/CVSCameraDataProvider.cpp	Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,864 +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.
-*
-*/
-
-
-// INCLUDE FILES
-
-#include <e32svr.h>
-#include <fbs.h>
-
-#include "CVSCameraDataProvider.h"
-#include "CVSOnboardCameraDataProvider.h"
-#include "VSPanic.h"
-
-// EXTERNAL FUNCTION PROTOTYPES
-
-// MACROS
-
-#ifdef _DEBUG
-#    define __IF_DEBUG(t) {RDebug::t;}
-#else
-#    define __IF_DEBUG(t)
-#endif
-
-// LOCAL CONSTANTS AND MACROS
-
-static const TInt KQcifWidth = 176;
-static const TInt KQcifHeight = 144;
-static const TReal32 KFrameRate = 15.0;
-static const TInt KFrozenFrameBufferSize = ( KQcifWidth * KQcifHeight ) + ( KQcifWidth * KQcifHeight ) / 2;
-static const TInt KCCameraPriority = 80;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// ============================= CVsFrameBuffer ================================
-
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::NewL( TInt aSize )
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CVsFrameBuffer* CVsFrameBuffer::NewL( TInt aSize )
-    {
-    CVsFrameBuffer* self = new ( ELeave ) CVsFrameBuffer();
-    CleanupStack::PushL( self );
-    self->ConstructL( aSize );
-    CleanupStack::Pop(); // self
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::~CVsFrameBuffer()
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CVsFrameBuffer::~CVsFrameBuffer()
-    {
-    delete iBuffer;
-    }
-
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::CopyProperties( MFrameBuffer* aSource )
-// -----------------------------------------------------------------------------
-//
-void CVsFrameBuffer::CopyProperties( MFrameBuffer* aSource )
-    {
-    MFrameBuffer::iIndexOfFirstFrameInBuffer = aSource->iIndexOfFirstFrameInBuffer;
-    MFrameBuffer::iElapsedTime = aSource->iElapsedTime;
-    }
-
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::CopyProperties( MCameraBuffer* aSource )
-// -----------------------------------------------------------------------------
-//
-void CVsFrameBuffer::CopyProperties( MCameraBuffer* aSource )
-    {
-    MCameraBuffer::iIndexOfFirstFrameInBuffer = aSource->iIndexOfFirstFrameInBuffer;
-    MCameraBuffer::iElapsedTime = aSource->iElapsedTime;
-    }
-
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::CopyFrameL( MFrameBuffer* aSource )
-// -----------------------------------------------------------------------------
-//
-void CVsFrameBuffer::CopyFrameL( MFrameBuffer* aSource )
-    {
-    iPtr = *( aSource->DataL( 0 ) );
-    CopyProperties( aSource );
-    }
-
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::CopyFrameL( MCameraBuffer* aSource )
-// -----------------------------------------------------------------------------
-//
-void CVsFrameBuffer::CopyFrameL( MCameraBuffer* aSource )
-	{
-	iPtr = *( aSource->DataL( 0 ) );
-    CopyProperties( aSource );
-	}
-
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::DataL( TInt aIndex )
-// -----------------------------------------------------------------------------
-//
-TDesC8* CVsFrameBuffer::DataL( TInt aIndex )
-    {
-    if( aIndex != 0 )
-        {
-        User::Leave( KErrNotSupported );
-        }
-
-    return &iPtr;
-    }
-
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::FrameL( TInt aIndex )
-// -----------------------------------------------------------------------------
-//
-CFbsBitmap* CVsFrameBuffer::FrameL( TInt aIndex )
-    {
-    ( void ) aIndex;
-    User::Leave( KErrNotSupported );
-    return 0;
-    }
-
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::Release()
-// -----------------------------------------------------------------------------
-//
-void CVsFrameBuffer::Release()
-    {
-    // Nothing to do
-    }
-
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::FrameSize()
-// -----------------------------------------------------------------------------
-//
-TInt CVsFrameBuffer::FrameSize( TInt /*aFrameIndex*/ )
-    {
-    return KErrNotSupported;
-    }
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::ChunkOffsetL()
-// -----------------------------------------------------------------------------
-//
-TInt CVsFrameBuffer::ChunkOffsetL( TInt /*aFrameIndex*/ )
-    {
-    User::Leave( KErrNotSupported );
-    return KErrNotSupported;
-    }
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::ChunkL()
-// -----------------------------------------------------------------------------
-//
-RChunk& CVsFrameBuffer::ChunkL()
-	{
-	User::Leave( KErrNotSupported );
-	RChunk* help = NULL;
-	return *help;
-	}
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::BitmapL()
-// -----------------------------------------------------------------------------
-//
-CFbsBitmap& CVsFrameBuffer::BitmapL(TInt /*aFrameIndex*/ )
-	{
-	CFbsBitmap* helpbit = new (ELeave) CFbsBitmap;
-	CleanupStack::PushL( helpbit );
-	User::Leave( KErrNotSupported );
-	CleanupStack::Pop( helpbit );
-	delete helpbit;
-	return *helpbit;
-	}
-
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::NumFrames()
-// -----------------------------------------------------------------------------
-//
-TInt CVsFrameBuffer::NumFrames()
-	{
-	return KErrNotSupported;
-	}
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::CVsFrameBuffer()
-// -----------------------------------------------------------------------------
-//
-CVsFrameBuffer::CVsFrameBuffer()
-: iPtr( 0, 0 )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CVsFrameBuffer::ConstructL( TInt aSize )
-// -----------------------------------------------------------------------------
-//
-void CVsFrameBuffer::ConstructL( TInt aSize )
-    {
-    iBuffer = HBufC8::NewL( aSize );
-    iPtr.Set( iBuffer->Des() );
-    }
-
-// ========================= CVSCameraDataProvider =============================
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::NewL
-// -----------------------------------------------------------------------------
-//
-CVSCameraDataProvider* CVSCameraDataProvider::NewL(
-    MVSDataProviderObserver* aObserver,
-    TInt aProviderIndex,
-    MVSBufferPool* aPool )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::NewL() >>"), RThread().Id().operator TUint()));
-    CVSCameraDataProvider* self =
-        new (ELeave) CVSOnboardCameraDataProvider( aObserver, aPool );
-    CleanupStack::PushL( self );
-    self->ConstructL( aProviderIndex );
-    CleanupStack::Pop( self );
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::NewL() <<"), RThread().Id().operator TUint()));
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::~CVSCameraDataProvider
-// -----------------------------------------------------------------------------
-//
-CVSCameraDataProvider::~CVSCameraDataProvider()
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::~CVSCameraDataProvider() >>"), RThread().Id().operator TUint()));
-    delete iFrozenFrame;
-    delete iFrozenVFFrameCopy;
-    delete iSource;
-    delete iFrozenVFFrameToBeSent;
-    delete iTarget;
-    delete iScaler;
-    delete iCamImgProc;
-    if ( &Camera() != NULL )
-        {
-        Camera().Release();
-        }
-    delete iCamera;
-    iFreezeCS.Close();
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::~CVSCameraDataProvider() <<"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::InitializeL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::InitializeL( const TDesC8& /*aInitParams*/ )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::InitializeL() >>"), RThread().Id().operator TUint()));
-    Camera().Reserve();
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::InitializeL() <<"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::DigitalZoomFactor
-// -----------------------------------------------------------------------------
-//
-TInt CVSCameraDataProvider::DigitalZoomFactor() const
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::DigitalZoomFactor() >>"), RThread().Id().operator TUint()));
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::DigitalZoomFactor() <<"), RThread().Id().operator TUint()));
-    return Camera().DigitalZoomFactor();
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::SetDigitalZoomFactorL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::SetDigitalZoomFactorL( TInt aDigitalZoomFactor)
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetDigitalZoomFactorL() >>"), RThread().Id().operator TUint()));
-    Camera().SetDigitalZoomFactorL( aDigitalZoomFactor );
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetDigitalZoomFactorL() <<"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::StartViewFinderBitmapsL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::StartViewFinderBitmapsL( TSize& aSize )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::StartViewFinderBitmapsL() >>"), RThread().Id().operator TUint()));
-    TCameraInfo info;
-    Camera().CameraInfo( info );
-    if ( !(info.iOptionsSupported & TCameraInfo::EViewFinderBitmapsSupported) )
-        {
-        User::Leave( KErrNotSupported );
-        }
-    if( IsFrozen()&& iHasFrozenVFFrameCopyCreated )
-        {
-        ScaleFrozenBitmapL( aSize );
-        }
-    Camera().StartViewFinderBitmapsL( aSize );
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::StartViewFinderBitmapsL() <<"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::StartViewFinderBitmapsL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::StartViewFinderBitmapsL( TSize&, TRect& )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::StartViewFinderBitmapsL() >>"), RThread().Id().operator TUint()));
-    User::Leave( KErrNotSupported );
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::StopViewFinder
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::StopViewFinder()
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::StopViewFinder() >>"), RThread().Id().operator TUint()));
-    Camera().StopViewFinder();
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::StopViewFinder() <<"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::ViewFinderActive
-// -----------------------------------------------------------------------------
-//
-TBool CVSCameraDataProvider::ViewFinderActive() const
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ViewFinderActive() >>"), RThread().Id().operator TUint()));
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ViewFinderActive() <<"), RThread().Id().operator TUint()));
-    return Camera().ViewFinderActive();
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::StartViewFinderDirectL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::StartViewFinderDirectL( RWsSession&,
-    CWsScreenDevice&, RWindowBase&, TRect& )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::StartViewFinderDirectL() >>"), RThread().Id().operator TUint()));
-    User::Leave( KErrNotSupported );
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::StartViewFinderDirectL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::StartViewFinderDirectL( RWsSession&,
-    CWsScreenDevice&, RWindowBase&, TRect&, TRect& )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::StartViewFinderDirectL() >>"), RThread().Id().operator TUint()));
-    User::Leave( KErrNotSupported );
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::ProviderInfo
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::ProviderInfo( TVSDataProviderInfo& aInfo )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ProviderInfo() >>"), RThread().Id().operator TUint()));
-    Camera().CameraInfo( static_cast< TCameraInfo& >( aInfo ) );
-    aInfo.iFreezeSupported = ETrue;
-    TRAP_IGNORE( ProviderInfoExL( aInfo ) );
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ProviderInfo() <<"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::SetViewFinderMirrorL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::SetViewFinderMirrorL( TBool aMirror )
-    {
-    Camera().SetViewFinderMirrorL( aMirror );
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::ViewFinderMirror
-// -----------------------------------------------------------------------------
-//
-TBool CVSCameraDataProvider::ViewFinderMirror() const
-    {
-    return Camera().ViewFinderMirror();
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::FreezeL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::FreezeL()
-    {
-    iFreezeCS.Wait();
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::FreezeL() >>"), RThread().Id().operator TUint()));
-    if( !IsFrozen() )
-        {
-        iFrozen = ETrue;
-        iFrozenVfFrameReady = EFalse;
-        iFreezePendingFlags = EViewFinderFreezePending | EVideoFrameFreezePending;
-        }
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::FreezeL() <<"), RThread().Id().operator TUint()));
-    iFreezeCS.Signal();
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::UnfreezeL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::UnfreezeL()
-    {
-    iFreezeCS.Wait();
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::UnfreezeL() >>"), RThread().Id().operator TUint()));
-    if( IsFrozen() )
-        {
-        iFrozen = EFalse;
-        iFreezePendingFlags = 0;
-        iHasFrozenVFFrameCopyCreated = EFalse;
-        }
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::UnfreezeL() <<"), RThread().Id().operator TUint()));
-    iFreezeCS.Signal();
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::IsFrozen
-// -----------------------------------------------------------------------------
-//
-TBool CVSCameraDataProvider::IsFrozen() const
-    {
-    return iFrozen;
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::ImageReady
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::ImageReady(
-    CFbsBitmap* /*aBitmap*/, HBufC8* /*aData*/, TInt /*aError*/ )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ImageReady() >>"), RThread().Id().operator TUint()));
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ImageReady() <<"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::PowerOnComplete
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::PowerOnComplete( TInt aError )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::PowerOnComplete() >>"), RThread().Id().operator TUint()));
-    if ( !iPowerOnComplete )
-        {
-        if ( aError == KErrNone )
-            {
-            iPowerOnComplete = ETrue;
-            iCameraHandle = Camera().Handle();
-            // Setup ECAM so that the returned image is ok even if view finder
-            // is asked before video
-            TCameraInfo info;
-            Camera().CameraInfo( info );
-            if ( !(info.iOptionsSupported &
-                TCameraInfo::EViewFinderBitmapsSupported) )
-                {
-                NotifyError( KErrNotSupported );
-                return; // End debug print is missed
-                }
-            TInt sizeIndex, rateIndex;
-            sizeIndex = rateIndex = 0;
-            for (
-                sizeIndex = 0;
-                sizeIndex < info.iNumVideoFrameSizesSupported;
-                sizeIndex++ )
-                {
-                TSize size;
-                Camera().EnumerateVideoFrameSizes(
-                    size,
-                    sizeIndex,
-                    CCamera::EFormatYUV420Planar );
-                if ( size == TSize( KQcifWidth, KQcifHeight ) )
-                    {
-                    TReal32 rate;
-                    for (
-                        rateIndex = 0;
-                        rateIndex < info.iNumVideoFrameRatesSupported;
-                        rateIndex++ )
-                        {
-                        Camera().EnumerateVideoFrameRates(
-                            rate,
-                            rateIndex,
-                            CCamera::EFormatYUV420Planar,
-                            sizeIndex );
-                        if ( KFrameRate == rate )
-                            {
-                            TRAPD(
-                                err,
-                                Camera().PrepareVideoCaptureL(
-                                    CCamera::EFormatYUV420Planar,
-                                    sizeIndex,
-                                    rateIndex,
-                                    2,
-                                    1) );
-                            if ( err != KErrNone )
-                                {
-                                NotifyError( err );
-                                return; // End debug print is missed
-                                }
-                            break;
-                            }
-                        }
-                    break;
-                    }
-                }
-            Observer().vsProviderReady();
-            }
-        else
-            {
-            NotifyError( aError );
-            }
-        }
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::PowerOnComplete() <<"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::ViewFinderFrameReady
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::ViewFinderFrameReady( CFbsBitmap& aFrame )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ViewFinderFrameReady() >>"), RThread().Id().operator TUint()));
-    if( iFreezePendingFlags & EViewFinderFreezePending )
-        {
-        FreezeViewFinderFrame( aFrame );
-        }
-    if( IsFrozen() && !( iFreezePendingFlags & EViewFinderFreezePending ) && iFrozenVfFrameReady )
-        {
-        Observer().vsViewFinderFrameReady( *iFrozenVFFrameToBeSent );
-        }
-    else if( !IsFrozen() )
-        {
-        Observer().vsViewFinderFrameReady( aFrame );
-        }
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ViewFinderFrameReady() <<"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::ImageBufferReady
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::ImageBufferReady(MCameraBuffer& /*aCameraBuffer*/,TInt /*aError*/)
-	{
-	__IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ImageBufferReady() >>"), RThread().Id().operator TUint()));
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ImageBufferReady() <<"), RThread().Id().operator TUint()));
-	}
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::ScalingFinished
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::ScalingFinished( TInt aError )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ScalingFinished() >>"), RThread().Id().operator TUint()));
-    if( aError == KErrNone )
-        {
-        iFrozenVfFrameReady = ETrue;
-        }
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ScalingFinished() <<"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::CVSCameraDataProvider
-// -----------------------------------------------------------------------------
-//
-CVSCameraDataProvider::CVSCameraDataProvider(
-    MVSDataProviderObserver* aObserver,
-    MVSBufferPool* aPool ) :
-        CVSDataProvider( aObserver, aPool )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::ConstructL( TInt aProviderIndex )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ConstructL() >>"), RThread().Id().operator TUint()));
-    CVSDataProvider::ConstructL();
-    // New CCamera API imp
-    // Check which API is suported
-    TRAPD( error, iCamera =
-        CCamera::New2L( *this, aProviderIndex, KCCameraPriority ) );
-    // try to create using API
-    if ( error )
-    	{
-        __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ConstructL() New2L failed, using NewL instead"), RThread().Id().operator TUint()));
-    	iCamera = CCamera::NewL( *this, aProviderIndex );
-    	}
-    iFrozenVFFrameCopy = new ( ELeave ) CFbsBitmap();
-    iFrozenVFFrameToBeSent = new ( ELeave ) CFbsBitmap();
-    iScaler = CVtImageScaler::NewL( *this );
-    iFrozenFrame = CVsFrameBuffer::NewL( KFrozenFrameBufferSize );
-    
-    iHasFrozenVFFrameCopyCreated = EFalse;
-    
-    // Camera image processing
-    TRAP( error, iCamImgProc =
-        CCamera::CCameraImageProcessing::NewL( *iCamera ) );
-    User::LeaveIfError( iFreezeCS.CreateLocal() );
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ConstructL() <<"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::FreezeViewFinderFrame
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::FreezeViewFinderFrame( CFbsBitmap& aFrame )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::FreezeViewFinderFrame() >>"), RThread().Id().operator TUint()));
-
-    TSize frameSize( aFrame.SizeInPixels() );
-
-    TUint scanlineLength( CFbsBitmap::ScanLineLength( frameSize.iWidth, aFrame.DisplayMode() ) );
-
-    TInt result = iFrozenVFFrameCopy->Create( frameSize, aFrame.DisplayMode() );
-
-    if( result != KErrNone )
-        {
-        Observer().vsProviderError( result );
-        return;
-        }
-
-    iFrozenVFFrameCopy->LockHeap();
-    const TUint8* source = reinterpret_cast< TUint8* >( aFrame.DataAddress() );
-    TUint8* dest = reinterpret_cast< TUint8* >( iFrozenVFFrameCopy->DataAddress() );
-    for( TInt y = frameSize.iHeight - 1; y >= 0; y-- )
-        {
-        Mem::Copy( dest, source, scanlineLength );
-        dest += scanlineLength;
-        source += scanlineLength;
-        }
-    iFrozenVFFrameCopy->UnlockHeap();
-    TRAP( result, ScaleFrozenBitmapL( frameSize ) );
-    iFreezePendingFlags &= ~EViewFinderFreezePending;
-    iHasFrozenVFFrameCopyCreated = ETrue;
-    if( result != KErrNone )
-        {
-        Observer().vsProviderError( result );
-        }
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::FreezeViewFinderFrame() <<"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::ScaleFrozenBitmapL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::ScaleFrozenBitmapL( TSize& aSize )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ScaleFrozenBitmapL() >>"), RThread().Id().operator TUint()));
-    iFrozenVfFrameReady = EFalse;
-    delete iSource; iSource = 0;
-    iSource = CVtImageBitmap::NewL( iFrozenVFFrameCopy->Handle() );
-    User::LeaveIfError( iFrozenVFFrameToBeSent->Create( aSize, iFrozenVFFrameCopy->DisplayMode() ) );
-    delete iTarget; iTarget = 0;
-    iTarget = CVtImageBitmap::NewL( iFrozenVFFrameToBeSent->Handle() );
-    iScaler->Cancel();
-    iScaler->ScaleL( *iSource, *iTarget );
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ScaleFrozenBitmapL() <<"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::ProviderInfoExL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::ProviderInfoExL( TVSDataProviderInfo& aInfo )
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ProviderInfoExL() >>"), RThread().Id().operator TUint()));
-    aInfo.iSupportedColorTones = CCamera::CCameraImageProcessing::EEffectNone;
-    // Check if colortone is suported and set colortone values
-    if ( iCamImgProc )
-    	{
-        RArray< TUid > uids;
-        CleanupClosePushL( uids );
-        iCamImgProc->GetSupportedTransformationsL( uids );
-        if ( uids.Find( KUidECamEventImageProcessingEffect ) != KErrNotFound )
-            {
-            TValueInfo type;
-            RArray< TInt > values;
-            CleanupClosePushL( values );
-            iCamImgProc->GetTransformationSupportedValuesL(
-                KUidECamEventImageProcessingEffect, values, type );
-            if ( ( type == EBitField ) && ( values.Count() > 0 ) )
-                {
-                aInfo.iSupportedColorTones = values[ 0 ];
-                }
-            else
-                {
-                __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ProviderInfoExL() valueType is NOT bitfield, fix me"), RThread().Id().operator TUint()));
-                }
-            CleanupStack::PopAndDestroy(); // values.Close()
-            }
-        else
-            {
-            __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ProviderInfoExL() camera image processing not supported"), RThread().Id().operator TUint()));
-            }
-        CleanupStack::PopAndDestroy(); // uids.Close()
-    	}
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ProviderInfoExL() <<"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::SetContrastL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::SetContrastL( TInt aContrast )
-	{
-	__IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetContrastL() >>"), RThread().Id().operator TUint()));
-    Camera().SetContrastL(aContrast);
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetContrastL() <<"), RThread().Id().operator TUint()));
-	}
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::GetContrast
-// -----------------------------------------------------------------------------
-//
-TInt CVSCameraDataProvider::GetContrast( TInt& aContrast ) const
-	{
-	__IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetContrast() >>"), RThread().Id().operator TUint()));
-	TInt result( KErrNotSupported );
-	TCameraInfo info;
-    Camera().CameraInfo( info );
-	if ( info.iOptionsSupported & TCameraInfo::EContrastSupported )
-		{
-    	aContrast = Camera().Contrast();
-		__IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetContrast() %d"), RThread().Id().operator TUint(), aContrast));
-		result = KErrNone;
-		}
-     __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetContrast() <<"), RThread().Id().operator TUint()));
-     return result;
-	}
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::SetBrightnessL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::SetBrightnessL( TInt aBrightness )
-	{
-	__IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetBrightnessL() >>"), RThread().Id().operator TUint()));
-    Camera().SetBrightnessL( aBrightness );
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetBrightnessL() <<"), RThread().Id().operator TUint()));
-	}
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::GetBrightness
-// -----------------------------------------------------------------------------
-//
-TInt CVSCameraDataProvider::GetBrightness( TInt& aBrightness ) const
-	{
-	__IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetBrightness() >>"), RThread().Id().operator TUint()));
-	TInt result( KErrNotSupported );
-	TCameraInfo info;
-    Camera().CameraInfo( info );
-	if ( info.iOptionsSupported & TCameraInfo::EBrightnessSupported )
-		{
-    	aBrightness =  Camera().Brightness();
-		__IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetBrightness() %d"), aBrightness));
-    	result = KErrNone;
-		}
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetBrightness() <<"), RThread().Id().operator TUint()));
- 	return result;
-	}
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::SetWhiteBalanceL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::SetWhiteBalanceL( CCamera::TWhiteBalance
-    aWhiteBalance )
-	{
-	__IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetWhiteBalanceL() >>"), RThread().Id().operator TUint()));
-    Camera().SetWhiteBalanceL( aWhiteBalance );
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetWhiteBalanceL() <<"), RThread().Id().operator TUint()));
-	}
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::GetWhiteBalance
-// -----------------------------------------------------------------------------
-//
-TInt CVSCameraDataProvider::GetWhiteBalance( CCamera::TWhiteBalance&
-    aWhiteBalance) const
-	{
-	__IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetWhiteBalance() >>"),RThread().Id().operator TUint() ) );
-    aWhiteBalance = Camera().WhiteBalance();
-    __IF_DEBUG(Print(_L("WhiteBalance[%d]: CVSCameraDataProvider::GetWhiteBalance() %d"), aWhiteBalance ) );
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetWhiteBalance() <<"), RThread().Id().operator TUint() ) );
-    return KErrNone;
-	}
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::SetColorToneL
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::SetColorToneL(
-    CCamera::CCameraImageProcessing::TEffect aValue )
-	{
-	__IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetColorToneL() >>"), RThread().Id().operator TUint()));
-	if ( iCamImgProc )
-		{
-		iCamImgProc->SetTransformationValue( KUidECamEventImageProcessingEffect, aValue );
-		}
-	else
-		{
-		//Set colortone that is not suported -> Leave
-		__IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetColorToneL() LEAVE"), RThread().Id().operator TUint()));
-		User::Leave( KErrNotSupported );
-		}
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetColorToneL() <<"), RThread().Id().operator TUint()));
-	}
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::GetColorTone
-// -----------------------------------------------------------------------------
-//
-TInt CVSCameraDataProvider::GetColorTone(
-	CCamera::CCameraImageProcessing::TEffect& aColorTone ) const
-	{
-	__IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetColorTone() >>"), RThread().Id().operator TUint()));
-	TInt result( KErrNotSupported );
-	if ( iCamImgProc )
-		{
-		aColorTone =
-		    static_cast< CCamera::CCameraImageProcessing::TEffect >(
-		        iCamImgProc->TransformationValue(
-		            KUidECamEventImageProcessingEffect ) );
-        __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetColorTone() %d"), RThread().Id().operator TUint(), aColorTone));
-		result = KErrNone;
-		}
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetColorTone() <<"), RThread().Id().operator TUint()));
-	return 	result;
-	}
-
-// -----------------------------------------------------------------------------
-// CVSCameraDataProvider::CancelInitializing
-// -----------------------------------------------------------------------------
-//
-void CVSCameraDataProvider::CancelInitializing()
-    {
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::CancelInitializing() >>"), RThread().Id().operator TUint()));
-    //There is a blank implemention.
-    __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::CancelInitializing() <<"), RThread().Id().operator TUint()));
-    return;
-    }
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-//  End of File