Add export of def files, add requesthandlerextension import library, and fix files to to unix line ending
--- a/graphics_plat/guestvideodriver_api/eabi/guestvideodriveru.def Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/eabi/guestvideodriveru.def Fri Aug 20 16:18:46 2010 +0100
@@ -1,1 +1,1 @@
-EXPORTS
+EXPORTS
--- a/graphics_plat/guestvideodriver_api/eabi/guestvideohwu.def Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/eabi/guestvideohwu.def Fri Aug 20 16:18:46 2010 +0100
@@ -1,2 +1,2 @@
-EXPORTS
-_ZN24DVirtualVideoHwInterface12GetFrameBaseEv @ 1 NONAME
+EXPORTS
+_ZN24DVirtualVideoHwInterface12GetFrameBaseEv @ 1 NONAME
--- a/graphics_plat/guestvideodriver_api/group/bld.inf Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/group/bld.inf Fri Aug 20 16:18:46 2010 +0100
@@ -1,40 +1,44 @@
-// Copyright (c) 2010 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:
-// Guest side Virtual Video Driver Interface for adaptation layer software use
-//
-// This interface component provides an interface for adapt layer callers
-// only so one adapt layer package can call another adapy layer package.
-// The graphics package, nor any other app, mw, or os layer package may
-// call this interface.
-
-PRJ_PLATFORMS
-ARMV5
-
-PRJ_EXPORTS
-../inc/guestvideodriver.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodriver.h)
-../inc/guestvideodrivercommon.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodrivercommon.h)
-../inc/guestvideodriverinterfaceconstants.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodriverinterfaceconstants.h)
-../inc/guestvideodriverprotocol.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodriverprotocol.h)
-
-../ldd/inc/devicereqhandler.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/devicereqhandler.h)
-../ldd/inc/reqhandlerextension.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/reqhandlerextension.h)
-../ldd/inc/virtualvideohwchannel.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwchannel.h)
-../ldd/inc/virtualvideohwdevice.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwdevice.h)
-../ldd/inc/virtualvideohwdeviceinterface.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwdeviceinterface.h)
-../ldd/inc/virtualvideohwinterface.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwinterface.h)
-../ldd/inc/virtualvideotracing.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideotracing.h)
-
-PRJ_MMPFILES
-guestvideodriverlib.mmp
-guestvideohwlib.mmp
+// Copyright (c) 2010 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:
+// Guest side Virtual Video Driver Interface for adaptation layer software use
+//
+// This interface component provides an interface for adapt layer callers
+// only so one adapt layer package can call another adapt layer package.
+// The graphics package, nor any other app, mw, or os layer package may
+// call this interface.
+
+#include "../ldd/group/bld.inf"
+
+PRJ_PLATFORMS
+ARMV5
+
+PRJ_EXPORTS
+../inc/guestvideodriver.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodriver.h)
+../inc/guestvideodrivercommon.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodrivercommon.h)
+../inc/guestvideodriverinterfaceconstants.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodriverinterfaceconstants.h)
+../inc/guestvideodriverprotocol.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/guestvideodriverprotocol.h)
+
+../ldd/inc/devicereqhandler.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/devicereqhandler.h)
+../ldd/inc/reqhandlerextension.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/reqhandlerextension.h)
+../ldd/inc/virtualvideohwchannel.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwchannel.h)
+../ldd/inc/virtualvideohwdevice.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwdevice.h)
+../ldd/inc/virtualvideohwdeviceinterface.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwdeviceinterface.h)
+../ldd/inc/virtualvideohwinterface.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideohwinterface.h)
+../ldd/inc/virtualvideotracing.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/virtualvideotracing.h)
+../eabi/guestvideodriveru.def /epoc32/include/def/eabi/guestvideodriveru.def
+../eabi/guestvideohwu.def /epoc32/include/def/eabi/guestvideohwu.def
+
+PRJ_MMPFILES
+guestvideodriverlib.mmp
+guestvideohwlib.mmp
--- a/graphics_plat/guestvideodriver_api/group/guestvideodriverlib.mmp Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/group/guestvideodriverlib.mmp Fri Aug 20 16:18:46 2010 +0100
@@ -1,21 +1,21 @@
-// Copyright (c) 2010 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:
-// Provide a library interface for the guest video driver. This interface
-// is expected to be implemented in an adapt layer component.
-
-#include <platform_paths.hrh>
-
-TARGET guestvideodriver.lib
-TARGETTYPE IMPLIB
-DEFFILE ../eabi/guestvideodriver.def
+// Copyright (c) 2010 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:
+// Provide a library interface for the guest video driver. This interface
+// is expected to be implemented in an adapt layer component.
+
+#include <platform_paths.hrh>
+
+TARGET guestvideodriver.lib
+TARGETTYPE IMPLIB
+DEFFILE ../eabi/guestvideodriver.def
--- a/graphics_plat/guestvideodriver_api/group/guestvideohwlib.mmp Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/group/guestvideohwlib.mmp Fri Aug 20 16:18:46 2010 +0100
@@ -1,21 +1,21 @@
-// Copyright (c) 2010 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:
-// Provide a library interface for the guest video hardware device. This
-// interface is expected to be implemented in an adapt layer component.
-
-#include <platform_paths.hrh>
-
-TARGET guestvideohw.lib
-TARGETTYPE IMPLIB
-DEFFILE ../eabi/guestvideohw.def
+// Copyright (c) 2010 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:
+// Provide a library interface for the guest video hardware device. This
+// interface is expected to be implemented in an adapt layer component.
+
+#include <platform_paths.hrh>
+
+TARGET guestvideohw.lib
+TARGETTYPE IMPLIB
+DEFFILE ../eabi/guestvideohw.def
--- a/graphics_plat/guestvideodriver_api/inc/guestvideodriver.h Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/inc/guestvideodriver.h Fri Aug 20 16:18:46 2010 +0100
@@ -1,96 +1,96 @@
-// Copyright (c) 2010 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:
-// Header file for guest video driver
-
-#ifndef __GUESTVIDEODRIVER_H__
-#define __GUESTVIDEODRIVER_H__
-
-#include <e32cmn.h>
-#include <e32std.h>
-#include <babitflags.h>
-
-#include "guestvideodrivercommon.h"
-
-class RemoteFunctionCallData;
-
-//Local request buffering size
-const TInt KRequestBufferSize = 20000;
-
-/**
- * Guest video driver user API. One instance exists per process.
- */
-NONSHARABLE_CLASS(RGuestVideoDriver) : public RBusLogicalChannel
- {
-public:
- // Default constructor
- IMPORT_C RGuestVideoDriver();
-
- // Destructor
- IMPORT_C ~RGuestVideoDriver();
-
- /**
- * Opens this driver handle. Calls RBusLogicalChannel::DoCreate.
- *
- * @return System wide error code
- */
- IMPORT_C TInt Open();
-
- /**
- * Executes a command
- * @param aRequestData Remote function call
- */
- IMPORT_C void ExecuteCommand(RemoteFunctionCallData& aRequestData);
-
- /**
- * Flushes any buffered commands.
- */
- IMPORT_C void Flush();
-
- IMPORT_C TInt MapToHWAddress( const TInt aChunkHandle, TUint32& aHWAddress );
-
- IMPORT_C TInt EglGetSgHandles( const TUint64 aId, TUint64 *aSgHandles );
-
- /**
- * Gets Base Address of Frame Buffer
- * @param aHWAddress returned Base Address
- *
- * @note A base address of 0 is invalid, and indicates a failure to
- * obtain the base address.
- */
- IMPORT_C TInt GetFrameBufferBaseAddress( TUint32& aHWAddress );
-
-
-private:
- /*
- Buffer, or send if it needs a reply, a command to the virtual video hardware
- @param aRFC Remote function call to buffer
- @return ETrue if buffering succeeds, otherwise the aRFC needs to be executed directly
- */
- TBool BufferCommand( RemoteFunctionCallData& aRFC );
-
- // Sends buffered commands
- void SendBuffer();
-
-private:
- TBool iIsOpen;
- RMutex iThreadLock;
- /**
- * Request buffer
- */
- TUint32 iProcessId;
- TBuf8<KRequestBufferSize> iBuffer;
- };
-
-
-#endif // __GUESTVIDEODRIVER_H__
+// Copyright (c) 2010 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:
+// Header file for guest video driver
+
+#ifndef __GUESTVIDEODRIVER_H__
+#define __GUESTVIDEODRIVER_H__
+
+#include <e32cmn.h>
+#include <e32std.h>
+#include <babitflags.h>
+
+#include "guestvideodrivercommon.h"
+
+class RemoteFunctionCallData;
+
+//Local request buffering size
+const TInt KRequestBufferSize = 20000;
+
+/**
+ * Guest video driver user API. One instance exists per process.
+ */
+NONSHARABLE_CLASS(RGuestVideoDriver) : public RBusLogicalChannel
+ {
+public:
+ // Default constructor
+ IMPORT_C RGuestVideoDriver();
+
+ // Destructor
+ IMPORT_C ~RGuestVideoDriver();
+
+ /**
+ * Opens this driver handle. Calls RBusLogicalChannel::DoCreate.
+ *
+ * @return System wide error code
+ */
+ IMPORT_C TInt Open();
+
+ /**
+ * Executes a command
+ * @param aRequestData Remote function call
+ */
+ IMPORT_C void ExecuteCommand(RemoteFunctionCallData& aRequestData);
+
+ /**
+ * Flushes any buffered commands.
+ */
+ IMPORT_C void Flush();
+
+ IMPORT_C TInt MapToHWAddress( const TInt aChunkHandle, TUint32& aHWAddress );
+
+ IMPORT_C TInt EglGetSgHandles( const TUint64 aId, TUint64 *aSgHandles );
+
+ /**
+ * Gets Base Address of Frame Buffer
+ * @param aHWAddress returned Base Address
+ *
+ * @note A base address of 0 is invalid, and indicates a failure to
+ * obtain the base address.
+ */
+ IMPORT_C TInt GetFrameBufferBaseAddress( TUint32& aHWAddress );
+
+
+private:
+ /*
+ Buffer, or send if it needs a reply, a command to the virtual video hardware
+ @param aRFC Remote function call to buffer
+ @return ETrue if buffering succeeds, otherwise the aRFC needs to be executed directly
+ */
+ TBool BufferCommand( RemoteFunctionCallData& aRFC );
+
+ // Sends buffered commands
+ void SendBuffer();
+
+private:
+ TBool iIsOpen;
+ RMutex iThreadLock;
+ /**
+ * Request buffer
+ */
+ TUint32 iProcessId;
+ TBuf8<KRequestBufferSize> iBuffer;
+ };
+
+
+#endif // __GUESTVIDEODRIVER_H__
--- a/graphics_plat/guestvideodriver_api/inc/guestvideodrivercommon.h Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/inc/guestvideodrivercommon.h Fri Aug 20 16:18:46 2010 +0100
@@ -1,49 +1,49 @@
-// Copyright (c) 2010 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:
-// Header file for guest video driver
-
-#ifndef __GUESTVIDEODRIVERCOMMON_H
-#define __GUESTVIDEODRIVERCOMMON_H
-
-#include <e32cmn.h>
-
-/**
- * Namespace for Platform Simulator Audio Driver.
- */
-namespace GuestVideoDriver
- {
- /**
- * Name of the DFC thread used by logical channels.
- */
- _LIT( KDfcThreadName, "DfcThreadVirtualVideoHw" );
-
- /**
- * Name of the logical device used to identify the device.
- */
- _LIT( KDeviceName, "VirtualVideoHwDevice" );
-
- /**
- * Name of the logical device dll file name.
- */
- _LIT( KDeviceFileName, "guestvideohw" );
-
- /**
- * Current version of the driver.
- */
- const TInt KMajorVer = 1;
- const TInt KMinorVer = 0;
- const TInt KBuildVer = 1;
- }
-
-#endif // __GUESTVIDEODRIVERCOMMON_H
+// Copyright (c) 2010 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:
+// Header file for guest video driver
+
+#ifndef __GUESTVIDEODRIVERCOMMON_H
+#define __GUESTVIDEODRIVERCOMMON_H
+
+#include <e32cmn.h>
+
+/**
+ * Namespace for Platform Simulator Audio Driver.
+ */
+namespace GuestVideoDriver
+ {
+ /**
+ * Name of the DFC thread used by logical channels.
+ */
+ _LIT( KDfcThreadName, "DfcThreadVirtualVideoHw" );
+
+ /**
+ * Name of the logical device used to identify the device.
+ */
+ _LIT( KDeviceName, "VirtualVideoHwDevice" );
+
+ /**
+ * Name of the logical device dll file name.
+ */
+ _LIT( KDeviceFileName, "guestvideohw" );
+
+ /**
+ * Current version of the driver.
+ */
+ const TInt KMajorVer = 1;
+ const TInt KMinorVer = 0;
+ const TInt KBuildVer = 1;
+ }
+
+#endif // __GUESTVIDEODRIVERCOMMON_H
--- a/graphics_plat/guestvideodriver_api/inc/guestvideodriverinterfaceconstants.h Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/inc/guestvideodriverinterfaceconstants.h Fri Aug 20 16:18:46 2010 +0100
@@ -1,58 +1,58 @@
-// Copyright (c) 2010 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:
-// Header file for the guest video driver
-
-#ifndef VirtualVideoInterfaceConstants_h_
-#define VirtualVideoInterfaceConstants_h_
-
-// virtualhw.irq => ic.input[391];
-// pvbus.pvbus_m_range[0x60000000..0x62ffffff] => graphicsvirtualhw.mbus; //=>Reserve own memory area later
-// pvbus.pvbus_m_range[0x63000000..0x63000fff] => graphicsvirtualhw.pbus; //=>Reserve own memory area later
-
-// base address
-#define VVI_REGISTERS_BASE_ADDRESS 0x63000000
-#define VVI_REGISTERS_MEMORY_SIZE 0x1000
-#define VVI_REGISTERS_MASK 0x0FFF
-
-#define VVI_PARAMETERS_INPUT_BASE_ADDRESS 0x60000000
-#define VVI_PARAMETERS_INPUT_MEMORY_SIZE 0x01000000
-
-#define VVI_PARAMETERS_OUTPUT_BASE_ADDRESS 0x61000000
-#define VVI_PARAMETERS_OUTPUT_MEMORY_SIZE 0x01000000
-
-#define VVI_FRAMEBUFFER_BASE_ADDRESS 0x62000000
-#define VVI_FRAMEBUFFER_MEMORY_SIZE 0x01000000
-
-// register indices, TODO: cleanup needed, some are not used
-#define VVI_R_ID 0x0000
-#define VVI_R_IRQ_ENABLE 0x0004
-#define VVI_R_IRQ_STATUS 0x0008
-#define VVI_R_COMMAND 0x000c
-#define VVI_R_PARAMETER_LOAD 0x0010
-#define VVI_R_ERROR 0x0014
-#define VVI_R_INPUT_BUFFER_TAIL 0x0018
-#define VVI_R_INPUT_BUFFER_HEAD 0x001c
-#define VVI_R_INPUT_BUFFER_READ_COUNT 0x0020
-#define VVI_R_INPUT_BUFFER_WRITE_COUNT 0x0024
-#define VVI_R_INPUT_BUFFER_MAX_TAIL 0x0028
-#define VVI_R_REQUEST_ID 0x002c
-#define VVI_R_LASTREG 0x0030 // not a register, address of last register
-
-// COMMAND register values
-#define VVI_EXECUTE 0
-
-//IRQ number
-#define VVI_IRQ 391
-
-#endif
+// Copyright (c) 2010 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:
+// Header file for the guest video driver
+
+#ifndef VirtualVideoInterfaceConstants_h_
+#define VirtualVideoInterfaceConstants_h_
+
+// virtualhw.irq => ic.input[391];
+// pvbus.pvbus_m_range[0x60000000..0x62ffffff] => graphicsvirtualhw.mbus; //=>Reserve own memory area later
+// pvbus.pvbus_m_range[0x63000000..0x63000fff] => graphicsvirtualhw.pbus; //=>Reserve own memory area later
+
+// base address
+#define VVI_REGISTERS_BASE_ADDRESS 0x63000000
+#define VVI_REGISTERS_MEMORY_SIZE 0x1000
+#define VVI_REGISTERS_MASK 0x0FFF
+
+#define VVI_PARAMETERS_INPUT_BASE_ADDRESS 0x60000000
+#define VVI_PARAMETERS_INPUT_MEMORY_SIZE 0x01000000
+
+#define VVI_PARAMETERS_OUTPUT_BASE_ADDRESS 0x61000000
+#define VVI_PARAMETERS_OUTPUT_MEMORY_SIZE 0x01000000
+
+#define VVI_FRAMEBUFFER_BASE_ADDRESS 0x62000000
+#define VVI_FRAMEBUFFER_MEMORY_SIZE 0x01000000
+
+// register indices, TODO: cleanup needed, some are not used
+#define VVI_R_ID 0x0000
+#define VVI_R_IRQ_ENABLE 0x0004
+#define VVI_R_IRQ_STATUS 0x0008
+#define VVI_R_COMMAND 0x000c
+#define VVI_R_PARAMETER_LOAD 0x0010
+#define VVI_R_ERROR 0x0014
+#define VVI_R_INPUT_BUFFER_TAIL 0x0018
+#define VVI_R_INPUT_BUFFER_HEAD 0x001c
+#define VVI_R_INPUT_BUFFER_READ_COUNT 0x0020
+#define VVI_R_INPUT_BUFFER_WRITE_COUNT 0x0024
+#define VVI_R_INPUT_BUFFER_MAX_TAIL 0x0028
+#define VVI_R_REQUEST_ID 0x002c
+#define VVI_R_LASTREG 0x0030 // not a register, address of last register
+
+// COMMAND register values
+#define VVI_EXECUTE 0
+
+//IRQ number
+#define VVI_IRQ 391
+
+#endif
--- a/graphics_plat/guestvideodriver_api/inc/guestvideodriverprotocol.h Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/guestvideodriver_api/inc/guestvideodriverprotocol.h Fri Aug 20 16:18:46 2010 +0100
@@ -1,45 +1,45 @@
-// Copyright (c) 2010 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:
-// Header file for the guest video driver
-
-
-#ifndef __GUESTVIDEODRIVERPROTOCOL_H
-#define __GUESTVIDEODRIVERPROTOCOL_H
-
-#include <e32cmn.h>
-#include "guestvideodrivercommon.h"
-
-/**
- * Namespace for Platform Simulator Video Driver.
- * The user API - kernel LDD messaging protocol is defined within this
- * namespace.
- */
-namespace GuestVideoDriver
- {
-
- /**
- * Enumeration of different requests
- */
- enum TRequestId
- {
- ERequestExecuteCommand = 0x1001, // Asynchronous (DoRequest)
- ERequestMapAddress = 0x1002, // Synchronous (DoControl)
- ERequestLoadCommands = 0x1004, // Synchronous (DoRequest)
- ERequestSgHandles = 0x1005, //Synchronous (DoControl)
- };
-
- }
-
-
-#endif // __GUESTVIDEODRIVERPROTOCOL_H
+// Copyright (c) 2010 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:
+// Header file for the guest video driver
+
+
+#ifndef __GUESTVIDEODRIVERPROTOCOL_H
+#define __GUESTVIDEODRIVERPROTOCOL_H
+
+#include <e32cmn.h>
+#include "guestvideodrivercommon.h"
+
+/**
+ * Namespace for Platform Simulator Video Driver.
+ * The user API - kernel LDD messaging protocol is defined within this
+ * namespace.
+ */
+namespace GuestVideoDriver
+ {
+
+ /**
+ * Enumeration of different requests
+ */
+ enum TRequestId
+ {
+ ERequestExecuteCommand = 0x1001, // Asynchronous (DoRequest)
+ ERequestMapAddress = 0x1002, // Synchronous (DoControl)
+ ERequestLoadCommands = 0x1004, // Synchronous (DoRequest)
+ ERequestSgHandles = 0x1005, //Synchronous (DoControl)
+ };
+
+ }
+
+
+#endif // __GUESTVIDEODRIVERPROTOCOL_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/graphics_plat/guestvideodriver_api/ldd/eabi/reqhandlerextensionu.def Fri Aug 20 16:18:46 2010 +0100
@@ -0,0 +1,6 @@
+EXPORTS
+ _ZN19ReqHandlerExtension20CreateSgImagePbufferERK16TSgImageMetaData @ 1 NONAME
+ _ZN19ReqHandlerExtension20CreateSgImageVGImageERK16TSgImageMetaData @ 2 NONAME
+ _ZN19ReqHandlerExtension13SetReqHandlerEP19MReqHandlerCallback @ 3 NONAME
+ _ZN19ReqHandlerExtension14DestroySgImageEy @ 4 NONAME
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/graphics_plat/guestvideodriver_api/ldd/group/bld.inf Fri Aug 20 16:18:46 2010 +0100
@@ -0,0 +1,30 @@
+// Copyright (c) 2010 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:
+// Request Handler Extension Interface
+//
+// This interface component provides an interface for adapt layer callers
+// only so one adapt layer package can call another adapt layer package.
+// The graphics package, nor any other app, mw, or os layer package may
+// call this interface.
+
+
+PRJ_PLATFORMS
+ARMV5
+
+PRJ_EXPORTS
+
+../eabi/reqhandlerextensionu.def /epoc32/include/def/eabi/reqhandlerextensionu.def
+
+PRJ_MMPFILES
+reqhandlerextensionlib.mmp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/graphics_plat/guestvideodriver_api/ldd/group/reqhandlerextensionlib.mmp Fri Aug 20 16:18:46 2010 +0100
@@ -0,0 +1,23 @@
+// Copyright (c) 2010 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:
+// Provide a library interface for the request handler extension.
+// The implementation is expected to be provided by the graphics.simulator
+// package.
+
+#include <platform_paths.hrh>
+
+TARGET reqhandlerextension.lib
+TARGETTYPE IMPLIB
+DEFFILE ../eabi/reqhandlerextension.def
+
--- a/graphics_plat/surfacemanager_api/bwins/surfacemanageru.def Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/surfacemanager_api/bwins/surfacemanageru.def Fri Aug 20 16:18:46 2010 +0100
@@ -1,17 +1,17 @@
-EXPORTS
- ?AddSurfaceHint@RSurfaceManager@@QAEHABVTSurfaceId@@ABVTHintPair@1@@Z @ 1 NONAME ; int RSurfaceManager::AddSurfaceHint(class TSurfaceId const &, class RSurfaceManager::THintPair const &)
- ?Open@RSurfaceManager@@QAEHXZ @ 2 NONAME ; int RSurfaceManager::Open(void)
- ?GetSurfaceManagerAttrib@RSurfaceManager@@QAEHW4TSurfaceManagerAttrib@1@AAH@Z @ 3 NONAME ; int RSurfaceManager::GetSurfaceManagerAttrib(enum RSurfaceManager::TSurfaceManagerAttrib, int &)
- ?CreateSurface@RSurfaceManager@@QAEHABV?$TPckgBuf@VTSurfaceCreationAttributes@RSurfaceManager@@@@AAVTSurfaceId@@ABVRChunk@@@Z @ 4 NONAME ; int RSurfaceManager::CreateSurface(class TPckgBuf<class RSurfaceManager::TSurfaceCreationAttributes> const &, class TSurfaceId &, class RChunk const &)
- ?SurfaceInfo@RSurfaceManager@@QAEHABVTSurfaceId@@AAV?$TPckgBuf@VTSurfaceInfoV01@RSurfaceManager@@@@@Z @ 5 NONAME ; int RSurfaceManager::SurfaceInfo(class TSurfaceId const &, class TPckgBuf<class RSurfaceManager::TSurfaceInfoV01> &)
- ?CloseSurface@RSurfaceManager@@QAEHABVTSurfaceId@@@Z @ 6 NONAME ; int RSurfaceManager::CloseSurface(class TSurfaceId const &)
- ?SynchronizeCache@RSurfaceManager@@QAEHABVTSurfaceId@@HW4TSyncOperation@1@@Z @ 7 NONAME ; int RSurfaceManager::SynchronizeCache(class TSurfaceId const &, int, enum RSurfaceManager::TSyncOperation)
- ?Close@RSurfaceManager@@QAEXXZ @ 8 NONAME ; void RSurfaceManager::Close(void)
- ?GetBufferOffset@RSurfaceManager@@QAEHABVTSurfaceId@@HAAH@Z @ 9 NONAME ; int RSurfaceManager::GetBufferOffset(class TSurfaceId const &, int, int &)
- ?SetSurfaceHint@RSurfaceManager@@QAEHABVTSurfaceId@@ABVTHintPair@1@@Z @ 10 NONAME ; int RSurfaceManager::SetSurfaceHint(class TSurfaceId const &, class RSurfaceManager::THintPair const &)
- ?GetSurfaceHint@RSurfaceManager@@QAEHABVTSurfaceId@@AAVTHintPair@1@@Z @ 11 NONAME ; int RSurfaceManager::GetSurfaceHint(class TSurfaceId const &, class RSurfaceManager::THintPair &)
- ?CreateSurface@RSurfaceManager@@QAEHABV?$TPckgBuf@VTSurfaceCreationAttributes@RSurfaceManager@@@@AAVTSurfaceId@@@Z @ 12 NONAME ; int RSurfaceManager::CreateSurface(class TPckgBuf<class RSurfaceManager::TSurfaceCreationAttributes> const &, class TSurfaceId &)
- ?MapSurface@RSurfaceManager@@QAEHABVTSurfaceId@@AAVRChunk@@@Z @ 13 NONAME ; int RSurfaceManager::MapSurface(class TSurfaceId const &, class RChunk &)
- ??0RSurfaceManager@@QAE@XZ @ 14 NONAME ; RSurfaceManager::RSurfaceManager(void)
- ?OpenSurface@RSurfaceManager@@QAEHABVTSurfaceId@@@Z @ 15 NONAME ; int RSurfaceManager::OpenSurface(class TSurfaceId const &)
-
+EXPORTS
+ ?AddSurfaceHint@RSurfaceManager@@QAEHABVTSurfaceId@@ABVTHintPair@1@@Z @ 1 NONAME ; int RSurfaceManager::AddSurfaceHint(class TSurfaceId const &, class RSurfaceManager::THintPair const &)
+ ?Open@RSurfaceManager@@QAEHXZ @ 2 NONAME ; int RSurfaceManager::Open(void)
+ ?GetSurfaceManagerAttrib@RSurfaceManager@@QAEHW4TSurfaceManagerAttrib@1@AAH@Z @ 3 NONAME ; int RSurfaceManager::GetSurfaceManagerAttrib(enum RSurfaceManager::TSurfaceManagerAttrib, int &)
+ ?CreateSurface@RSurfaceManager@@QAEHABV?$TPckgBuf@VTSurfaceCreationAttributes@RSurfaceManager@@@@AAVTSurfaceId@@ABVRChunk@@@Z @ 4 NONAME ; int RSurfaceManager::CreateSurface(class TPckgBuf<class RSurfaceManager::TSurfaceCreationAttributes> const &, class TSurfaceId &, class RChunk const &)
+ ?SurfaceInfo@RSurfaceManager@@QAEHABVTSurfaceId@@AAV?$TPckgBuf@VTSurfaceInfoV01@RSurfaceManager@@@@@Z @ 5 NONAME ; int RSurfaceManager::SurfaceInfo(class TSurfaceId const &, class TPckgBuf<class RSurfaceManager::TSurfaceInfoV01> &)
+ ?CloseSurface@RSurfaceManager@@QAEHABVTSurfaceId@@@Z @ 6 NONAME ; int RSurfaceManager::CloseSurface(class TSurfaceId const &)
+ ?SynchronizeCache@RSurfaceManager@@QAEHABVTSurfaceId@@HW4TSyncOperation@1@@Z @ 7 NONAME ; int RSurfaceManager::SynchronizeCache(class TSurfaceId const &, int, enum RSurfaceManager::TSyncOperation)
+ ?Close@RSurfaceManager@@QAEXXZ @ 8 NONAME ; void RSurfaceManager::Close(void)
+ ?GetBufferOffset@RSurfaceManager@@QAEHABVTSurfaceId@@HAAH@Z @ 9 NONAME ; int RSurfaceManager::GetBufferOffset(class TSurfaceId const &, int, int &)
+ ?SetSurfaceHint@RSurfaceManager@@QAEHABVTSurfaceId@@ABVTHintPair@1@@Z @ 10 NONAME ; int RSurfaceManager::SetSurfaceHint(class TSurfaceId const &, class RSurfaceManager::THintPair const &)
+ ?GetSurfaceHint@RSurfaceManager@@QAEHABVTSurfaceId@@AAVTHintPair@1@@Z @ 11 NONAME ; int RSurfaceManager::GetSurfaceHint(class TSurfaceId const &, class RSurfaceManager::THintPair &)
+ ?CreateSurface@RSurfaceManager@@QAEHABV?$TPckgBuf@VTSurfaceCreationAttributes@RSurfaceManager@@@@AAVTSurfaceId@@@Z @ 12 NONAME ; int RSurfaceManager::CreateSurface(class TPckgBuf<class RSurfaceManager::TSurfaceCreationAttributes> const &, class TSurfaceId &)
+ ?MapSurface@RSurfaceManager@@QAEHABVTSurfaceId@@AAVRChunk@@@Z @ 13 NONAME ; int RSurfaceManager::MapSurface(class TSurfaceId const &, class RChunk &)
+ ??0RSurfaceManager@@QAE@XZ @ 14 NONAME ; RSurfaceManager::RSurfaceManager(void)
+ ?OpenSurface@RSurfaceManager@@QAEHABVTSurfaceId@@@Z @ 15 NONAME ; int RSurfaceManager::OpenSurface(class TSurfaceId const &)
+
--- a/graphics_plat/surfacemanager_api/eabi/surfacemanageru.def Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/surfacemanager_api/eabi/surfacemanageru.def Fri Aug 20 16:18:46 2010 +0100
@@ -1,18 +1,18 @@
-EXPORTS
- _ZN15RSurfaceManager10MapSurfaceERK10TSurfaceIdR6RChunk @ 1 NONAME
- _ZN15RSurfaceManager11OpenSurfaceERK10TSurfaceId @ 2 NONAME
- _ZN15RSurfaceManager11SurfaceInfoERK10TSurfaceIdR8TPckgBufINS_15TSurfaceInfoV01EE @ 3 NONAME
- _ZN15RSurfaceManager12CloseSurfaceERK10TSurfaceId @ 4 NONAME
- _ZN15RSurfaceManager13CreateSurfaceERK8TPckgBufINS_26TSurfaceCreationAttributesEER10TSurfaceId @ 5 NONAME
- _ZN15RSurfaceManager13CreateSurfaceERK8TPckgBufINS_26TSurfaceCreationAttributesEER10TSurfaceIdRK6RChunk @ 6 NONAME
- _ZN15RSurfaceManager14AddSurfaceHintERK10TSurfaceIdRKNS_9THintPairE @ 7 NONAME
- _ZN15RSurfaceManager14GetSurfaceHintERK10TSurfaceIdRNS_9THintPairE @ 8 NONAME
- _ZN15RSurfaceManager14SetSurfaceHintERK10TSurfaceIdRKNS_9THintPairE @ 9 NONAME
- _ZN15RSurfaceManager16SynchronizeCacheERK10TSurfaceIdiNS_14TSyncOperationE @ 10 NONAME
- _ZN15RSurfaceManager23GetSurfaceManagerAttribENS_21TSurfaceManagerAttribERi @ 11 NONAME
- _ZN15RSurfaceManager4OpenEv @ 12 NONAME
- _ZN15RSurfaceManager5CloseEv @ 13 NONAME
- _ZN15RSurfaceManagerC1Ev @ 14 NONAME
- _ZN15RSurfaceManagerC2Ev @ 15 NONAME
- _ZN15RSurfaceManager15GetBufferOffsetERK10TSurfaceIdiRi @ 16 NONAME
-
+EXPORTS
+ _ZN15RSurfaceManager10MapSurfaceERK10TSurfaceIdR6RChunk @ 1 NONAME
+ _ZN15RSurfaceManager11OpenSurfaceERK10TSurfaceId @ 2 NONAME
+ _ZN15RSurfaceManager11SurfaceInfoERK10TSurfaceIdR8TPckgBufINS_15TSurfaceInfoV01EE @ 3 NONAME
+ _ZN15RSurfaceManager12CloseSurfaceERK10TSurfaceId @ 4 NONAME
+ _ZN15RSurfaceManager13CreateSurfaceERK8TPckgBufINS_26TSurfaceCreationAttributesEER10TSurfaceId @ 5 NONAME
+ _ZN15RSurfaceManager13CreateSurfaceERK8TPckgBufINS_26TSurfaceCreationAttributesEER10TSurfaceIdRK6RChunk @ 6 NONAME
+ _ZN15RSurfaceManager14AddSurfaceHintERK10TSurfaceIdRKNS_9THintPairE @ 7 NONAME
+ _ZN15RSurfaceManager14GetSurfaceHintERK10TSurfaceIdRNS_9THintPairE @ 8 NONAME
+ _ZN15RSurfaceManager14SetSurfaceHintERK10TSurfaceIdRKNS_9THintPairE @ 9 NONAME
+ _ZN15RSurfaceManager16SynchronizeCacheERK10TSurfaceIdiNS_14TSyncOperationE @ 10 NONAME
+ _ZN15RSurfaceManager23GetSurfaceManagerAttribENS_21TSurfaceManagerAttribERi @ 11 NONAME
+ _ZN15RSurfaceManager4OpenEv @ 12 NONAME
+ _ZN15RSurfaceManager5CloseEv @ 13 NONAME
+ _ZN15RSurfaceManagerC1Ev @ 14 NONAME
+ _ZN15RSurfaceManagerC2Ev @ 15 NONAME
+ _ZN15RSurfaceManager15GetBufferOffsetERK10TSurfaceIdiRi @ 16 NONAME
+
--- a/graphics_plat/surfacemanager_api/group/bld.inf Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/surfacemanager_api/group/bld.inf Fri Aug 20 16:18:46 2010 +0100
@@ -1,27 +1,27 @@
-// Copyright (c) 2010 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:
-// User side interface for the surface manager
-
-PRJ_PLATFORMS
-BASEDEFAULT
-
-PRJ_EXPORTS
-../inc/surfacemanager.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/surfacemanager.h)
-../inc/surface_hints.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/surface_hints.h)
-surfacemanager.iby /epoc32/rom/include/surfacemanager.iby
-../bwins/surfacemanageru.def /epoc32/include/def/win32/surfacemanageru.def
-../eabi/surfacemanageru.def /epoc32/include/def/eabi/surfacemanageru.def
-
-PRJ_MMPFILES
-surfacemanagerlib.mmp
+// Copyright (c) 2010 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:
+// User side interface for the surface manager
+
+PRJ_PLATFORMS
+BASEDEFAULT
+
+PRJ_EXPORTS
+../inc/surfacemanager.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/surfacemanager.h)
+../inc/surface_hints.h OS_LAYER_PLATFORM_EXPORT_PATH(graphics/surface_hints.h)
+surfacemanager.iby /epoc32/rom/include/surfacemanager.iby
+../bwins/surfacemanageru.def /epoc32/include/def/win32/surfacemanageru.def
+../eabi/surfacemanageru.def /epoc32/include/def/eabi/surfacemanageru.def
+
+PRJ_MMPFILES
+surfacemanagerlib.mmp
--- a/graphics_plat/surfacemanager_api/group/surfacemanager.iby Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/surfacemanager_api/group/surfacemanager.iby Fri Aug 20 16:18:46 2010 +0100
@@ -1,24 +1,24 @@
-// 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:
-// surfacemanager_ref.iby
-//
-
-#ifndef __SURFACEMANAGER_IBY__
-#define __SURFACEMANAGER_IBY__
-
-#include <graphics_adaptation.hby>
-#include SURFACEMANAGER_DRV
-
-
-#endif
+// 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:
+// surfacemanager_ref.iby
+//
+
+#ifndef __SURFACEMANAGER_IBY__
+#define __SURFACEMANAGER_IBY__
+
+#include <graphics_adaptation.hby>
+#include SURFACEMANAGER_DRV
+
+
+#endif
--- a/graphics_plat/surfacemanager_api/group/surfacemanagerlib.mmp Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/surfacemanager_api/group/surfacemanagerlib.mmp Fri Aug 20 16:18:46 2010 +0100
@@ -1,28 +1,28 @@
-// Copyright (c) 2010 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:
-// Provide a library interface for the surface manager. This interface is
-// expected to be implemented in an adapt layer component.
-
-#include <platform_paths.hrh>
-
-TARGET surfacemanager.lib
-TARGETTYPE IMPLIB
-
-#ifdef WINS
-DEFFILE ../bwins/surfacemanager.def
-#else
-DEFFILE ../eabi/surfacemanager.def
-#endif
-
-SMPSAFE
+// Copyright (c) 2010 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:
+// Provide a library interface for the surface manager. This interface is
+// expected to be implemented in an adapt layer component.
+
+#include <platform_paths.hrh>
+
+TARGET surfacemanager.lib
+TARGETTYPE IMPLIB
+
+#ifdef WINS
+DEFFILE ../bwins/surfacemanager.def
+#else
+DEFFILE ../eabi/surfacemanager.def
+#endif
+
+SMPSAFE
--- a/graphics_plat/surfacemanager_api/inc/surface_hints.h Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/surfacemanager_api/inc/surface_hints.h Fri Aug 20 16:18:46 2010 +0100
@@ -1,210 +1,210 @@
-// Copyright (c) 2007-2010 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 API
-//
-
-#ifndef __SURFACE_HINTS_H__
-#define __SURFACE_HINTS_H__
-
-//- Include Files ----------------------------------------------------------
-
-#include <e32cmn.h>
-
-
-//- Namespace ---------------------------------------------------------------
-
-namespace surfaceHints
-{
-
-//- Constants ---------------------------------------------------------------
-
-/** Hint of the surface content.
- @see TSurfaceContent for possible values
-*/
-const TInt KSurfaceContent = 0x1;
-
-/** Hint of the expected update rate of the surface content.
- Value for a surface containing e.g. 25 fps video the value should be 25.
- For a static UI element the value should be 0.
- @see TSurfaceUpdate
-*/
-const TInt KSurfaceUpdate = 0x2;
-
-/** Hint whether the surface content is copy protected and can it be
- shown on external displays.
- @see TSurfaceProtection for possible values.
-*/
-const TInt KSurfaceProtection = 0x3;
-
-/** Hint about the surface’s characteristics or properties,
- For example if a surface can be persisted by the effects engine.
- @see TSurfaceCharacteristics for possible values.
-*/
-const TInt KSurfaceCharacteristics = 0x4;
-
-
-/** Values used for the KSurfaceContent key */
-enum TSurfaceContent
- {
- /** No specific use-case */
- EGeneric,
- /** Camera viewfinder frames */
- EViewFinder,
- /** Images captured by camera */
- EStillImage,
- /** Decoded video frames */
- EVideoPlayback,
- /** Video frames from video telephony */
- EVideoTelephony,
- /** EGL surface */
- EGfx,
- /** Main UI surface */
- EUi,
- /** Composition target surface */
- ECompositionTarget,
- /** Indicates that the surface has to accessible by ARM.
- This can be orr'ed with other TSurfaceContent enumerations. */
- EArmAccess = 0x80000000
- };
-
-
-/** Values used for the KSurfaceProtection key. The values are bitmasks and can be combined
-* e.g. EAllowAnalogProtectionRequired | EAllowDigitalProtectionRequired.
-*/
-enum TSurfaceProtection
- {
- /**
- * Not allowed on external outputs
- */
- EAllowInternalOnly = 0x00000000,
-
- /**
- * Allowed on all external outputs
- */
- EAllowAllExternals = 0xFFFFFFFF,
-
- /**
- * Allow passing content over analog outputs,
- * e.g. composite and S-video
- */
- EAllowAnalog = 0x00000010,
-
- /**
- * Allow output over an analog output channel which has a protection
- * mechanism
- */
- EAllowAnalogProtectionRequired = 0x00000020,
-
- /**
- * Allow passing content over digital outputs,
- * e.g. DVI and HDMI
- */
- EAllowDigital = 0x00000200,
-
- /**
- * Licensed product must attempt to engage HDCP to protect the content.
- * However it should be passed through to HDMI even if HDCP is not engaged or fails to engage.
- */
- EAllowDigitalProtectionRequested = 0x00000400,
-
- /**
- * Licensed product is required to engage HDCP to protect the content.
- * If HDCP is not engaged or can not be engaged the content must not be passed through to HDMI.
- */
- EAllowDigitalProtectionRequired = 0x00000800,
- };
-
-
-/** Values used for the KSurfaceCharacteristics key. The values are bitmasks and can be combined.
-*/
-enum TSurfaceCharacteristics
- {
- /**
- * Surface cannot be persisted once it has been closed by the creator
- */
- ENotPersistable = 1,
- };
-
-
-class TSurfaceUpdate
- {
- /** Constructor.
- @param aUpdateRate How often the surface content is redrawn per second.
- @param aTearingFree When ETrue surface updates should be synchronized
- with display refresh rate, otherwise surface can
- be updated as fast as possible.
- */
- inline TSurfaceUpdate(TUint aUpdateRate, TBool aTearingFree);
-
- /** Converts a value to TSurfaceUpdate */
- inline TSurfaceUpdate(TInt aValue);
-
- /** Converts TSurfaceUpdate to a signed integer, so it can be used as
- a value for KSurfaceUpdate key. */
- inline operator TInt() const;
-
- /** Getter for surface update rate.
- @return updates per second
- */
- inline TUint UpdateRate() const;
-
- /** Getter for surface update synchronization.
- @return ETrue - updates should be synchronized with display refresh rate,
- EFalse - surface can be updated as fast as possible.
- */
- inline TBool TearingFree() const;
-
- private:
- TUint iValue;
- };
-
-
-//- Forward Declarations ----------------------------------------------------
-
-
-//- Class Definitions -------------------------------------------------------
-
-
-//- Inline Functions --------------------------------------------------------
-
-TSurfaceUpdate::TSurfaceUpdate(TUint aUpdateRate, TBool aTearingFree)
- : iValue( ( aUpdateRate & 0xFFFF ) | ( aTearingFree ? 0x80000000 : 0x0 ) )
- {
- }
-TSurfaceUpdate::TSurfaceUpdate(TInt aValue)
- : iValue( static_cast<TUint>( aValue ) )
- {
- }
-
-TSurfaceUpdate::operator TInt() const
- {
- return static_cast<TInt>( iValue );
- }
-
-TUint TSurfaceUpdate::UpdateRate() const
- {
- return ( iValue & 0xFFFF );
- }
-
-TBool TSurfaceUpdate::TearingFree() const
- {
- return ( iValue & 0x80000000 ) ? ETrue : EFalse;
- }
-
-} //namespace surfaceHints
-
-#endif //__SURFACE_HINTS_H__
-
-// End of File
-
+// Copyright (c) 2007-2010 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 API
+//
+
+#ifndef __SURFACE_HINTS_H__
+#define __SURFACE_HINTS_H__
+
+//- Include Files ----------------------------------------------------------
+
+#include <e32cmn.h>
+
+
+//- Namespace ---------------------------------------------------------------
+
+namespace surfaceHints
+{
+
+//- Constants ---------------------------------------------------------------
+
+/** Hint of the surface content.
+ @see TSurfaceContent for possible values
+*/
+const TInt KSurfaceContent = 0x1;
+
+/** Hint of the expected update rate of the surface content.
+ Value for a surface containing e.g. 25 fps video the value should be 25.
+ For a static UI element the value should be 0.
+ @see TSurfaceUpdate
+*/
+const TInt KSurfaceUpdate = 0x2;
+
+/** Hint whether the surface content is copy protected and can it be
+ shown on external displays.
+ @see TSurfaceProtection for possible values.
+*/
+const TInt KSurfaceProtection = 0x3;
+
+/** Hint about the surface’s characteristics or properties,
+ For example if a surface can be persisted by the effects engine.
+ @see TSurfaceCharacteristics for possible values.
+*/
+const TInt KSurfaceCharacteristics = 0x4;
+
+
+/** Values used for the KSurfaceContent key */
+enum TSurfaceContent
+ {
+ /** No specific use-case */
+ EGeneric,
+ /** Camera viewfinder frames */
+ EViewFinder,
+ /** Images captured by camera */
+ EStillImage,
+ /** Decoded video frames */
+ EVideoPlayback,
+ /** Video frames from video telephony */
+ EVideoTelephony,
+ /** EGL surface */
+ EGfx,
+ /** Main UI surface */
+ EUi,
+ /** Composition target surface */
+ ECompositionTarget,
+ /** Indicates that the surface has to accessible by ARM.
+ This can be orr'ed with other TSurfaceContent enumerations. */
+ EArmAccess = 0x80000000
+ };
+
+
+/** Values used for the KSurfaceProtection key. The values are bitmasks and can be combined
+* e.g. EAllowAnalogProtectionRequired | EAllowDigitalProtectionRequired.
+*/
+enum TSurfaceProtection
+ {
+ /**
+ * Not allowed on external outputs
+ */
+ EAllowInternalOnly = 0x00000000,
+
+ /**
+ * Allowed on all external outputs
+ */
+ EAllowAllExternals = 0xFFFFFFFF,
+
+ /**
+ * Allow passing content over analog outputs,
+ * e.g. composite and S-video
+ */
+ EAllowAnalog = 0x00000010,
+
+ /**
+ * Allow output over an analog output channel which has a protection
+ * mechanism
+ */
+ EAllowAnalogProtectionRequired = 0x00000020,
+
+ /**
+ * Allow passing content over digital outputs,
+ * e.g. DVI and HDMI
+ */
+ EAllowDigital = 0x00000200,
+
+ /**
+ * Licensed product must attempt to engage HDCP to protect the content.
+ * However it should be passed through to HDMI even if HDCP is not engaged or fails to engage.
+ */
+ EAllowDigitalProtectionRequested = 0x00000400,
+
+ /**
+ * Licensed product is required to engage HDCP to protect the content.
+ * If HDCP is not engaged or can not be engaged the content must not be passed through to HDMI.
+ */
+ EAllowDigitalProtectionRequired = 0x00000800,
+ };
+
+
+/** Values used for the KSurfaceCharacteristics key. The values are bitmasks and can be combined.
+*/
+enum TSurfaceCharacteristics
+ {
+ /**
+ * Surface cannot be persisted once it has been closed by the creator
+ */
+ ENotPersistable = 1,
+ };
+
+
+class TSurfaceUpdate
+ {
+ /** Constructor.
+ @param aUpdateRate How often the surface content is redrawn per second.
+ @param aTearingFree When ETrue surface updates should be synchronized
+ with display refresh rate, otherwise surface can
+ be updated as fast as possible.
+ */
+ inline TSurfaceUpdate(TUint aUpdateRate, TBool aTearingFree);
+
+ /** Converts a value to TSurfaceUpdate */
+ inline TSurfaceUpdate(TInt aValue);
+
+ /** Converts TSurfaceUpdate to a signed integer, so it can be used as
+ a value for KSurfaceUpdate key. */
+ inline operator TInt() const;
+
+ /** Getter for surface update rate.
+ @return updates per second
+ */
+ inline TUint UpdateRate() const;
+
+ /** Getter for surface update synchronization.
+ @return ETrue - updates should be synchronized with display refresh rate,
+ EFalse - surface can be updated as fast as possible.
+ */
+ inline TBool TearingFree() const;
+
+ private:
+ TUint iValue;
+ };
+
+
+//- Forward Declarations ----------------------------------------------------
+
+
+//- Class Definitions -------------------------------------------------------
+
+
+//- Inline Functions --------------------------------------------------------
+
+TSurfaceUpdate::TSurfaceUpdate(TUint aUpdateRate, TBool aTearingFree)
+ : iValue( ( aUpdateRate & 0xFFFF ) | ( aTearingFree ? 0x80000000 : 0x0 ) )
+ {
+ }
+TSurfaceUpdate::TSurfaceUpdate(TInt aValue)
+ : iValue( static_cast<TUint>( aValue ) )
+ {
+ }
+
+TSurfaceUpdate::operator TInt() const
+ {
+ return static_cast<TInt>( iValue );
+ }
+
+TUint TSurfaceUpdate::UpdateRate() const
+ {
+ return ( iValue & 0xFFFF );
+ }
+
+TBool TSurfaceUpdate::TearingFree() const
+ {
+ return ( iValue & 0x80000000 ) ? ETrue : EFalse;
+ }
+
+} //namespace surfaceHints
+
+#endif //__SURFACE_HINTS_H__
+
+// End of File
+
--- a/graphics_plat/surfacemanager_api/inc/surfacemanager.h Mon Aug 16 10:01:57 2010 +0100
+++ b/graphics_plat/surfacemanager_api/inc/surfacemanager.h Fri Aug 20 16:18:46 2010 +0100
@@ -1,223 +1,223 @@
-// 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 API
-//
-//
-
-/**
- @file
- @publishedPartner
- @prototype
-*/
-
-#ifndef __SURFACEMANAGER_H__
-#define __SURFACEMANAGER_H__
-
-#ifndef __KERNEL_MODE__
-#include <e32std.h>
-#endif
-
-#include <e32cmn.h>
-#include <e32ver.h>
-#include <pixelformats.h>
-#include <graphics/surface.h>
-
-class RSurfaceManagerDriver;
-
-/**
-RSurface Manager User API.
-*/
-class RSurfaceManager
- {
-public:
-
- class THintPair
- {
- public:
- /** UID key number */
- TUid iKey;
- /** Integer key value */
- TInt iValue;
- /** Is the value modifiable */
- TBool iMutable;
- public:
- inline void Set(TUid aKey,TInt aValue,TBool aMutable);
- };
-
- enum TCacheAttribute
- {
- /** CPU cached */
- ECached = 0,
- /** Non CPU cached */
- ENotCached = 1
- };
-
- class TSurfaceCreationAttributes
- {
- public:
- /** Width and height of the surface in pixels. */
- TSize iSize;
- /** Number of buffers in the surface. */
- TInt iBuffers;
- /** The pixel format. */
- TUidPixelFormat iPixelFormat;
- /** Minimum or required number of bytes between start of one line and
- start of next. */
- TInt iStride;
- /** Minimum or required offset to the first buffer from the base of the
- chunk. Typically this will be set to 0. The value specified for the
- offset must comply with the alignment specified in iAlignment.
-
- If iAlignment is page aligned, this value will be rounded up to a
- multiple of the page size when the surface is created, therefore the
- surface info must be queried for the actual value used. */
- TInt iOffsetToFirstBuffer;
- /** Alignment applied to the base address of each buffer in the surface:
- 1, 2, 4, 8 ,16, 32, 64 bytes or EPageAligned. */
- TInt iAlignment;
- /** Require physically contiguous memory. This value will be ignored if
- using a chunk which already exists. */
- TBool iContiguous;
- /** Caching attribute to create chunk memory. This value will be
- ignored if using a chunk which already exists. */
- TCacheAttribute iCacheAttrib;
- /** Minimum or required offset between the start of one buffer and the
- start of the next one in bytes. When set to 0 the surface manager will
- choose how buffers are laid out within the chunk. If it is too small
- and doesn't fit with the alignment, CreateSurface() will return
- KErrArgument. */
- TInt iOffsetBetweenBuffers;
- /** Array of hints which should be associated with the surface. This
- array must not contain duplicate hint keys. */
- THintPair* iSurfaceHints;
- /** Number of hints in the array iSurfaceHints. The number should not
- exceed the maximum number supported by the surface manager, see
- GetSurfaceManagerAttrib(EMaxNumberOfHints). */
- TInt iHintCount;
- /** Should the surface be mappable. If EFalse any call to MapSurface()
- will fail with KErrNotSupported -- Note, some architectures may not
- support mappable surfaces. */
- TBool iMappable;
- public:
- inline TSurfaceCreationAttributes();
- };
-
- class TSurfaceInfoV01
- {
- public:
- /** Width and height of the surface in pixels */
- TSize iSize;
- /** Number of buffers in the surface */
- TInt iBuffers;
- /** The pixel format */
- TUidPixelFormat iPixelFormat;
- /** Number of bytes between start of one line and start of next */
- TInt iStride;
- /** Has physically contiguous memory */
- TBool iContiguous;
- /** Specified if the underlying chunk is CPU cached or not */
- TCacheAttribute iCacheAttrib;
- /** ETrue if the surface can be mapped */
- TBool iMappable;
- };
-
- enum TSurfaceManagerAttrib
- {
- /** Maximum number of hints per surface */
- EMaxNumberOfHints = 0x0
- };
-
- /** Package buf used to pass information about a surface from the driver */
- typedef TPckgBuf<TSurfaceInfoV01> TInfoBuf;
- /** Package buf used to pass the surface creation attributes to the device driver */
- typedef TPckgBuf<TSurfaceCreationAttributes> TSurfaceCreationAttributesBuf;
-
- enum TSyncOperation
- {
- /** Synchronize before non CPU hardware reads from the memory, i.e. if the
- buffer is cached and may have been written to by the CPU, this type of
- synchronisation should be used before a peripheral is used to read from the
- buffer's memory */
- ESyncBeforeNonCPURead,
- /** Synchronize before non CPU hardware writes to the memory, i.e. if the
- buffer is cached and may have been written to by the CPU, this type of
- synchronisation should be used before a peripheral is used to write to the
- buffer's memory */
- ESyncBeforeNonCPUWrite,
- /** Synchronize after non CPU hardware writes to the memory, i.e. if the
- buffer is cached, this type of synchronisation should be used after a
- peripheral has been used to write to the buffer's memory */
- ESyncAfterNonCPUWrite
- };
-
- enum TPageAlignment
- {
- /** Specifies iAlignment is a page alignment */
- EPageAligned = -1
- };
-
-public:
-#ifndef __KERNEL_MODE__
- IMPORT_C RSurfaceManager();
- IMPORT_C TInt Open();
- IMPORT_C void Close();
- IMPORT_C TInt CreateSurface(const TSurfaceCreationAttributesBuf& aReqs, TSurfaceId& aSurfaceId);
- IMPORT_C TInt CreateSurface(const TSurfaceCreationAttributesBuf& aReqs, TSurfaceId& aSurfaceId, const RChunk& aChunkHandle);
- IMPORT_C TInt OpenSurface(const TSurfaceId& aSurfaceId);
- IMPORT_C TInt CloseSurface(const TSurfaceId& aSurfaceId);
- IMPORT_C TInt MapSurface(const TSurfaceId& aSurfaceId, RChunk& aHandle);
- IMPORT_C TInt SurfaceInfo(const TSurfaceId& aSurfaceId, TInfoBuf& aInfo);
- IMPORT_C TInt SynchronizeCache(const TSurfaceId& aSurfaceId, TInt aBuffer, TSyncOperation aOperation);
- IMPORT_C TInt GetSurfaceManagerAttrib(TSurfaceManagerAttrib aAttrib, TInt& aValue);
- IMPORT_C TInt GetSurfaceHint(const TSurfaceId& aSurfaceId, THintPair& aHint);
- IMPORT_C TInt SetSurfaceHint(const TSurfaceId& aSurfaceId, const THintPair& aHint);
- IMPORT_C TInt AddSurfaceHint(const TSurfaceId&aSurface, const THintPair& aHint);
- IMPORT_C TInt GetBufferOffset(const TSurfaceId& aSurfaceId, TInt aBuffer, TInt& aOffset);
-#endif //__KERNEL_MODE__
-private:
- inline RSurfaceManagerDriver& Driver();
-private:
- TInt32 iDriverBuf[4];
- };
-
-//
-// THintPair inline
-//
-
-/**
-Sets key, value and mutability of the hint.
-@param aKeyUid The UID of the key
-@param aValue The value of the hint
-@param aMutable ETrue if the hint value is mutable
-*/
-inline void RSurfaceManager::THintPair::Set(TUid aKeyUid,TInt aValue,TBool aMutable)
- {
- iKey = aKeyUid;
- iValue = aValue;
- iMutable = aMutable;
- }
-
-//
-// TSurfaceCreationAttributes inline
-//
-
-/**
-Default constructor, zero initializes all attributes.
-*/
-inline RSurfaceManager::TSurfaceCreationAttributes::TSurfaceCreationAttributes()
- {
- memclr(this, sizeof(TSurfaceCreationAttributes));
- }
-
-#endif //__SURFACEMANAGER_H__
+// 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 API
+//
+//
+
+/**
+ @file
+ @publishedPartner
+ @prototype
+*/
+
+#ifndef __SURFACEMANAGER_H__
+#define __SURFACEMANAGER_H__
+
+#ifndef __KERNEL_MODE__
+#include <e32std.h>
+#endif
+
+#include <e32cmn.h>
+#include <e32ver.h>
+#include <pixelformats.h>
+#include <graphics/surface.h>
+
+class RSurfaceManagerDriver;
+
+/**
+RSurface Manager User API.
+*/
+class RSurfaceManager
+ {
+public:
+
+ class THintPair
+ {
+ public:
+ /** UID key number */
+ TUid iKey;
+ /** Integer key value */
+ TInt iValue;
+ /** Is the value modifiable */
+ TBool iMutable;
+ public:
+ inline void Set(TUid aKey,TInt aValue,TBool aMutable);
+ };
+
+ enum TCacheAttribute
+ {
+ /** CPU cached */
+ ECached = 0,
+ /** Non CPU cached */
+ ENotCached = 1
+ };
+
+ class TSurfaceCreationAttributes
+ {
+ public:
+ /** Width and height of the surface in pixels. */
+ TSize iSize;
+ /** Number of buffers in the surface. */
+ TInt iBuffers;
+ /** The pixel format. */
+ TUidPixelFormat iPixelFormat;
+ /** Minimum or required number of bytes between start of one line and
+ start of next. */
+ TInt iStride;
+ /** Minimum or required offset to the first buffer from the base of the
+ chunk. Typically this will be set to 0. The value specified for the
+ offset must comply with the alignment specified in iAlignment.
+
+ If iAlignment is page aligned, this value will be rounded up to a
+ multiple of the page size when the surface is created, therefore the
+ surface info must be queried for the actual value used. */
+ TInt iOffsetToFirstBuffer;
+ /** Alignment applied to the base address of each buffer in the surface:
+ 1, 2, 4, 8 ,16, 32, 64 bytes or EPageAligned. */
+ TInt iAlignment;
+ /** Require physically contiguous memory. This value will be ignored if
+ using a chunk which already exists. */
+ TBool iContiguous;
+ /** Caching attribute to create chunk memory. This value will be
+ ignored if using a chunk which already exists. */
+ TCacheAttribute iCacheAttrib;
+ /** Minimum or required offset between the start of one buffer and the
+ start of the next one in bytes. When set to 0 the surface manager will
+ choose how buffers are laid out within the chunk. If it is too small
+ and doesn't fit with the alignment, CreateSurface() will return
+ KErrArgument. */
+ TInt iOffsetBetweenBuffers;
+ /** Array of hints which should be associated with the surface. This
+ array must not contain duplicate hint keys. */
+ THintPair* iSurfaceHints;
+ /** Number of hints in the array iSurfaceHints. The number should not
+ exceed the maximum number supported by the surface manager, see
+ GetSurfaceManagerAttrib(EMaxNumberOfHints). */
+ TInt iHintCount;
+ /** Should the surface be mappable. If EFalse any call to MapSurface()
+ will fail with KErrNotSupported -- Note, some architectures may not
+ support mappable surfaces. */
+ TBool iMappable;
+ public:
+ inline TSurfaceCreationAttributes();
+ };
+
+ class TSurfaceInfoV01
+ {
+ public:
+ /** Width and height of the surface in pixels */
+ TSize iSize;
+ /** Number of buffers in the surface */
+ TInt iBuffers;
+ /** The pixel format */
+ TUidPixelFormat iPixelFormat;
+ /** Number of bytes between start of one line and start of next */
+ TInt iStride;
+ /** Has physically contiguous memory */
+ TBool iContiguous;
+ /** Specified if the underlying chunk is CPU cached or not */
+ TCacheAttribute iCacheAttrib;
+ /** ETrue if the surface can be mapped */
+ TBool iMappable;
+ };
+
+ enum TSurfaceManagerAttrib
+ {
+ /** Maximum number of hints per surface */
+ EMaxNumberOfHints = 0x0
+ };
+
+ /** Package buf used to pass information about a surface from the driver */
+ typedef TPckgBuf<TSurfaceInfoV01> TInfoBuf;
+ /** Package buf used to pass the surface creation attributes to the device driver */
+ typedef TPckgBuf<TSurfaceCreationAttributes> TSurfaceCreationAttributesBuf;
+
+ enum TSyncOperation
+ {
+ /** Synchronize before non CPU hardware reads from the memory, i.e. if the
+ buffer is cached and may have been written to by the CPU, this type of
+ synchronisation should be used before a peripheral is used to read from the
+ buffer's memory */
+ ESyncBeforeNonCPURead,
+ /** Synchronize before non CPU hardware writes to the memory, i.e. if the
+ buffer is cached and may have been written to by the CPU, this type of
+ synchronisation should be used before a peripheral is used to write to the
+ buffer's memory */
+ ESyncBeforeNonCPUWrite,
+ /** Synchronize after non CPU hardware writes to the memory, i.e. if the
+ buffer is cached, this type of synchronisation should be used after a
+ peripheral has been used to write to the buffer's memory */
+ ESyncAfterNonCPUWrite
+ };
+
+ enum TPageAlignment
+ {
+ /** Specifies iAlignment is a page alignment */
+ EPageAligned = -1
+ };
+
+public:
+#ifndef __KERNEL_MODE__
+ IMPORT_C RSurfaceManager();
+ IMPORT_C TInt Open();
+ IMPORT_C void Close();
+ IMPORT_C TInt CreateSurface(const TSurfaceCreationAttributesBuf& aReqs, TSurfaceId& aSurfaceId);
+ IMPORT_C TInt CreateSurface(const TSurfaceCreationAttributesBuf& aReqs, TSurfaceId& aSurfaceId, const RChunk& aChunkHandle);
+ IMPORT_C TInt OpenSurface(const TSurfaceId& aSurfaceId);
+ IMPORT_C TInt CloseSurface(const TSurfaceId& aSurfaceId);
+ IMPORT_C TInt MapSurface(const TSurfaceId& aSurfaceId, RChunk& aHandle);
+ IMPORT_C TInt SurfaceInfo(const TSurfaceId& aSurfaceId, TInfoBuf& aInfo);
+ IMPORT_C TInt SynchronizeCache(const TSurfaceId& aSurfaceId, TInt aBuffer, TSyncOperation aOperation);
+ IMPORT_C TInt GetSurfaceManagerAttrib(TSurfaceManagerAttrib aAttrib, TInt& aValue);
+ IMPORT_C TInt GetSurfaceHint(const TSurfaceId& aSurfaceId, THintPair& aHint);
+ IMPORT_C TInt SetSurfaceHint(const TSurfaceId& aSurfaceId, const THintPair& aHint);
+ IMPORT_C TInt AddSurfaceHint(const TSurfaceId&aSurface, const THintPair& aHint);
+ IMPORT_C TInt GetBufferOffset(const TSurfaceId& aSurfaceId, TInt aBuffer, TInt& aOffset);
+#endif //__KERNEL_MODE__
+private:
+ inline RSurfaceManagerDriver& Driver();
+private:
+ TInt32 iDriverBuf[4];
+ };
+
+//
+// THintPair inline
+//
+
+/**
+Sets key, value and mutability of the hint.
+@param aKeyUid The UID of the key
+@param aValue The value of the hint
+@param aMutable ETrue if the hint value is mutable
+*/
+inline void RSurfaceManager::THintPair::Set(TUid aKeyUid,TInt aValue,TBool aMutable)
+ {
+ iKey = aKeyUid;
+ iValue = aValue;
+ iMutable = aMutable;
+ }
+
+//
+// TSurfaceCreationAttributes inline
+//
+
+/**
+Default constructor, zero initializes all attributes.
+*/
+inline RSurfaceManager::TSurfaceCreationAttributes::TSurfaceCreationAttributes()
+ {
+ memclr(this, sizeof(TSurfaceCreationAttributes));
+ }
+
+#endif //__SURFACEMANAGER_H__