mmplugins/mmfwplugins/src/Plugin/subtitle/common/mmfsubtitlegraphicmessage.h
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmplugins/mmfwplugins/src/Plugin/subtitle/common/mmfsubtitlegraphicmessage.h	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,125 @@
+// Copyright (c) 2008-2009 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:
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MMFSUBTITLEGRAPHICMESSAGE_H
+#define MMFSUBTITLEGRAPHICMESSAGE_H
+
+#include <e32std.h>
+#include <s32strm.h>
+
+/*
+Defines the message classes for communication between the MMF CRP 
+subtitle rendering client and the WSERV CRP graphic plug-in
+*/
+
+
+enum TSubtitleGraphicMessage
+	{
+	ESubtitleCrpMessageInit 		= 10,
+	ESubtitleCrpMessageInitSimple 	= 20,
+	ESubtitleCrpMessageClear 		= 30,
+	ESubtitleCrpMessageDrawFrame 	= 40,	
+	ESubtitleCrpMessageSwapFrame 	= 50
+	};
+
+/**
+Base class for all CRP messages
+*/
+class TSubtitleGraphicMessageBase
+{
+public:
+	TSubtitleGraphicMessageBase(TSubtitleGraphicMessage aMsgType);
+
+protected:
+	TInt8 iMsgType;
+};
+
+/**
+Initialise the CRP
+Passes two bitmap handles to the CRP
+@see CMMFSubtitleGraphic::Initialize(TInt aBuffer1, TInt aBuffer2);
+*/
+class TSubtitleCrpMsgInit : public TSubtitleGraphicMessageBase
+	{
+public:
+	TSubtitleCrpMsgInit();
+	TSubtitleCrpMsgInit(TInt aBitmapHandle1, TInt aBitmapHandle2);
+
+public:
+	TInt iBitmapHandle1;
+	TInt iBitmapHandle2;
+	};
+
+/**
+Initialise the CRP
+@see CMMFSubtitleGraphic::Initialize()
+*/
+class TSubtitleCrpMsgInitSimple : public TSubtitleGraphicMessageBase
+	{
+public:
+	TSubtitleCrpMsgInitSimple();
+	};
+
+/**
+Request that the CRP clears all content from the window
+@see CMMFSubtitleGraphic::Clear()
+*/
+class TSubtitleCrpMsgClear : public TSubtitleGraphicMessageBase
+	{
+public: 
+	TSubtitleCrpMsgClear();
+	};
+
+/**
+Requests that the CRP draws a frame indicated by the CFBSBitmap handle provided
+@see CMMFSubtitleGraphic::DrawFrame(TInt aFrameHandle, TRect& aDirtyRegion,
+     TTimeIntervalMicroSeconds& aDisplayDuration)
+*/
+class TSubtitleCrpMsgDrawFrame : public TSubtitleGraphicMessageBase
+	{
+public:
+	TSubtitleCrpMsgDrawFrame();
+	TSubtitleCrpMsgDrawFrame(TInt aBitmapHandle, const TRect& aDirtyRegion, const TTimeIntervalMicroSeconds& aDisplayDuration);
+
+public:	
+	TInt iBitmapHandle;
+	TRect iDirtyRegion;
+	TTimeIntervalMicroSeconds iDisplayDuration;
+	};
+
+/**
+Request that the CRP draw the content in the current back buffer.  Assumes that the CRP
+has been intialized with TSubtitleCrpMsgInit
+@see CMMFSubtitleGraphic::SwapFrame(TInt aExpectedBuffer, 
+ 	TTimeIntervalMicroSeconds& aDisplayDuration, const TRect& aDirtyRegion)
+*/
+class TSubtitleCrpMsgRenderSwapFrame : public TSubtitleGraphicMessageBase
+	{
+public:
+	TSubtitleCrpMsgRenderSwapFrame();
+	TSubtitleCrpMsgRenderSwapFrame(TInt aExpectedFrame, const TRect& aDirtyRegion, const TTimeIntervalMicroSeconds& aDisplayDuration);
+	
+public:
+	TInt iExpectedFrame;
+	TTimeIntervalMicroSeconds iDisplayDuration;
+	TRect iDirtyRegion;
+	};
+	
+#endif