vtengines/videoteleng/Inc/Media/CVtEngDrawDP.h
changeset 18 d9b6a8729acd
parent 4 6dc066157ed4
child 23 c378a0498b84
child 27 dcbddbbaf8fd
--- a/vtengines/videoteleng/Inc/Media/CVtEngDrawDP.h	Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,509 +0,0 @@
-/*
-* Copyright (c) 2004-2005 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:  Remote video handling class.
-*
-*/
-
-
-
-#ifndef CVTENGDRAWDP_H
-#define CVTENGDRAWDP_H
-
-//  INCLUDES
-
-#include "CVtEngRemoteVideo.h"
-#include "TVtEngRenderConfigDP.h"
-
-#include <cvtimagescaler.h>
-
-// FORWARDS
-
-class TDisplaySinkParamsDP;
-class CVtImageBitmap;
-class CVtImageScaler;
-
-// CONSTANTS AND MACROS
-
-const TInt KVtEngMaxBuffers = 2;
-
-// CLASSES
-
-/**
-*  Buffer waiter observer API
-*
-*  @lib videoteleng.lib
-*  @since Series 60 3.2
-*/
-NONSHARABLE_CLASS( MVtEngBufferWaiterObserver )
-    {
-    public: // New methods
-
-        /**
-        * Buffer fetched without errors.
-        * @param aBuffer Pointer to fetched buffer.
-        */
-        virtual void BufferReady(
-            CPostingSurface::TPostingBuff* aBuffer ) = 0;
-
-        /**
-        * Buffer fetch error.
-        * @param aError Error code.
-        */
-        virtual void FetchError( TInt aError ) = 0;
-    };
-
-/**
-*  Display Posting drawer
-*
-*  @lib videoteleng.lib
-*  @since Series 60 3.2
-*/
-NONSHARABLE_CLASS( CVtEngDrawDP ) : public CVtEngRemoteVideo::CVtEngDraw,
-    public MVtEngBufferWaiterObserver,
-    public MVtImageScalerObserver
-
-    {
-    public: // constructor and destructor
-
-        /**
-        * Two-phased constructor.
-        * @param aObserver call back interface to Display Sink
-        * @return instance of CVtEngDrawDP
-        */
-        static CVtEngDrawDP* NewL( MDisplaySinkObserver* aObserver );
-
-        // Destructor
-        ~CVtEngDrawDP();
-
-    private:
-
-        /**
-        * C++ constructor as private.
-        * @param aObserver callback interface for Display Sink
-        */
-        CVtEngDrawDP( MDisplaySinkObserver* aObserver );
-
-    private: // from MVtEngDraw
-
-         /**
-        * @see CVtEngDraw::BaseConstructL
-        */
-        void BaseConstructL();
-
-        /**
-        * @see CVtEngDraw::CreateSinkL
-        */
-        MDisplaySink* CreateSinkL();
-
-        /**
-        * @see CVtEngDraw::BaseRefreshL
-        */
-        void BaseRefreshL();
-
-        /**
-        * @see CVtEngDraw::BaseRefreshBitmapsL
-        */
-        void BaseRefreshBitmapsL();
-
-        /**
-        * @see CVtEngDraw::BaseDoCancel
-        */
-        void BaseDoCancel();
-
-        /**
-        * @see CVtEngDraw::BaseVerifyConfigL
-        */
-        void BaseVerifyConfigL();
-
-        /**
-        * @see CVtEngDraw::BaseRestartL
-        */
-        void BaseRestartL();
-
-        /**
-        * @see CVtEngDraw::BaseAbortNow
-        */
-        void BaseAbortNow();
-
-        /**
-        * @see CVtEngDraw::BaseStartDrawL
-        */
-        void BaseStartDrawL();
-
-        /**
-        * @see CVtEngDraw::BaseStopDraw
-        */
-        void BaseStopDraw();
-
-        /**
-        * @see CVtEngDraw::BaseSetConfigL
-        */
-        void BaseSetConfigL( const TVtEngRenderConfig& aConfig );
-
-        /**
-        * @see CVtEngDraw::BaseSetUIForegroundL
-        */
-        void BaseSetUIForegroundL( TBool aForeground );
-
-        /**
-        * @see CVtEngDraw::BaseVideoFrameSizeChangedL
-        */
-        void BaseVideoFrameSizeChangedL( const TSize& aTo );
-
-        /**
-        * @see CVtEngDraw::BaseRequestLastFrame
-        */
-        void BaseRequestLastFrame();
-        
-        /**
-        * @see CVtEngDraw::Config
-        */
-        TVtEngRenderConfig& Config();
-
-    private: // new methods
-
-        /**
-        * Handles all delayed calls.
-        */
-        void HandleDelayedCallsL();
-
-        /**
-        * Base construct implementation
-        */
-        void DoBaseConstructL();
-
-        /**
-        * Base start drawing implementation
-        */
-        void DoBaseStartDrawL();
-
-        /**
-        * Initialize posting surface implementation
-        */
-        void DoInitializePostingSurfaceL();
-
-        /**
-        * Update sink params implementation.
-        */
-        void DoUpdateSinkParamsL();
-
-        /**
-        * Updates sink params.
-        */
-        void UpdateSinkParamsL();
-
-        /**
-        * Checks if the alpha has been trashed on screen buffer (ETrue if it
-        * has been trashed, EFalse otherwise).
-        */
-        TBool IsAlphaTrashed() const;
-
-        /**
-        * Sets clipping region (read from DSA).
-        */
-        void SetClipRegionL();
-
-        /**
-        * Initializes DP.
-        */
-        void InitializePostingSurfaceL();
-
-        /**
-        * Fills posting source params structure.
-        */
-        void GetPostingSourceParams(
-            CPostingSurface::TPostingSourceParams& aParams ) const;
-
-        /**
-        * Fills posting params structure.
-        */
-        void GetPostingParams(
-            CPostingSurface::TPostingParams& aParams ) const;
-
-        /**
-        * Returns ETrue if given format is supported, EFalse otherwise.
-        */
-        TBool SupportsFormat(
-            const CPostingSurface::TPostingFormat& aFormat ) const;
-
-        /**
-        * Returns ETrue if given size is supported, EFalse otherwise.
-        */
-        TBool SupportsSize( const TSize& aSize ) const;
-
-        /**
-        * Returns ETrue if given rotation is supported,
-        * EFalse otherwise.
-        */
-        TBool SupportsRotation(
-            CPostingSurface::TRotationType aRotation ) const;
-
-        /**
-        * Returns ETrue if mirroring is supported, EFalse otherwise.
-        */
-        TBool SupportsMirroring() const;
-
-        /**
-        * Returns ETrue if scaling is supported, EFalse otherwise.
-        */
-        TBool SupportsScaling() const;
-
-        /**
-        * Returns ETrue if brightness controlling is supported,
-        * EFalse otherwise.
-        */
-        TBool SupportsBrightness() const;
-
-        /**
-        * Returns ETrue if contrast controlling is supported,
-        * EFalse otherwise.
-        */
-        TBool SupportsContrast() const;
-
-        /**
-        * Returns buffer size in bytes for given size and current posting
-        * format.
-        */
-        TInt GetFrameBufferSize( const TSize& aTo ) const;
-
-        /**
-        * Recreates clipregion. May leave with KErrNoMemory.
-        */
-        void RecalculateClipRegionL();
-
-        /**
-        * Fixes rect for DP.
-        */
-        void FixRectForDP( TRect& aRect ) const;
-
-        /**
-        * Fills sink parameters.
-        */
-        void GetSinkParams( TDisplaySinkParamsDP& aSinkParams );
-
-        /**
-        * Returns reference to sink.
-        */
-        MDisplaySink& DisplaySink();
-
-        /**
-        * Stores given frame buffer.
-        */
-        void StoreFrameBuffer( CPostingSurface::TPostingBuff* aPostingBuffer );
-
-        /**
-        * Creates frame buffer.
-        */
-        void CreateFrameBufferL( const TSize& aSize );
-
-        /**
-        * Async draw callback.
-        */
-        static TInt CallBack( TAny* aPtr );
-
-        /**
-        * Sets given buffer available to display sink.
-        */
-        void SetAvailableToSink( CPostingSurface::TPostingBuff* aBuffer );
-
-        /**
-        * Creates instance of posting surface.
-        */
-        CPostingSurface* CreatePostingSurfaceL();
-
-        /**
-        * Close the DP API library and free the allocated instance.
-        */
-        void CloseDPLibrary();
-
-        /**
-        * Loads DP API library.
-        */
-        void LoadDPLibraryL();
-
-        /**
-        * Converts YUV420 image to bitmap.
-        */
-        void Convert420ToVtImg( HBufC8* aSource, CVtImageBitmap& aTarget );
-
-        /**
-        * Converts YUV422 image to bitmap.
-        */
-        void Convert422ToVtImg( HBufC8* aSource, CVtImageBitmap& aTarget );
-
-        /**
-        * Updates Vt frame to frame observer.
-        */
-        void UpdateVtFrame();
-
-    public: // From MVtImageScalerObserver.
-
-        /**
-        * @ see MVtImageScalerObserver.
-        */
-        virtual void ScalingFinished( TInt aError );
-
-
-    private: // from CActive
-
-        /**
-        * Handles prepared bitmap from display sink.
-        * @see CActive::RunL
-        */
-        void RunL();
-
-    private: // from MVtEngBufferWaiterObserver
-
-        /**
-        * @see MVtEngBufferWaiterObserver::BufferReady
-        */
-        void BufferReady( CPostingSurface::TPostingBuff* aBuffer );
-
-        /**
-        * @see MVtEngBufferWaiterObserver::FetchError
-        */
-        void FetchError( TInt aError );
-
-    private: // inner classes
-
-        // Buffer class for storing buffer.
-        NONSHARABLE_CLASS( TVtEngBuffer )
-            {
-            public:
-
-                /**
-                * C++ constructor
-                */
-                TVtEngBuffer();
-
-                /**
-                * Sets buffer
-                */
-                void Set( CPostingSurface::TPostingBuff* aBuffer );
-
-                /**
-                * Unsets buffer
-                */
-                void UnSet();
-
-                /**
-                * Returns ETrue if buffer is set
-                */
-                TBool IsSet() const;
-
-                /**
-                * Returns pointer reference to stored buffer.
-                */
-                CPostingSurface::TPostingBuff*& Buffer();
-
-            private:
-
-                // Pointer's pointer to buffer
-                CPostingSurface::TPostingBuff* iBuffer;
-            };
-
-        // Waiter class for asynchronous events.
-        NONSHARABLE_CLASS( CVtEngBufferWaiter ) : public CActive
-            {
-            public:
-
-                /**
-                * C++ constructor.
-                */
-                CVtEngBufferWaiter( CPostingSurface& aPostingSurface,
-                    MVtEngBufferWaiterObserver& aObserver );
-
-                /**
-                * Destructor, frees all resources allocated by this instance.
-                */
-                ~CVtEngBufferWaiter();
-
-                /**
-                * Fetch new buffer (also activates listening).
-                */
-                TInt FetchBuffer();
-
-            private: // new methods
-
-                /**
-                * Activate buffer listening (also calls CActive::SetActive()).
-                */
-                void Activate();
-
-            private: // from CActive
-
-                /**
-                * @see CActive::RunL()
-                */
-                void RunL();
-
-                /**
-                * @see CActive::DoCancel()
-                */
-                void DoCancel();
-
-            private: // data
-
-                // Posting surface instance (not owned)
-                CPostingSurface* iPostingSurface;
-
-                // BufferWaiter observer who gets informed about buffers
-                MVtEngBufferWaiterObserver* iObserver;
-            };
-
-    private: // data
-
-        // Posting surface instance
-        CPostingSurface* iPostingSurface;
-
-        // Posting capabilities
-        CPostingSurface::TPostingCapab iPostingCaps;
-
-        // Posting buffers
-        TVtEngBuffer
-            iBuffers[ MDisplaySink::EFirstBitmap + KVtEngMaxBuffers ];
-
-        // Buffer waiter instance
-        CVtEngBufferWaiter* iBufferWaiter;
-
-        // Rendering configuration
-        TVtEngRenderConfigDP iConfig;
-
-        // Clipping region
-        RRegion iClipRegion;
-
-        // Frame buffer
-        HBufC8* iFrameBuffer;
-
-        // Selected posting format
-        CPostingSurface::TPostingFormat iPostingFormat;
-
-        // DP API DLL
-        RLibrary* iDPLib;
-
-        // Source image contains converted YUV frame
-        CVtImageBitmap* iSource;
-
-        // Target image contains scaled bitmap
-        CVtImageBitmap* iTarget;
-
-        // Image scaler instance
-        CVtImageScaler* iImageScaler;
-
-        // Clip region updated
-        TBool iClipRegionUpdated;
-
-    };
-
-#endif // CVTENGDRAWDP_H
\ No newline at end of file