--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vtengines/videoteleng/Inc/Media/CVtEngDrawDSA.h Mon Nov 23 14:47:47 2009 +0200
@@ -0,0 +1,189 @@
+/*
+* 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: Remote video handling class.
+*
+*/
+
+
+
+#ifndef CVTENGDRAWDSA_H
+#define CVTENGDRAWDSA_H
+
+// INCLUDES
+
+#include "CVtEngRemoteVideo.h"
+#include "TVtEngRenderConfigDSA.h"
+
+// FORWARDS
+
+class TDisplaySinkParamsDSA;
+
+/**
+* Direct Screen Access drawer
+*
+* @lib videoteleng.lib
+* @since Series 60 3.2
+*/
+NONSHARABLE_CLASS( CVtEngDrawDSA ) : public CVtEngRemoteVideo::CVtEngDraw,
+ public MVtEngScalerObserver
+ {
+ public: // constructor and destructor
+
+ /**
+ * Two-phased constructor.
+ * @param aObserver call back interface to Display Sink
+ * @return instance of CVtEngDrawDSA
+ */
+ static CVtEngDrawDSA* NewL( MDisplaySinkObserver* aObserver );
+
+ // Destructor
+ ~CVtEngDrawDSA();
+
+ private: // construction
+
+ /**
+ * C++ constructor as private.
+ * @param aObserver callback interface for Display Sink
+ */
+ CVtEngDrawDSA( MDisplaySinkObserver* aObserver );
+
+ private: // from CVtEngDraw
+
+ /**
+ * @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& );
+
+ /**
+ * @see CVtEngDraw::BaseRequestLastFrame
+ */
+ void BaseRequestLastFrame();
+
+ /**
+ * @see CVtEngDraw::Config
+ */
+ TVtEngRenderConfig& Config();
+
+ private: // from CActive
+
+ /**
+ * Handles prepared bitmap from display sink.
+ * @see CActive::RunL
+ */
+ void RunL();
+
+ public: // from MVtEngScalerObserver
+
+ /**
+ * From MVtEngScalerObserver, this method is called when
+ * scaling is finished.
+ * @see MVtEngScalerObserver::ScalingCompleted
+ */
+ virtual void ScalingCompleted(
+ CFbsBitmap* aBitmap, TInt aError );
+
+ private: // New functions
+
+ /**
+ * Does the drawing.
+ * @param aBitmap a bitmap to draw
+ */
+ void DrawBitmap( CFbsBitmap& aBitmap );
+
+ /**
+ * Fills TDisplaySinkParamsDSA struct
+ */
+ void GetSinkParams( TDisplaySinkParamsDSA& aSinkParams );
+
+ private: // data
+
+ // Bitmapts for remote video (double buffering).
+ CFbsBitmap* iBitmap1;
+ CFbsBitmap* iBitmap2;
+
+ // Bitmap indexes indicating which.
+ // bitmap was provided.
+ MDisplaySink::TBitmapNo iBitmapNo;
+
+ // If a bitmap has been set available.
+ TBool iBitmapSetAvail;
+
+ // VT image scaler
+ MVtEngImageScaler* iImageScaler;
+
+ // DSA configuration
+ TVtEngRenderConfigDSA iConfig;
+ };
+
+#endif // CVTENGDRAWDSA_H
\ No newline at end of file