graphicshwdrivers/surfacemgr/inc/surfacemanagerdriver.h
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicshwdrivers/surfacemgr/inc/surfacemanagerdriver.h	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,100 @@
+// Copyright (c) 2006-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:
+// Surface Manager Implementation
+// 
+//
+
+/**
+@file
+@internalComponent
+@prototype
+*/
+
+#ifndef __SURFACEMANAGERDRIVER_H__
+#define __SURFACEMANAGERDRIVER_H__
+
+#include <graphics/surfacemanager.h>
+
+/**
+RSurface Manager driver. This is a simple user side interface class derived from RBusLogicalChannel
+with each surface manager function implemented with a call to DoControl
+*/
+class RSurfaceManagerDriver : public RBusLogicalChannel
+	{
+public:
+	
+	/** Package class to exchange data between the client interface of the driver (RSurfaceManagerDriver)
+	 * and the kernel extension which implement it (DSurfaceManger)*/
+	class TDeviceParam
+		{
+	public:
+		TDeviceParam(){}
+		TDeviceParam(TAny* aSurfaceId, TAny* aBuffer) : iSurfaceId(aSurfaceId), iBuffer(aBuffer) {}
+		/** Generic object used to pass as a parameter to device driver*/
+		TAny* iBuffer;
+		/** Generic object used to pass as a parameter to device driver*/
+		TAny* iSurfaceId;
+		};
+
+	class TCaps
+		{
+	public:
+		TVersion iVersion;
+		};
+
+public:
+#ifndef __KERNEL_MODE__
+	inline TInt CreateSurface(const RSurfaceManager::TSurfaceCreationAttributesBuf& aReqs, TSurfaceId& aSurfaceId);
+	inline TInt CreateSurface(const RSurfaceManager::TSurfaceCreationAttributesBuf& aReqs, TSurfaceId& aSurfaceId, const RChunk& aChunkHandle);
+	inline TInt OpenSurface(const TSurfaceId& aSurfaceId);
+	inline TInt CloseSurface(const TSurfaceId& aSurfaceId);
+	inline TInt MapSurface(const TSurfaceId& aSurfaceId, RChunk& aHandle);
+	inline TInt SurfaceInfo(const TSurfaceId& aSurfaceId, RSurfaceManager::TInfoBuf& aInfo);
+	inline TInt Open();
+	inline TInt SynchronizeCache(const TSurfaceId& aSurfaceId, TInt aBuffer, RSurfaceManager::TSyncOperation aOperation);
+	inline TInt GetSurfaceHint(const TSurfaceId& aSurfaceId, RSurfaceManager::THintPair& aHint);
+	inline TInt SetSurfaceHint(const TSurfaceId& aSurfaceId, const RSurfaceManager::THintPair& aHint);
+	inline TInt AddSurfaceHint(const TSurfaceId&aSurface, const RSurfaceManager::THintPair& aHint);
+	inline TInt GetBufferOffset(const TSurfaceId& aSurfaceId, TInt aBuffer, TInt& aOffset);
+	inline TInt GetSurfaceManagerAttrib(RSurfaceManager::TSurfaceManagerAttrib aAttrib, TInt& aValue);
+#endif	//__KERNEL_MODE__
+
+	inline static const TDesC& Name();
+	inline static TVersion VersionRequired();	
+
+private:
+	enum TSurfaceManagerControl
+		{
+		EControlCreateSurface,
+		EControlOpenSurface,
+		EControlCloseSurface,
+		EControlAccessSurfaceData,
+		EControlSurfaceInfo,
+		EControlCreateSurfaceEx,
+		EControlSynchronizeCache,
+		EControlGetSurfaceHint,
+		EControlSetSurfaceHint,
+		EControlAddSurfaceHint,
+		EControlGetBufferOffset,
+		EControlGetSurfaceManagerAttrib
+		};
+
+	friend class DSurfaceManagerChannel;
+
+	};
+
+
+#include "surfacemanagerdriver.inl"
+
+#endif	//__SURFACEMANAGERDRIVER_H__