vtprotocolplugins/DisplaySink/inc/CDisplaySinkNGA.h
changeset 0 ed9695c8bcbe
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vtprotocolplugins/DisplaySink/inc/CDisplaySinkNGA.h	Mon Nov 23 14:47:47 2009 +0200
@@ -0,0 +1,157 @@
+/*
+* Copyright (c) 2004-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:  Displaysink implementation for NGA.
+*
+*/
+
+#ifndef CDISPLAYSINKNGA_H
+#define CDISPLAYSINKNGA_H
+
+//  INCLUDE FILES
+#include "CDisplaySink.h"
+#include "TDisplaySinkParamsNGA.h"
+
+// CLASS DECLARATION
+
+/**
+*  Displaysink implementation for NGA.
+*
+*  @lib displaysink.lib
+*  @since Series 60 3.1
+*/
+NONSHARABLE_CLASS( CDisplaySinkNGA ) : public CDisplaySink
+    {
+public: // static constructor
+
+    /**
+    * Static constructor that may leave.
+    */
+    static CDisplaySinkNGA* NewL( TDisplaySinkParams& aParams,
+        const TDesC8& aInitData );
+
+private: // constructors and destructor
+
+    /**
+    * C++ default constructor.
+    */
+    CDisplaySinkNGA();
+
+    /**
+    * destructor
+    */
+    ~CDisplaySinkNGA();
+
+private: // from CDisplaySink
+
+
+    /**
+    * @see CDisplaySink::BaseConstructL
+    */
+    void BaseConstructL( TDisplaySinkParams& aParams,
+        const TDesC8& aInitData );
+
+    /**
+    * @see CDisplaySink::BaseConvert
+    */
+    TBool BaseConvert( const TVtMMFDataBuffer& aBuffer );
+
+    /**
+    * @see CDisplaySink::BaseSinkThreadLogonL
+    */
+    void BaseSinkThreadLogonL();
+
+    /**
+    * @see CDisplaySink::BaseSinkThreadLogoff
+    */
+    void BaseSinkThreadLogoff();
+
+    /**
+    * @see CDisplaySink::BaseUpdateSinkParamsL
+    */
+    void BaseUpdateSinkParamsL( const TDisplaySinkParams& aParams );
+
+    /**
+    * @see CDisplaySink::BaseDoUpdateParamsL
+    */
+    void BaseDoUpdateParamsL();
+
+    /**
+    * @see CDisplaySink::BaseDoUpdateParamsL
+    */
+    void BaseSetVideoFrameSizeL( const TSize& aSize );
+
+    /**
+    * @see CDisplaySink::BaseSizesMatch
+    */
+    TBool BaseSizesMatch( const TSize& aSize );
+
+    /**
+    * @see CDisplaySink::BitmapEntry
+    */
+    TBitmapEntry& BitmapEntry( TInt aIndex );
+
+    /**
+    * @see CDisplaySink::BaseEmptyBufferL
+    */
+    void BaseEmptyBufferL( TVtMMFDataBuffer& aVTMMFBuffer );
+
+    /**
+    * @see CDisplaySink::BaseSetBitmapAvailable
+    */
+    void BaseSetBitmapAvailable( TBitmapNo aBitmapNo );
+
+    /**
+    * @see CDisplaySink::BaseVideoFrameSizeChangedL
+    */
+    void BaseVideoFrameSizeChangedL( const TSize& aNewSize );
+
+private: // MDisplaySink
+
+    /**
+    * @see MDisplaySink::NextFrame
+    */
+    void NextFrame();
+
+private: // new methods
+
+    /**
+    * Updates expected frame size.
+    * @exception May leave with KErrNotSupported, if bitmap sizes do not match.
+    */
+    void UpdateExpectedFrameSizeL();
+
+private: // new classes
+
+    // Class submit buffer related data
+    class TBitmapEntryNGA : public TBitmapEntry
+        {
+    public: // data
+
+        // Pointer to Surface Buffer pointer
+        //TVideoFrameBuffer** iBuffer;
+        TUint8**  iBuffer;
+        };
+
+private: // data
+
+    // Array of bitmap related structures
+    TBitmapEntryNGA iBitmapTable[ KBitmapTableCount ];
+
+    // Store for saving new parameters in UpdateSinkParamsL() call
+    TDisplaySinkParamsNGA iNewParams;
+    };
+
+#endif // CDISPLAYSINKNGA_H
+
+// End of File