diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/CVSOnboardCameraDataProvider.h --- a/vtprotocolplugins/VideoSource/inc/CVSOnboardCameraDataProvider.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,387 +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 CVSONBOARDCAMERADATAPROVIDER_H -#define CVSONBOARDCAMERADATAPROVIDER_H - -// INCLUDE FILES - -#include "CVSCameraDataProvider.h" - -// CLASS DECLARATION - -/** -* Handles provider error notification using interface to provider callback -* functions. Provider errors can occur in two threads and this class provides -* error notification in the same thread context that the provider was created. -* -* @lib videosource.lib -*/ -class CProviderErrorNotifierAO : public CActive - { - public: // New functions - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: // Constructors and destructor - - /** - * Static factory function to create instance of this class. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new instance. - */ - static CProviderErrorNotifierAO* NewL(); - - /** - * Destructor. - */ - ~CProviderErrorNotifierAO(); - - private: // New functions - - /** - * Notify provider observer about error. - * @param "aObserver" Pointer to provider observer to notify. - * @param "aError" Error code. - */ - void NotifyError( MVSDataProviderObserver* aObserver, TInt aError ); - - private: // Constructors and destructor - - /** - * Constructor. - */ - CProviderErrorNotifierAO(); - - /** - * 2nd phase constructor. - * @exception Can leave with one of the system wide error codes. - */ - void ConstructL(); - - private: // Functions from base classes - - /** - * From CActive. See CActive for description. - */ - void DoCancel(); - - /** - * From CActive. See CActive for description. - */ - void RunL(); - - public: // Data - - protected: // Data - - private: // Data - - // Pointer to provider observer that will receive the error - // notification. - MVSDataProviderObserver* iObserver; - - // Error code. - TInt iError; - - // Critical section to synchronize access to this object. - RCriticalSection iCS; - - // Thread id of the thread in which this object was created. - TThreadId iThreadId; - - private: // Data - - // This class is private to CVSDataProvider. - friend class CVSDataProvider; - }; - -/** -* Makes onboard camera Reserve and PowerOn function calls synchronous. -* -* @lib videosource.lib -*/ -class CSyncCameraReserve : public CActive - { - public: // Constructors and destructor - - /** - * Static factory function to create instance of this class. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new instance. - */ - static CSyncCameraReserve* NewL(); - - public: // New functions - - /** - * Starts waiting and returns when RunL is called. - * @exception Can leave with one of the system wide error codes. - */ - void StartL(); - - private: // Constructors and destructor - - /** - * Constructor. - */ - CSyncCameraReserve(); - - private: // Functions from base classes - - /** - * From CActive. See CActive for description. - */ - void DoCancel(); - - /** - * From CActive. See CActive for description. - */ - void RunL(); - - private: // Data - - // Active scheduler loop owner. See CActiveSchedulerWait for - // description. - CActiveSchedulerWait iWait; - }; - -/** -* Internal implementation of onboard camera data provider. This -* class is inherited from onboard camera data provider base class. -* -* @lib videosource.lib -*/ -class CVSOnboardCameraDataProvider : public CVSCameraDataProvider - { - public: // Constructors and destructor - - /** - * Constructor. - * @param "aObserver" Pointer to provider observer. - * @param "aPool" Pointer to data MVSBufferPool that gives buffer to - * data provider. - */ - CVSOnboardCameraDataProvider( - MVSDataProviderObserver* aObserver, - MVSBufferPool* aPool ); - - /** - * Destructor. - */ - ~CVSOnboardCameraDataProvider(); - - public: // New functions - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: // New functions - - /** - * See CVSDataProvider for description. - */ - void PrimeL(); - - private: // Functions from base classes - - /** - * See MDataSource for description. - */ - virtual void FillBufferL( - CMMFBuffer* aBuffer, - MVTVideoSink* aConsumer, - TMediaId aMediaId ); - - /** - * See MDataSource for description. - */ - virtual void BufferEmptiedL( CMMFBuffer* aBuffer ); - - /** - * See MDataSource for description. - */ - virtual TInt SourceThreadLogon( MAsyncEventHandler& aEventHandler ); - - /** - * See MDataSource for description. - */ - virtual void SourceThreadLogoff(); - - /** - * See MDataSource for description. - */ - virtual void SourcePrimeL(); - - /** - * See MDataSource for description. - */ - virtual void SourcePlayL(); - - /** - * See MDataSource for description. - */ - virtual void SourcePauseL(); - - /** - * See MDataSource for description. - */ - virtual void SourceStopL(); - - private: // Functions from base classes - - /** - * See MVTVideoInput for description. - */ - virtual void SetFormatL( const TDesC8& aFormat ); - - /** - * See MVTVideoInput for description. - */ - virtual void SetFrameRateL( TReal32 aFrameRate ); - - /** - * See MVTVideoInput for description. - */ - virtual void SetVideoFrameSizeL( const TSize& aSize ); - - /** - * See MVTVideoInput for description. - */ - virtual void GetVideoFrameSizeL( TSize& aSize ) const; - - private: // from MCameraObserver - - /** - * @see MCameraObserver::ReserveComplete - */ - virtual void ReserveComplete( TInt aError ); - - /** - * @see MCameraObserver::FrameBufferReady - */ - virtual void FrameBufferReady( MFrameBuffer* aFrameBuffer, - TInt aError ); - - private: // from MCameraObserver2 - - /** - * @see MCameraObserver2::HandleEvent - */ - virtual void HandleEvent(const TECAMEvent& aEvent); - - /** - * @see MCameraObserver2::ViewFinderReady - */ - virtual void ViewFinderReady(MCameraBuffer& aCameraBuffer,TInt aError); - - /** - * @see MCameraObserver2::VideoBufferReady - */ - virtual void VideoBufferReady(MCameraBuffer& aCameraBuffer,TInt aError); - - private: // Functions from base classes - - /** - * Get video frame size. - */ - virtual void GetVideoFrameSize( - TSize& aSize, - TInt aSizeIndex, - const TDesC8& aFormat ); - - /** - * Get video frame rate. - */ - virtual void GetVideoFrameRate( - TReal32& aRate, - TInt aRateIndex, - const TDesC8& aFormat, - const TSize& aSize ); - - void FreezeFrame( MFrameBuffer* aFrameBuffer ); - - void FreezeFrame( MCameraBuffer* aCameraBuffer ); - - public: // Data - - protected: // Data - - private: // Data - - // Onboard camera dublicate for the second thread. Owned. - CCamera* iCameraDuplicate; - - // MMF controller framwork mixin for event handling - MAsyncEventHandler* iEventHandler; - - // Enumerated values for possible states this class can have. - enum TState - { - EStopped, - EPrimed, - EPlaying - }; - - // One of the enumerated states. - TState iState; - - // ECAM frame rate index. - TInt iFrameRateIndex; - - // ECAM frame size index. - TInt iFrameSizeIndex; - - // Frame size. - TSize iFrameSize; - - // ECAM Video frame format. - CCamera::TFormat iFormat; - - // Pointer to AO that makes iCameraDuplicate.Reserve() and PowerOn() - // synchronous. Owned. These are called in SourcePrimeL and because - // it is synchronous, reserve & poweron must be too. - CSyncCameraReserve* iSyncReserve; - - // - TBool iAsynchronousReserveIssued; - - // Pointer to dublicated camera bitmap - CFbsBitmap* iDublicatedBitmap; - - // Camera lost by force indicator - TBool iCameraLost; - - private: // friends - - // Stif test module must be set as friend to be able to call protected - // and private methods - friend class CstiffVideoSourceAPICases; - - }; - -#endif // CVSONBOARDCAMERADATAPROVIDER_H - -// End of File