--- a/vtprotocolplugins/VideoSource/src/CVSStillImageDataProvider.cpp Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1190 +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 <bautils.h>
-#include <imageconversion.h>
-#include <cvtimageconverter.h>
-#include <RPhCltServer.h>
-#include <cphcltimagehandler.h>
-#include <w32std.h>
-
-#include "CVSStillImageDataProvider.h"
-#include "CVSDataSourceImp.h"
-#include "VSPanic.h"
-#include "cvtimagebitmap.h"
-#include "CVSMMFDataBuffer.h"
-
-#include "cmultiframeprovider.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 KMinZoom = 0;
-static const TInt KMaxZoom = 0;
-static const TInt KMaxDigitalZoom = 0;
-static const TReal32 KMinZoomFactor = 0.0;
-static const TReal32 KMaxZoomFactor = 0.0;
-static const TReal32 KMaxDigitalZoomFactor = 1.0;
-static const TInt KNumVideoSizesSupported = 1;
-static const TInt KNumVideoFrameSizesSupported = 1;
-static const TInt KNumVideoFrameRatesSupported = 1;
-static const TInt KMaxFramesPerBufferSupported = 1;
-static const TInt KQcifWidth = 176;
-static const TInt KQcifHeight = 144;
-static const TReal32 KFrameRate = 15.0;
-static const TUint32 KVSViewFinderUpdateRate = 1000000/15; // 15 times per second
-
-// TYPE DEFINITIONS
-
-// Timer expired callback
-
-typedef void (CVSStillImageDataProvider::*TTimerElapsed) ();
-
-// INTERNAL CLASSES
-
-/**
-* Timer class that calls given callback method when timer request has been
-* completed. If the timer request is cancelled then callback will not be
-* called.
-*
-* @lib videosource.lib
-*/
-class CVSFrameRateTimer : public CTimer
- {
- public: // Constructors and destructor
-
- /**
- * Static factory function to create instance of this class.
- * @param "aRequester" ?description
- * @exception Can leave with one of the system wide error codes.
- * @return Pointer to new instance.
- */
- static CVSFrameRateTimer* NewL( CVSStillImageDataProvider* aRequester );
-
- public: // New functions
-
- public: // Functions from base classes
-
- /**
- * Starts timer request. When timer request has been completed given
- * callback method will be called.
- * @param "anInterval" Interval after which event is to occur,
- * in microseconds.
- * @param "aFunction" Callback method that will be called when timer
- * request has been completed.
- */
- void After(
- TTimeIntervalMicroSeconds32 anInterval,
- TTimerElapsed aFunction );
-
- public: // Constructors and destructor
-
- /**
- * Destructor.
- */
- ~CVSFrameRateTimer();
-
- protected: // New functions
-
- protected: // Functions from base classes
-
- private: // Constructors and destrcutor
-
- /**
- * Constructor.
- * @param "aRequester" ?description
- */
- CVSFrameRateTimer( CVSStillImageDataProvider* aRequester );
-
- private: // New functions
-
- private: // Functions from base classes
-
- /**
- * From CActive. See CActive for description.
- */
- void RunL();
-
- public: // Data
-
- protected: // Data
-
- private: // Data
-
- // Pointer to requester (i.e. through which callback call will be made)
- CVSStillImageDataProvider* iRequester; // not owned
-
- // Pointer to callback method.
- TTimerElapsed iFunction;
- };
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// ============================ CVSFrameRateTimer ==============================
-
-// -----------------------------------------------------------------------------
-// CVSFrameRateTimer::NewL( CVSStillImageDataProvider* aRequester )
-// -----------------------------------------------------------------------------
-//
-CVSFrameRateTimer* CVSFrameRateTimer::NewL(
- CVSStillImageDataProvider* aRequester )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::NewL() >>"), RThread().Id().operator TUint()));
- CVSFrameRateTimer* self = new (ELeave) CVSFrameRateTimer( aRequester );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop(); // self
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::NewL() <<"), RThread().Id().operator TUint()));
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CVSFrameRateTimer::CVSFrameRateTimer( CVSStillImageDataProvider* aRequester )
-// -----------------------------------------------------------------------------
-//
-CVSFrameRateTimer::CVSFrameRateTimer( CVSStillImageDataProvider* aRequester )
-: CTimer( EPriorityStandard ), iRequester( aRequester )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::CVSFrameRateTimer() >>"), RThread().Id().operator TUint()));
- // Added to CActiveScheduler in CVSStillImageDataProvider::InitializeL
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::CVSFrameRateTimer() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSFrameRateTimer::After(
-// TTimeIntervalMicroSeconds32 anInterval, TTimerElapsed aFunction )
-// -----------------------------------------------------------------------------
-//
-void CVSFrameRateTimer::After(
- TTimeIntervalMicroSeconds32 anInterval,
- TTimerElapsed aFunction )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::After() >>"), RThread().Id().operator TUint()));
- if ( iFunction == aFunction )
- {
- if ( !IsActive() )
- {
- iFunction = aFunction;
- CTimer::After( anInterval );
- }
- }
- else
- {
- if ( !IsActive() )
- {
- iFunction = aFunction;
- CTimer::After( anInterval );
- }
- else
- {
- User::Panic(_L("VideoSource"),KErrGeneral);
- }
- }
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::After() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSFrameRateTimer::~CVSFrameRateTimer()
-// -----------------------------------------------------------------------------
-//
-CVSFrameRateTimer::~CVSFrameRateTimer()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::~CVSFrameRateTimer() >>"), RThread().Id().operator TUint()));
- Cancel();
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::~CVSFrameRateTimer() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSFrameRateTimer::RunL()
-// -----------------------------------------------------------------------------
-//
-void CVSFrameRateTimer::RunL()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::RunL() >>"), RThread().Id().operator TUint()));
- if( iStatus.Int() == KErrNone )
- {
- (iRequester->*iFunction)();
- }
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::RunL() <<"), RThread().Id().operator TUint()));
- }
-
-// ============================ CVSStillImageDataProvider ===============================
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::NewL(
-// MVSDataProviderObserver* aObserver, MVSBufferPool* aPool )
-// -----------------------------------------------------------------------------
-//
-CVSStillImageDataProvider* CVSStillImageDataProvider::NewL(
- MVSDataProviderObserver* aObserver,
- MVSBufferPool* aPool )
- {
- __IF_DEBUG(Print(_L("VideoSource: [%d] CVSStillImageDataProvider::NewL() >>"), RThread().Id().operator TUint()));
- CVSStillImageDataProvider* self =
- new (ELeave) CVSStillImageDataProvider( aObserver, aPool );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- __IF_DEBUG(Print(_L("VideoSource: [%d] CVSStillImageDataProvider::NewL() <<"), RThread().Id().operator TUint()));
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::~CVSStillImageDataProvider()
-// -----------------------------------------------------------------------------
-//
-CVSStillImageDataProvider::~CVSStillImageDataProvider()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::~CVSStillImageDataProvider() this %x >>"), RThread().Id().operator TUint(), this));
- iFs.Close();
- delete iVFTimer;
- delete iActiveWait;
- delete iViewer;
- iFreezeCS.Close();
- delete iScaled;
- ReleaseYUVData();
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::~CVSStillImageDataProvider() this %x <<"), RThread().Id().operator TUint(), this));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::InitializeL( const TDesC8& aInitParams )
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::InitializeL( const TDesC8& aInitParams )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::InitializeL() >>"), RThread().Id().operator TUint()));
-
- CommonInitializeL();
-
- TPckgBuf< TVSStillImageDataProviderParams > pb;
- pb.Copy( aInitParams );
-
- iInitType = pb().iInitialize;
- iPSState = EPSInitializing;
-
- switch( pb().iInitialize )
- {
- /** Initialize from blank image */
- case TVSStillImageDataProviderParams::EInitializeAsBlankImage:
- BlankImageInitializeL();
- break;
-
- /** Initialize from General Settings */
- case TVSStillImageDataProviderParams::EInitializeFromGeneralSettings:
- GeneralSettingsInitializeL( EGSStillImage );
- break;
-
- /** Initilaize from General Settings*/
- case TVSStillImageDataProviderParams::EInitializeAsDefaultStillImage:
- GeneralSettingsInitializeL( EGSDefaultStillImage );
- break;
-
- /** Initialize from file */
- case TVSStillImageDataProviderParams::EInitializeFromFile:
- FileImageInitializeL( pb().iFileName );
- break;
- }
-
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::InitializeL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::CommonInitializeL()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::CommonInitializeL()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CommonInitializeL() >>"), RThread().Id().operator TUint()));
- iVFTimer = CVSFrameRateTimer::NewL( this );
- CActiveScheduler::Add( iVFTimer );
- iActiveWait = new (ELeave) CVSActiveWait< CVSStillImageDataProvider > ( this );
-
- //Create viewer
- iViewer = CMultiframeProvider::NewL( this , iDisplayMode );
- User::LeaveIfError( iFreezeCS.CreateLocal() );
-
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CommonInitializeL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::GeneralSettingsInitializeL()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::GeneralSettingsInitializeL( const TGeneralSettingsImageType aType )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::GeneralSettingsInitializeL() >>"), RThread().Id().operator TUint()));
- iViewer->IniatializeGSL( aType );
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::GeneralSettingsInitializeL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::BlankImageInitializeL()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::BlankImageInitializeL()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::BlankImageInitializeL() %x >>"), RThread().Id().operator TUint(), this));
- iViewer->IniatializeBlankL();
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::BlankImageInitializeL() %x <<"), RThread().Id().operator TUint(), this));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::FileImageInitializeL
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::FileImageInitializeL( const TFileName& aFileName )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::FileImageInitializeL(): %S >>"), RThread().Id().operator TUint(), &aFileName ));
- iViewer->InitializeL( &aFileName );
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::FileImageInitializeL() %x <<"), RThread().Id().operator TUint(), this));
- }
-
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::DigitalZoomFactor() const
-// -----------------------------------------------------------------------------
-//
-TInt CVSStillImageDataProvider::DigitalZoomFactor() const
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::DigitalZoomFactor() >>"), RThread().Id().operator TUint()));
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::DigitalZoomFactor() <<"), RThread().Id().operator TUint()));
- return KMaxDigitalZoom;
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SetDigitalZoomFactorL(
-// TInt /*aDigitalZoomFactor*/ )
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::SetDigitalZoomFactorL(
- TInt /*aDigitalZoomFactor*/ )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SetDigitalZoomFactorL() >>"), RThread().Id().operator TUint()));
- User::Leave( KErrNotSupported );
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SetDigitalZoomFactorL() <<"), RThread().Id().operator TUint()));
- }
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::StartViewFinderBitmapsL( TSize& aSize )
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::StartViewFinderBitmapsL( TSize& aSize )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderBitmapsL() >>"), RThread().Id().operator TUint()));
- __ASSERT_DEBUG( iPSState > EPSUninitialized,
- Panic( EVSPanicProviderNotReady ) );
- iVFState = EVFPlaying;
- iViewer->ClearVFScalingTargetSize();
- iTargetSize = aSize;
- iViewer->SetVFScalingTargetSize( aSize );
- iViewer->ScaleCopy( aSize, ETrue );
- iViewer->IncreaseDataConsumer();
- iViewer->NextFrame();
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderBitmapsL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::StartViewFinderBitmapsL(
-// TSize& /*aSize*/, TRect& /*aClipRect*/ )
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::StartViewFinderBitmapsL(
- TSize& /*aSize*/,
- TRect& /*aClipRect*/ )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderBitmapsL() >>"), RThread().Id().operator TUint()));
- User::Leave( KErrNotSupported );
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderBitmapsL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::StopViewFinder()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::StopViewFinder()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StopViewFinder() >>"), RThread().Id().operator TUint()));
- // Make sure scaler is cancelled (just in case!)
- iViewer->ClearVFScalingTargetSize();
- iViewer->DecreaseDataConsumer();
- iViewer->SetVFStop();
- // No double stopping..
- if( iVFState != EVFStopped )
- {
- iVFState = EVFStopped;
- iVFTimer->Cancel();
- }
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StopViewFinder() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::ViewFinderActive() const
-// -----------------------------------------------------------------------------
-//
-TBool CVSStillImageDataProvider::ViewFinderActive() const
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::ViewFinderActive() >>"), RThread().Id().operator TUint()));
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::ViewFinderActive() <<"), RThread().Id().operator TUint()));
- return ( iVFState == EVFPlaying );
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::StartViewFinderDirectL(
-// RWsSession& /*aWs*/, CWsScreenDevice& /*aScreenDevice*/,
-// RWindowBase& /*aWindow*/, TRect& /*aScreenRect*/ )
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::StartViewFinderDirectL(
- RWsSession& /*aWs*/,
- CWsScreenDevice& /*aScreenDevice*/,
- RWindowBase& /*aWindow*/,
- TRect& /*aScreenRect*/ )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderDirectL() >>"), RThread().Id().operator TUint()));
- User::Leave(KErrNotSupported);
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderDirectL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::StartViewFinderDirectL(
-// RWsSession& /*aWs*/, CWsScreenDevice& /*aScreenDevice*/,
-// RWindowBase& /*aWindow*/, TRect& /*aScreenRect*/, TRect& /*aClipRect*/ )
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::StartViewFinderDirectL(
- RWsSession& /*aWs*/,
- CWsScreenDevice& /*aScreenDevice*/,
- RWindowBase& /*aWindow*/,
- TRect& /*aScreenRect*/,
- TRect& /*aClipRect*/ )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderDirectL() >>"), RThread().Id().operator TUint()));
- User::Leave(KErrNotSupported);
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderDirectL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::ProviderInfo( TVSDataProviderInfo& aInfo )
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::ProviderInfo( TVSDataProviderInfo& aInfo )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::ProviderInfo() >>"), RThread().Id().operator TUint()));
- Mem::FillZ( &aInfo, sizeof( aInfo ) );
- aInfo.iHardwareVersion = TVersion( 0, 0, 0 );
- aInfo.iSoftwareVersion = TVersion( 0, 0, 0 );
- aInfo.iOrientation = TCameraInfo::EOrientationUnknown;
- aInfo.iOptionsSupported = TCameraInfo::EViewFinderBitmapsSupported |
- TCameraInfo::EVideoCaptureSupported;
- aInfo.iFlashModesSupported = CCamera::EFlashNone;
- aInfo.iExposureModesSupported = CCamera::EExposureAuto;
- aInfo.iWhiteBalanceModesSupported = CCamera::EWBAuto;
- aInfo.iMinZoom = KMinZoom;
- aInfo.iMaxZoom = KMaxZoom;
- aInfo.iMaxDigitalZoom = KMaxDigitalZoom;
- aInfo.iMinZoomFactor = KMinZoomFactor;
- aInfo.iMaxZoomFactor = KMaxZoomFactor;
- aInfo.iMaxDigitalZoomFactor = KMaxDigitalZoomFactor;
- aInfo.iImageFormatsSupported = CCamera::EFormatFbsBitmapColor64K |
- CCamera::EFormatFbsBitmapColor16M;
- aInfo.iNumVideoFrameSizesSupported = KNumVideoSizesSupported;
- aInfo.iNumVideoFrameSizesSupported = KNumVideoFrameSizesSupported;
- aInfo.iNumVideoFrameRatesSupported = KNumVideoFrameRatesSupported;
- aInfo.iVideoFrameFormatsSupported = CCamera::EFormatYUV420Planar;
- aInfo.iMaxFramesPerBufferSupported = KMaxFramesPerBufferSupported;
- aInfo.iFreezeSupported = EFalse;
-
- aInfo.iSupportedColorTones =
- CCamera::CCameraImageProcessing::EEffectNone;
-
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::ProviderInfo() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SetViewFinderMirrorL
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::SetViewFinderMirrorL( TBool /*aMirror*/ )
- {
- User::Leave( KErrNotSupported );
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::ViewFinderMirror
-// -----------------------------------------------------------------------------
-//
-TBool CVSStillImageDataProvider::ViewFinderMirror() const
- {
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::FreezeL
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::FreezeL()
- {
- User::Leave( KErrNotSupported );
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::UnfreezeL
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::UnfreezeL()
- {
- User::Leave( KErrNotSupported );
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::IsFrozen
-// -----------------------------------------------------------------------------
-//
-TBool CVSStillImageDataProvider::IsFrozen() const
- {
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::PrimeL
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::PrimeL()
- {
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::PrimeL() &%x >>"), RThread().Id().operator TUint(), this));
- SourcePrimeL();
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::PrimeL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::FillBufferL(
-// CMMFBuffer* aBuffer, MVTVideoSink* aConsumer, TMediaId aMediaId )
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::FillBufferL(
- CMMFBuffer* /*aBuffer*/,
- MVTVideoSink* /*aConsumer*/,
- TMediaId /*aMediaId*/ )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::FillBufferL() &%x >>"), RThread().Id().operator TUint(),this));
- if ( iPSState != EPSPlaying )
- {
- User::Leave( KErrNotReady );
- }
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::FillBufferL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::BufferEmptiedL( CMMFBuffer* /*aBuffer*/ )
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::BufferEmptiedL( CMMFBuffer* /*aBuffer*/ )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::BufferEmptiedL() >>"), RThread().Id().operator TUint()));
- User::Leave( KErrNotSupported );
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::BufferEmptiedL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SourceThreadLogon(
-// MAsyncEventHandler& /*aEventHandler*/ )
-// -----------------------------------------------------------------------------
-//
-TInt CVSStillImageDataProvider::SourceThreadLogon(
- MAsyncEventHandler& /*aEventHandler*/ )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourceThreadLogon() &%x >>"), RThread().Id().operator TUint(),this));
- __ASSERT_DEBUG( iPSState > EPSUninitialized,
- Panic( EVSPanicProviderNotReady ) );
- TRAPD( err, CreateProtoTimerL() );
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourceThreadLogon() <<"), RThread().Id().operator TUint()));
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SourceThreadLogoff()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::SourceThreadLogoff()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourceThreadLogoff() &%x >>"), RThread().Id().operator TUint(),this));
- ReleaseProtoTimer();
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourceThreadLogoff() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SourcePrimeL()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::SourcePrimeL()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourcePrimeL() &%x >>"), RThread().Id().operator TUint(),this));
- iPSState = EPSPrimed;
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourcePrimeL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SourcePlayL()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::SourcePlayL()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourcePlayL() &%x >>"), RThread().Id().operator TUint(),this));
- iPSState = EPSPlaying;
- iFrameCount = 0;
- ResetStartTime();
- iViewer->IncreaseDataConsumer();
- iProtoTimer->After( iProtoUpdateRate, &CVSStillImageDataProvider::ProtoTimer );
- iViewer->NextFrame();
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourcePlayL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SourcePauseL()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::SourcePauseL()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourcePauseL() &%x >>"), RThread().Id().operator TUint(),this));
- if ( iProtoTimer != NULL )
- {
- iProtoTimer->Cancel();
- }
- iPSState = EPSPrimed;
- iViewer->DecreaseDataConsumer();
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourcePauseL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SourceStopL()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::SourceStopL()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourceStopL() &%x >>"), RThread().Id().operator TUint(),this));
- if ( iProtoTimer != NULL )
- {
- iProtoTimer->Cancel();
- }
- iPSState = EPSStopped;
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourceStopL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SetFormatL( const TDesC8& aFormat )
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::SetFormatL( const TDesC8& aFormat )
- {
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::SetFormatL() &%x >>"), RThread().Id().operator TUint(),this));
- if ( aFormat != KVtVideoMIMETypeYUV420 )
- {
- User::Leave( KErrNotSupported );
- }
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::SetFormatL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SetFrameRateL( TReal32 aFrameRate )
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::SetFrameRateL( TReal32 aFrameRate )
- {
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::SetFrameRateL() &%x >>"), RThread().Id().operator TUint(),this));
- if ( aFrameRate != KFrameRate )
- {
- User::Leave( KErrNotSupported );
- }
- iProtoUpdateRate = static_cast<TInt>( 1000000.0 / aFrameRate );
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::SetFrameRateL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SetVideoFrameSizeL( const TSize& aSize )
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::SetVideoFrameSizeL( const TSize& aSize )
- {
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::SetVideoFrameSizeL() &%x >>"), RThread().Id().operator TUint(),this));
- if( aSize != TSize( KQcifWidth, KQcifHeight ) )
- {
- User::Leave( KErrNotSupported );
- }
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::SetVideoFrameSizeL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::GetVideoFrameSizeL( TSize& aSize ) const
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::GetVideoFrameSizeL( TSize& aSize ) const
- {
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::GetVideoFrameSizeL() &%x >>"), RThread().Id().operator TUint(),this));
- aSize = TSize( KQcifWidth, KQcifHeight );
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::GetVideoFrameSizeL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::VFTimer()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::VFTimer()
- {
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::VFTimer() >>"), RThread().Id().operator TUint()));
- if( iVFState == EVFPlaying )
- {
- Observer().vsViewFinderFrameReady( iVFBitmap->Bitmap() );
- iVFTimer->After( KVSViewFinderUpdateRate, &CVSStillImageDataProvider::VFTimer );
- }
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::VFTimer() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::ProtoTimer()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::ProtoTimer()
- {
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ProtoTimer() this %x >>"), RThread().Id().operator TUint(), this));
- iFrameCount++;
- CVSMMFDataBuffer* buffer = NULL;
- TRAPD( err, buffer = BufferPool().GetBufferL( ETrue ) );
- if ( err != KErrNone )
- {
- NotifyError( err );
- }
- if( buffer )
- {
- buffer->SetFrameNumber( iFrameCount );
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ProtoTimer(): iFrameCount %d"), RThread().Id().operator TUint(), iFrameCount));
- buffer->SetTimeToPlay( TimeToPlay() );
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ProtoTimer(): SetTimeToPlay() = $%08x:$%08x"), RThread().Id().operator TUint(), I64HIGH( buffer->TimeToPlay().Int64() ), I64LOW( buffer->TimeToPlay().Int64() ) ));
- iFreezeCS.Wait();
- buffer->Data() = *iYUVBuffer;
- iFreezeCS.Signal();
- TRAPD( err, Consumer()->BufferFilledL( buffer ) );
- if( err != KErrNone )
- {
- TInt leaveCode = KErrNone;
- TRAP( leaveCode, BufferPool().FreeBufferL( buffer ) );
- NotifyError( err );
- }
- }
- else
- {
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ProtoTimer(): GetBufferL() returned NULL"), RThread().Id().operator TUint()));
- }
- // Just to make sure that we're actually playing. We also check that
- // iProtoTimer still exists BECAUSE BufferFilledL() may call
- // SourceThreadLogoff() if a switch is pending
- if( iProtoTimer && ( iPSState == EPSPlaying ) )
- {
- iProtoTimer->After( iProtoUpdateRate, &ProtoTimer );
- }
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ProtoTimer() this %x <<"), RThread().Id().operator TUint(), this));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::CreateProtoTimerL()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::CreateProtoTimerL()
- {
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::CreateProtoTimerL() >>"), RThread().Id().operator TUint()));
- iProtoTimer = CVSFrameRateTimer::NewL( this );
- CActiveScheduler::Add( iProtoTimer );
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::CreateProtoTimerL() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::ReleaseProtoTimer()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::ReleaseProtoTimer()
- {
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ReleaseProtoTimer() >>"), RThread().Id().operator TUint()));
- delete iProtoTimer;
- iProtoTimer = 0;
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ReleaseProtoTimer() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::CreateYUVDataL()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::CreateYUVDataL()
- {
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::CreateYUVDataL() this %x >>"), RThread().Id().operator TUint(), this));
- CVSFbsBitmapIYUVConverter* conv =
- CVSFbsBitmapIYUVConverter::NewL( iYUVBitMap->Bitmap() );
- CleanupStack::PushL( conv );
- conv->ProcessL();
- iFreezeCS.Wait();
- ReleaseYUVData();
- iYUVBuffer = conv->YUVData().AllocL();
- iFreezeCS.Signal();
- CleanupStack::PopAndDestroy(); // conv
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::CreateYUVDataL() iYUVBuffer %x <<"), RThread().Id().operator TUint(), iYUVBuffer));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::ReleaseYUVData()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::ReleaseYUVData()
- {
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ReleaseYUVData() >>"), RThread().Id().operator TUint()));
- delete iYUVBuffer;
- iYUVBuffer = 0;
- __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ReleaseYUVData() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::CVSStillImageDataProvider(
-// MVSDataProviderObserver* aObserver )
-// -----------------------------------------------------------------------------
-//
-CVSStillImageDataProvider::CVSStillImageDataProvider(
- MVSDataProviderObserver* aObserver,
- MVSBufferPool* aPool ) :
- CVSDataProvider( aObserver, aPool ), iProtoUpdateRate( 1000000.0 / KFrameRate )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CVSStillImageDataProvider() >>"), RThread().Id().operator TUint()));
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CVSStillImageDataProvider() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::ConstructL()
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::ConstructL()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::ConstructL() this %x >>"), RThread().Id().operator TUint(), this));
- CVSDataProvider::ConstructL();
- User::LeaveIfError( iFs.Connect() );
- RWsSession wsSession;
- User::LeaveIfError( wsSession.Connect() );
- CleanupClosePushL( wsSession );
- CWsScreenDevice* wsScreenDevice = new ( ELeave ) CWsScreenDevice( wsSession );
- CleanupStack::PushL( wsScreenDevice );
- User::LeaveIfError( wsScreenDevice->Construct() );
- iDisplayMode = wsScreenDevice->DisplayMode();/* = EColor16MU;*/
- CleanupStack::PopAndDestroy( 2 ); // wsSession, wsScreenDevice
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::ConstructL() this %x <<"), RThread().Id().operator TUint(), this));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::GetVideoFrameSize(
-// TSize& aSize, TInt /*aSizeIndex*/, const TDesC8& aFormat )
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::GetVideoFrameSize(
- TSize& aSize,
- TInt /*aSizeIndex*/,
- const TDesC8& aFormat )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::GetVideoFrameSize() >>"), RThread().Id().operator TUint()));
- if ( aFormat == KVtVideoMIMETypeYUV420 )
- {
- aSize.SetSize( KQcifWidth, KQcifHeight );
- }
- else
- {
- aSize.SetSize( 0, 0 );
- }
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::GetVideoFrameSize() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::GetVideoFrameRate(
-// TReal32& aRate, TInt /*aRateIndex*/, const TDesC8& aFormat,
-// const TSize& aSize )
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::GetVideoFrameRate(
- TReal32& aRate,
- TInt /*aRateIndex*/,
- const TDesC8& aFormat,
- const TSize& aSize )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::GetVideoFrameRate() >>"), RThread().Id().operator TUint()));
- if ( aFormat == KVtVideoMIMETypeYUV420 &&
- aSize == TSize( KQcifWidth, KQcifHeight ) )
- {
- aRate = KFrameRate;
- }
- else
- {
- aRate = 0.0;
- }
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::GetVideoFrameRate() <<"), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::DisplayMode
-// -----------------------------------------------------------------------------
-//
-TDisplayMode CVSStillImageDataProvider::DisplayMode() const
- {
-#ifdef _DEBUG
- TUint threadId( RThread().Id() );
- switch( iDisplayMode )
- {
- case EColor4K:
- RDebug::Print( _L( "VideoSource [%d]: DisplayMode() = EColor4K" ), threadId );
- break;
- case EColor64K:
- RDebug::Print( _L( "VideoSource [%d]: DisplayMode() = EColor64K" ), threadId );
- break;
- case EColor16M:
- RDebug::Print( _L( "VideoSource [%d]: DisplayMode() = EColor16M" ), threadId );
- break;
- case EColor16MU:
- RDebug::Print( _L( "VideoSource [%d]: DisplayMode() = EColor16MU" ), threadId );
- break;
- default:
- RDebug::Print( _L( "VideoSource [%d]: DisplayMode() = %d" ), threadId, iDisplayMode );
- break;
- }
-#endif // _DEBUG
- return iDisplayMode;
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SetContrastL
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::SetContrastL(TInt /*aContrast*/)
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]:CVSStillImageDataProvider::SetContrastL() LEAVE"), RThread().Id().operator TUint()));
- User::Leave( KErrNotSupported );
- }
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::GetContrast
-// -----------------------------------------------------------------------------
-//
-TInt CVSStillImageDataProvider::GetContrast(TInt& /*aContrast*/) const
- {
- return KErrNotSupported;
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SetBrightnessL
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::SetBrightnessL(TInt /*aBrightness*/)
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]:CVSStillImageDataProvider::SetBrightnessL() LEAVE"), RThread().Id().operator TUint()));
- User::Leave( KErrNotSupported );
- }
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::GetBrightness
-// -----------------------------------------------------------------------------
-//
-TInt CVSStillImageDataProvider::GetBrightness(TInt& /*aBrightness*/ ) const
- {
- return KErrNotSupported;
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SetWhiteBalanceL
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::SetWhiteBalanceL( CCamera::TWhiteBalance /*aWhiteBalance*/ )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SetWhiteBalanceL() LEAVE"), RThread().Id().operator TUint()));
- User::Leave( KErrNotSupported );
- }
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::GetWhiteBalance
-// -----------------------------------------------------------------------------
-//
- TInt CVSStillImageDataProvider::GetWhiteBalance(CCamera::TWhiteBalance& /*aWhiteBalance*/) const
- {
- return KErrNotSupported;
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::SetColorToneL
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::SetColorToneL( CCamera::CCameraImageProcessing::TEffect /*aValue*/ )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SetColorToneL() LEAVE"), RThread().Id().operator TUint()));
- User::Leave( KErrNotSupported );
- }
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::GetColorTone
-// -----------------------------------------------------------------------------
-//
-TInt CVSStillImageDataProvider::GetColorTone( CCamera::CCameraImageProcessing::TEffect& /*aColorTone*/ ) const
- {
- return KErrNotSupported;
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::InitializeReady
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::InitializeReady()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::InitializeReady()>> "), RThread().Id().operator TUint()));
- if ( EPSUndoInitializing == iPSState )
- {
- NotifyError(KErrCancel);
- UndoCommonInitialized();
- iPSState = EPSUninitialized;
- }
- else
- {
- iPSState = EPSStopped;
- Observer().vsProviderReady();
- }
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::InitializeReady()<< "), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::RefreshYUVData
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::RefreshYUVData( TImageShareDataBuffer& aYUVBitMap )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::RefreshYUVData()>> "), RThread().Id().operator TUint()));
- iYUVBitMap = aYUVBitMap.iBitmap;
- //Create YUV buffer only in play state
- TRAP_IGNORE ( CreateYUVDataL() );
- aYUVBitMap.iIsBitmapFree = ETrue;
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::RefreshYUVData()<< "), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::RefreshViewFinder
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::RefreshViewFinder( TImageShareDataBuffer& aVFBitMap )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::RefreshViewFinder()>> "), RThread().Id().operator TUint()));
- iVFBitmap = aVFBitMap.iBitmap;
- aVFBitMap.iIsBitmapFree = ETrue;
- // Allow VF refresh only if size is what
- // has beed aquired and play state is on
- if ( ( iTargetSize == iVFBitmap->Size() ) && ( iVFState == EVFPlaying ) )
- {
- iVFTimer->After( 1, &VFTimer );
- }
- else
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::RefreshViewFinder() conditon doesn't match, iVFState[%d] "), RThread().Id().operator TUint(), iVFState));
- }
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::RefreshViewFinder()<< "), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::NotifyImageHandlingError
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::NotifyImageHandlingError( TInt aError )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::NotifyImageHandlingError()>> "), RThread().Id().operator TUint()));
- NotifyError( aError );
- if ( ( KErrCancel == aError ) && ( EPSUndoInitializing == iPSState ) )
- {
- UndoCommonInitialized();
- iPSState = EPSUninitialized;
- }
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::NotifyImageHandlingError()<< "), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::CancelInitializing
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::CancelInitializing()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CancelInitializing()>> "), RThread().Id().operator TUint()));
- if ( iPSState != EPSInitializing )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CancelInitializing(), iPSState is not valid,%d>> "), RThread().Id().operator TUint(), iPSState));
- return;
- }
-
- if ( iInitType != TVSStillImageDataProviderParams::EInitializeFromFile )
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CancelInitializing(), iInitType is not valid,%d>> "), RThread().Id().operator TUint(), iInitType));
- return;
- }
- if ( iViewer->CancelInitializing() )
- {
- // In this condition, convert was cancelled , no any message will receive from multiframe provider,
- // so delete multiFrame provider, and change IPSState, NotifyError to VT Engine
- NotifyError(KErrCancel);
- UndoCommonInitialized();
- iPSState = EPSUninitialized;
- }
- else
- {
- // In this condition, cnverting is finished, and Scale will cancel(CVtImageScaler->Cancel()), but in CVtImageScaler::DoCancel(),
- // there is a error notify exist, so we must wait the error message from multiframe provider,
- // we change the iPSState to EPSUndoInitializing for waiting error message.
- // Error message will be received in function CVSStillImageDataProvider::NotifyImageHandlingError
- iPSState = EPSUndoInitializing;
- }
-
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CancelInitializing()<< "), RThread().Id().operator TUint()));
- }
-
-// -----------------------------------------------------------------------------
-// CVSStillImageDataProvider::UndoCommonInitialized
-// -----------------------------------------------------------------------------
-//
-void CVSStillImageDataProvider::UndoCommonInitialized()
- {
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::UndoCommonInitialized()>> "), RThread().Id().operator TUint()));
-
- iFreezeCS.Close();
- if ( NULL != iVFTimer )
- {
- iVFTimer->Cancel();
- }
-
- delete iViewer;
- iViewer = NULL;
-
- delete iActiveWait;
- iActiveWait = NULL;
-
- delete iVFTimer;
- iVFTimer = NULL;
- __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::UndoCommonInitialized()<< "), RThread().Id().operator TUint()));
-
- }
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-// End of File