Update contrib.
1 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // Surface Manager Implementation
24 #ifndef __SURFACEMANAGERDRIVER_H__
25 #define __SURFACEMANAGERDRIVER_H__
27 #include <graphics/surfacemanager.h>
30 RSurface Manager driver. This is a simple user side interface class derived from RBusLogicalChannel
31 with each surface manager function implemented with a call to DoControl
33 class RSurfaceManagerDriver : public RBusLogicalChannel
37 /** Package class to exchange data between the client interface of the driver (RSurfaceManagerDriver)
38 * and the kernel extension which implement it (DSurfaceManger)*/
43 TDeviceParam(TAny* aSurfaceId, TAny* aBuffer) : iSurfaceId(aSurfaceId), iBuffer(aBuffer) {}
44 /** Generic object used to pass as a parameter to device driver*/
46 /** Generic object used to pass as a parameter to device driver*/
57 #ifndef __KERNEL_MODE__
58 inline TInt CreateSurface(const RSurfaceManager::TSurfaceCreationAttributesBuf& aReqs, TSurfaceId& aSurfaceId);
59 inline TInt CreateSurface(const RSurfaceManager::TSurfaceCreationAttributesBuf& aReqs, TSurfaceId& aSurfaceId, const RChunk& aChunkHandle);
60 inline TInt OpenSurface(const TSurfaceId& aSurfaceId);
61 inline TInt CloseSurface(const TSurfaceId& aSurfaceId);
62 inline TInt MapSurface(const TSurfaceId& aSurfaceId, RChunk& aHandle);
63 inline TInt SurfaceInfo(const TSurfaceId& aSurfaceId, RSurfaceManager::TInfoBuf& aInfo);
65 inline TInt SynchronizeCache(const TSurfaceId& aSurfaceId, TInt aBuffer, RSurfaceManager::TSyncOperation aOperation);
66 inline TInt GetSurfaceHint(const TSurfaceId& aSurfaceId, RSurfaceManager::THintPair& aHint);
67 inline TInt SetSurfaceHint(const TSurfaceId& aSurfaceId, const RSurfaceManager::THintPair& aHint);
68 inline TInt AddSurfaceHint(const TSurfaceId&aSurface, const RSurfaceManager::THintPair& aHint);
69 inline TInt GetBufferOffset(const TSurfaceId& aSurfaceId, TInt aBuffer, TInt& aOffset);
70 inline TInt GetSurfaceManagerAttrib(RSurfaceManager::TSurfaceManagerAttrib aAttrib, TInt& aValue);
71 #endif //__KERNEL_MODE__
73 inline static const TDesC& Name();
74 inline static TVersion VersionRequired();
77 enum TSurfaceManagerControl
79 EControlCreateSurface,
82 EControlAccessSurfaceData,
84 EControlCreateSurfaceEx,
85 EControlSynchronizeCache,
86 EControlGetSurfaceHint,
87 EControlSetSurfaceHint,
88 EControlAddSurfaceHint,
89 EControlGetBufferOffset,
90 EControlGetSurfaceManagerAttrib
93 friend class DSurfaceManagerChannel;
98 #include "surfacemanagerdriver.inl"
100 #endif //__SURFACEMANAGERDRIVER_H__