symport/e32/include/e32hal.h
changeset 1 0a7b44b10206
child 2 806186ab5e14
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symport/e32/include/e32hal.h	Thu Jun 25 15:59:54 2009 +0100
@@ -0,0 +1,622 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32\include\e32hal.h
+// 
+//
+
+#ifndef __E32HAL_H__
+#define __E32HAL_H__
+#include <e32cmn.h>
+#include <e32cmn_private.h>
+
+/**
+@publishedPartner
+@deprecated No replacement.
+*/ 
+const TInt KMaxRomDevices=8;
+
+
+
+
+/**
+@publishedPartner
+@released
+
+Defines the calibration settings that can be restored by 
+the digitiser's implementation of DDigitiser::RestoreXYInputCalibration.
+
+See the digitiser template port in:
+@code
+...\template\template_variant\specific\xyin.cpp
+@endcode
+
+@see DDigitiser::RestoreXYInputCalibration()
+*/ 
+enum TDigitizerCalibrationType
+    {
+    EFactory, /**< Restore to factory settings. */
+    ESaved    /**< Restore to saved settings.   */
+    };
+
+
+
+
+/**
+@publishedPartner
+@released
+
+Defines the screen coordinates of the point touched during calibration.
+
+An object of this type is passed, via a TPckgBuf, to the HAL handler
+that deals with the HAL group function-id pair:
+- EHalGroupDigitiser, EDigitiserHalSetXYInputCalibration
+- EHalGroupDigitiser, EDigitiserHalCalibrationPoints
+- EHalGroupDigitiser, EDigitiserHalRestoreXYInputCalibration
+
+@see EDigitiserHalSetXYInputCalibration
+@see EDigitiserHalCalibrationPoints
+@see EDigitiserHalRestoreXYInputCalibration
+@see TDigitiserHalFunction
+@see EHalGroupDigitiser
+@see TPckgBuf
+*/ 
+class TDigitizerCalibration
+    {
+public:
+    TPoint iTl;  /**< Top left point.*/
+    TPoint iBl;  /**< Bottom left point. */
+    TPoint iTr;  /**< Top right point.*/
+    TPoint iBr;  /**< Bottom right point.*/
+    };
+
+
+
+
+/**
+@publishedPartner
+@released
+
+An enum that identifies the full set of keyboard types.
+
+A variable of this type is defined and used in the TKeyboardInfoV01 struct. 
+
+@see TKeyboardInfoV01::iKeyboardType.
+*/ 
+enum TKeyboard
+	{
+	EKeyboard_Keypad=1, /**< Keypad type*/
+	EKeyboard_Full=2,   /**< Full keyboard type*/
+	};
+
+
+
+
+/**
+@publishedPartner
+@released
+
+Encapsulates information about the keyboard.
+
+NOTE that the information represented here is not used by Symbian OS, 
+and exists to maintain binary compatibilty with older versions.
+
+However, keyboard drivers that implement the HAL handler for
+the EHalGroupKeyboard group still need to return a default object
+of this type.
+See the template port.
+
+An object of this type is passed, via a TPckgBuf, to the HAL handler
+that deals with the HAL group function-id pair:
+- EHalGroupKeyboard, EKeyboardHalKeyboardInfo;
+
+@see EKeyboardHalKeyboardInfo
+@see TKeyboardHalFunction
+@see EHalGroupKeyboard
+@see TPckgBuf
+*/ 
+class TKeyboardInfoV01
+	{
+public:
+    /**
+    The number of device keys.
+    
+    NOTE that the information represented by this variable is not
+    used by Symbian OS, and exists to maintain binary compatibility
+    with older versions. 
+    */
+	TInt iDeviceKeys;
+	
+	
+	/**
+	The number of application keys.
+	
+	NOTE that the information represented by this variable is not
+    used by Symbian OS, and exists to maintain binary compatibility
+    with older versions. 
+	*/
+    TInt iAppsKeys;
+    
+    
+    /**
+    Defines the type of keyboard available as enumerated by
+    the TKeyboard enum.
+        
+    NOTE that the information represented by this variable is not
+    used by Symbian OS, and exists to maintain binary compatibility
+    with older versions. 
+            
+    @see TKeyboard
+    */
+	TKeyboard iKeyboardType;
+    };
+    
+    
+    
+    
+/**
+@publishedPartner
+@released
+
+Package buffer for a TKeyboardInfoV01 object.
+
+@see TKeyboardInfoV01
+*/ 
+typedef TPckgBuf<TKeyboardInfoV01> TKeyboardInfoV01Buf;
+
+
+
+
+/**
+@publishedPartner
+@released
+
+Encapsulates information about the digitiser.
+
+An object of this type is passed, via a TPckgBuf, to the HAL handler
+that deals with the HAL group function-id pair:
+- EHalGroupDigitiser, EDigitiserHalXYInfo;
+
+@see EDigitiserHalXYInfo
+@see TDigitiserHalFunction
+@see EHalGroupDigitiser
+@see TPckgBuf
+*/ 
+class TDigitiserInfoV01
+	{
+public:
+	TPoint iOffsetToDisplay;/**< The offset in pixels from the digitiser usable area to the display area. */
+	TSize iDigitiserSize;   /**< The width/height of the display in pixels as used by digitiser.*/
+	};
+	
+	
+/**
+@publishedPartner
+@released
+Encapsulates extra information required by 3 dimensional pointing devices.
+*/ 
+class TDigitiserInfoV02 : public TDigitiserInfoV01
+	{	
+public :
+	TInt iZRange;			/**< The maximum distance to screen a pointing device will be detected (settable).*/
+	TUint8 iThetaSupported;	/**< A Boolean value that indicates if Theta polar angle detection (tilt) is supported.*/
+	TUint8 iPhiSupported;	/**< A Boolean value that indicates if Phi polar angle detection (tilt) is supported.*/
+	TUint8 iAlphaSupported;	/**< A Boolean value that indicates if rotation of the pointing device along its main axis is supported.*/
+	TUint8 iPressureSupported; /**< A Boolean value that indicates if pressure applied on screen is supported.*/
+	TInt iProximityStep;    /**<proximity resolution, e.g. proximity readings change in steps of 1, 5, 10, ... */
+	TInt iMaxPressure;      /**< maximum pressure reading*/
+	TInt iPressureStep;     /**< pressure resolution, */	
+	TUint8 iMaxPointers;    /**< max number of multi-touch pointers supported by hardware/driver.*/ 
+	TUint8 iNumberOfPointers;/**< Number of pointers it supports (settable).*/
+	};
+
+
+/**
+@publishedPartner
+@released
+
+Package buffer for a TDigitiserInfoV01 object.
+
+@see TDigitiserInfoV01
+*/ 
+typedef TPckgBuf<TDigitiserInfoV01> TDigitiserInfoV01Buf;
+
+/**
+@publishedPartner
+@prototype
+
+Package buffer for a TDigitiserInfoV02 object.
+
+@see TDigitiserInfoV02
+*/ 
+typedef TPckgBuf<TDigitiserInfoV02> TDigitiserInfoV02Buf;
+
+/**
+@publishedPartner
+@released
+
+Encapsulates information about the mouse display characteristics.
+
+An object of this type is passed, via a TPckgBuf, to the HAL handler
+that deals with the HAL group function-id pair:
+- EHalGroupMouse, EMouseHalMouseInfo;
+
+@see EMouseHalMouseInfo
+@see TMouseHalFunction
+@see EHalGroupMouse
+@see TPckgBuf
+*/ 
+class TMouseInfoV01
+	{
+public:
+	TInt iMouseButtons;      /**< The number of mouse buttons.*/
+	TPoint iOffsetToDisplay; /**< The offset in pixels from the mouse usable area to the display area.*/
+	TSize iMouseAreaSize;    /**< The width/height of the display in pixels as used by the mouse.     */
+	};
+	
+	
+	
+	
+/**
+@publishedPartner
+@released
+
+Package buffer for a TMouseInfoV01 object.
+
+@see TMouseInfoV01
+*/ 
+typedef TPckgBuf<TMouseInfoV01> TMouseInfoV01Buf;
+
+
+
+/**
+@publishedPartner
+@released
+
+Encapsulates Variant specific information.
+
+An object of this type is passed, via a TPckgBuf, to the HAL handler
+that deals with the HAL group function-id pair:
+- EHalGroupVariant, EVariantHalVariantInfo;
+
+@see EVariantHalVariantInfo
+@see TVariantHalFunction
+@see EHalGroupVariant
+@see TPckgBuf
+*/ 
+class TVariantInfoV01
+	{
+public:
+    /**
+    The ROM version.
+    */
+	TVersion iRomVersion;
+	
+	/**
+	The Id that uniquely identifies the device.
+	*/
+	SInt64 iMachineUniqueId;
+	
+	/**
+	The bits that represent the LED capabilities.
+	
+	NB capabilities in this context does not mean security capabilities.
+	*/
+    TUint iLedCapabilities;
+    
+    /**
+    The processor clock speed.
+    */
+    TInt iProcessorClockInKHz;
+    
+    /**
+    The speed factor. 
+    */
+    TInt iSpeedFactor;
+    };
+    
+    
+    
+    
+/**
+@publishedPartner
+@released
+
+Package buffer for a TVariantInfoV01 object.
+
+@see TVariantInfoV01
+*/ 
+typedef TPckgBuf<TVariantInfoV01> TVariantInfoV01Buf;
+
+
+
+
+/**
+@publishedPartner
+@deprecated Use HAL::Get() from the HAL library instead with attributes ESystemStartupReason.
+
+The reason that the device last reset
+
+Note that not all reasons can occur on all devices.
+*/
+enum TMachineStartupType
+	{
+	EStartupCold,EStartupColdReset,EStartupNewOs,
+	EStartupPowerFail,EStartupWarmReset,EStartupKernelFault,
+	EStartupSafeReset
+	};
+
+
+
+
+/**
+@publishedPartner
+@deprecated Use HAL::Get() from the HAL library instead with attributes  EPen or EMouse.
+
+The XY input method supported
+*/
+enum TXYInputType
+	{
+	EXYInputNone,
+	EXYInputPointer,
+	EXYInputMouse,
+	EXYInputDeltaMouse
+	};
+
+
+
+/**
+@publishedPartner
+@deprecated Use HAL::Get() from the HAL library instead.
+
+Miscellaneous machine info.
+*/
+class TMachineInfoV1
+	{
+public:
+	TVersion iRomVersion;
+	TXYInputType iXYInputType;
+	TBool iKeyboardPresent;
+	TBool iBacklightPresent;
+    TSize iDisplaySizeInPixels;
+    TSize iXYInputSizeInPixels;
+    TSize iPhysicalScreenSize;
+	TPoint iOffsetToDisplayInPixels;
+	TInt iKeyboardId;
+	TInt iDisplayId;
+	SInt64 iMachineUniqueId;
+    TUint iLedCapabilities;
+    TInt iProcessorClockInKHz;
+    TInt iSpeedFactor;
+    TInt iMaximumDisplayColors;
+	};
+/**
+@publishedPartner
+@deprecated
+*/
+typedef TPckgBuf<TMachineInfoV1> TMachineInfoV1Buf;
+
+
+
+
+/**
+@publishedPartner
+@deprecated Use HAL::Get() from the HAL library instead with attributes ELanguageIndex or EKeyboardIndex.
+
+Miscellaneous locale info.
+*/
+class TMachineInfoV2 : public TMachineInfoV1
+	{
+public:
+	TInt iLanguageIndex;
+    TInt iKeyboardIndex;
+    };
+/**
+@publishedPartner
+@deprecated
+*/
+typedef TPckgBuf<TMachineInfoV2> TMachineInfoV2Buf;
+
+
+
+
+/**
+@publishedPartner
+@deprecated Use HAL::Get() from the HAL library instead with attributes EMemoryRAM, EMemoryRAMFree or EMemoryROM.
+
+Miscellaneous memory info.
+*/ 
+class TMemoryInfoV1
+    {
+public:
+    TInt iTotalRamInBytes;
+    TInt iTotalRomInBytes;
+    TInt iMaxFreeRamInBytes;
+    TInt iFreeRamInBytes;
+    TInt iInternalDiskRamInBytes;
+    TBool iRomIsReprogrammable;
+    };
+/**
+@publishedPartner
+@deprecated
+*/
+typedef TPckgBuf<TMemoryInfoV1> TMemoryInfoV1Buf;
+
+
+
+
+/**
+@publishedPartner
+@deprecated No replacement.
+
+Miscellaneous ROM info.
+*/ 
+class TRomInfoEntryV1
+	{
+public:
+    enum TRomTypeV1
+    	{
+    	ERomTypeRom=0,
+    	ERomTypeFlash=1
+    	};
+	TInt iSize;		    // size of ROM in bytes, 0=no ROM present
+	TInt iWidth;		// bus width in bits
+	TInt iSpeed;		// number of wait states
+	TRomTypeV1 iType;	// 0=ROM, 1=FLASH
+	};
+
+
+
+
+/**
+@publishedPartner
+@deprecated No replacement.
+
+Miscellaneous ROM info.
+*/ 
+class TRomInfoV1
+	{
+public:
+	TRomInfoEntryV1	iEntry[KMaxRomDevices];
+	};
+/**
+@publishedPartner
+@deprecated
+*/
+typedef TPckgBuf<TRomInfoV1> TRomInfoV1Buf;
+
+/**
+@publishedPartner
+@released
+*/
+const TUint KRuggedFileSystem=0x01;
+
+/**
+@publishedPartner
+@released
+*/
+class TDriveInfoV1
+    {
+public:
+	TInt iTotalSupportedDrives;
+	TInfoName iDriveName[KMaxLocalDrives];
+	TInt iTotalSockets;
+	TInfoName iSocketName[KMaxPBusSockets];
+	TInt iRuggedFileSystem;
+	TUint iRegisteredDriveBitmask;
+	};
+/**
+@publishedPartner
+@released
+*/
+typedef TPckgBuf<TDriveInfoV1> TDriveInfoV1Buf;
+
+#if defined(_UNICODE) && !defined(__KERNEL_MODE__)
+/**
+@publishedPartner
+@released
+*/
+class TDriveInfoV18
+    {
+public:
+	TInt iTotalSupportedDrives;
+	TBuf8<KMaxInfoName> iDriveName[KMaxLocalDrives]; //TInfoName
+	TInt iTotalSockets;
+	TBuf8<KMaxInfoName> iSocketName[KMaxPBusSockets]; //TInfoName
+	TInt iRuggedFileSystem;
+	TUint iRegisteredDriveBitmask;
+	};
+/**
+@publishedPartner
+@released
+*/
+typedef TPckgBuf<TDriveInfoV18> TDriveInfoV1Buf8;
+#else
+typedef TDriveInfoV1 TDriveInfoV18;
+typedef TDriveInfoV1Buf TDriveInfoV1Buf8;
+#endif
+
+/**
+@publishedPartner
+@released
+*/
+class TExcInfo
+	{
+public:
+	TAny *iCodeAddress;
+	TAny *iDataAddress;
+	TInt iExtraData;
+	};
+
+#ifndef __KERNEL_MODE__
+#include <e32std.h>
+
+
+
+
+/**
+@publishedPartner
+@released
+
+A set of user side utility functions for acessing hardware related
+information.
+
+Four of these functions are DEPRECATED and should NOT be used; some of
+these functions have replacements, but others do not; see the description of
+the individual functions.
+
+The following functions are not deprecated, but are only used by Symbian
+OS as part of its internal implementation:
+-  UserHal::FaultReason()
+-  UserHal::ExceptionId()
+-  UserHal::ExceptionInfo()
+-  UserHal::PageSizeInBytes()
+-  UserHal::TickPeriod()
+-  UserHal::DriveInfo()
+-  UserHal::SwitchOff()
+-  UserHal::SetXYInputCalibration()
+-  UserHal::CalibrationPoints()
+-  UserHal::SaveXYInputCalibration()
+-  UserHal::RestoreXYInputCalibration()
+*/
+class UserHal
+	{
+public:
+	// kernel group
+	IMPORT_C static TInt MemoryInfo(TDes8& anInfo);
+	IMPORT_C static TInt RomInfo(TDes8& anInfo);
+	IMPORT_C static TInt StartupReason(TMachineStartupType& aReason);
+	IMPORT_C static TInt FaultReason(TInt &aReason);
+	IMPORT_C static TInt ExceptionId(TInt &anId);
+	IMPORT_C static TInt ExceptionInfo(TExcInfo &aInfo);
+	IMPORT_C static TInt PageSizeInBytes(TInt& aSize);
+
+	// variant group
+	IMPORT_C static TInt MachineInfo(TDes8& anInfo);
+	IMPORT_C static TInt TickPeriod(TTimeIntervalMicroSeconds32& aPeriod);
+
+	// media group
+	IMPORT_C static TInt DriveInfo(TDes8& anInfo);
+
+	// power group
+   	IMPORT_C static TInt SwitchOff();
+
+	// digitiser group
+	IMPORT_C static TInt SetXYInputCalibration(const TDigitizerCalibration& aCalibration);
+	IMPORT_C static TInt CalibrationPoints(TDigitizerCalibration& aCalibration);
+	IMPORT_C static TInt SaveXYInputCalibration();
+	IMPORT_C static TInt RestoreXYInputCalibration(TDigitizerCalibrationType aType);
+	};
+#endif
+#endif
+