williamr@2: // Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2: // All rights reserved.
williamr@2: // This component and the accompanying materials are made available
williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2: // which accompanies this distribution, and is available
williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2: //
williamr@2: // Initial Contributors:
williamr@2: // Nokia Corporation - initial contribution.
williamr@2: //
williamr@2: // Contributors:
williamr@2: //
williamr@2: // Description:
williamr@2: // hal\inc\hal_data.h
williamr@2: // 
williamr@2: //
williamr@2: 
williamr@2: #ifndef __HAL_DATA_H__
williamr@2: #define __HAL_DATA_H__
williamr@2: 
williamr@2: #define bitmask enum
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: class HALData
williamr@2: /**
williamr@2: @publishedPartner
williamr@2: @released
williamr@2: 
williamr@2: Sets of attributes and values used by HAL functions.
williamr@2: */
williamr@2: 	{
williamr@2: public:
williamr@2:     /**
williamr@2:     A set of enumerators that identifies hardware attributes.
williamr@2:     The enumerators are passed to HAL::Get() and HAL::Set().
williamr@2:     
williamr@2:     They are also used by the HAL accessor functions.
williamr@2:     
williamr@2:     @see HAL::Get()
williamr@2:     @see HAL::Set()
williamr@2:     */
williamr@2: 	enum TAttribute
williamr@2: 		{
williamr@2: 		/**
williamr@2: 		Identifies the manufacturer of a device.
williamr@2:         If this is not enumerated in TManufacturer, then the manufacturer must
williamr@2:         obtain a value from the Symbian registry.
williamr@2:         
williamr@2:         @see HALData::TManufacturer
williamr@2: 		*/
williamr@2: 		EManufacturer,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The device specific hardware version number, as defined by
williamr@2: 		the device manufacturer.
williamr@2: 		*/
williamr@2: 		EManufacturerHardwareRev,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The device specific version number, as defined by
williamr@2: 		the device manufacturer.
williamr@2: 		*/
williamr@2: 		EManufacturerSoftwareRev,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The device specific software version number, as defined by
williamr@2: 		the device manufacturer.
williamr@2: 		*/
williamr@2: 		EManufacturerSoftwareBuild,
williamr@2: 
williamr@2: 		
williamr@2: 		/**
williamr@2: 		This is device specific model number, as defined by
williamr@2: 		the device manufacturer.
williamr@2: 		*/
williamr@2: 		EModel,
williamr@2: 		
williamr@2: 				
williamr@2: 		/**
williamr@2: 		This is the device specific UID, It is unique to the class /model
williamr@2: 		of device. A value must be obtained from Symbian's UID registry for
williamr@2: 		this attribute.
williamr@2: 		*/
williamr@2: 		EMachineUid,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The Symbian OS specified device family identifier.
williamr@2: 		If the device family is not one of those enumerated by TDeviceFamily,
williamr@2: 		then the licensee must obtain a UID from Symbian for this attribute.
williamr@2: 		
williamr@2: 		@see HALData::TDeviceFamily
williamr@2: 		*/
williamr@2: 		EDeviceFamily,
williamr@2: 
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The Symbian OS specified device family version
williamr@2: 		*/
williamr@2: 		EDeviceFamilyRev,
williamr@2: 
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The CPU architecture used by this device. The values are enumerated
williamr@2: 		by TCPU.
williamr@2: 		
williamr@2: 		@see HALData::TCPU
williamr@2: 		*/
williamr@2: 		ECPU,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		A revision number for the CPU architecture.
williamr@2: 		*/
williamr@2: 		ECPUArch,
williamr@2: 
williamr@2: 		
williamr@2: 		/**
williamr@2: 		This is the default ABI used by CPU for user applications.
williamr@2: 		The values are enumerated by HALData::TCPUABI.
williamr@2: 		*/
williamr@2: 		ECPUABI,
williamr@2: 
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The processor speed in KHz.
williamr@2: 		*/
williamr@2: 		ECPUSpeed,
williamr@2: 
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The reason for most recent system boot.
williamr@2:         This is dynamic and readonly; the values are enumerated by
williamr@2:         TSystemStartupReason.
williamr@2: 
williamr@2: 		@see HALData::TSystemStartupReason
williamr@2: 		*/
williamr@2: 		ESystemStartupReason,
williamr@2: 
williamr@2: 		
williamr@2: 		/**
williamr@2: 		This is the last exception code, in the case of system reboot.
williamr@2: 		This is dynamic and readonly.
williamr@2: 		*/
williamr@2: 		ESystemException,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The time between system ticks, in microseconds.
williamr@2: 		*/
williamr@2: 		ESystemTickPeriod,
williamr@2: 		
williamr@2: 		
williamr@2: 		/** 
williamr@2: 		The total system RAM, in bytes.
williamr@2: 		*/
williamr@2: 		EMemoryRAM,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The currently free system RAM.
williamr@2: 		
williamr@2: 		This is dynamic and readonly.
williamr@2: 		*/
williamr@2: 		EMemoryRAMFree,
williamr@2: 
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The total System ROM, in bytes.
williamr@2: 		*/
williamr@2: 		EMemoryROM,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The MMU page size in bytes.
williamr@2: 		*/
williamr@2: 		EMemoryPageSize,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Indicates the state of the power supply.
williamr@2:         
williamr@2:         It has the values:
williamr@2:         1 = Power is good (i.e. external power is available,
williamr@2:         or the 'power' battery is >= low);
williamr@2:         0 = otherwise.
williamr@2:         
williamr@2:         This is dynamic and readonly.
williamr@2: 		*/
williamr@2: 		EPowerGood,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2:         The System (or 'Main') battery power level.
williamr@2:         The allowable values are enumerated by TPowerBatteryStatus
williamr@2: 
williamr@2: 		This is dynamic and readonly,
williamr@2: 		
williamr@2: 		@see HALData::TPowerBatteryStatus
williamr@2: 		*/
williamr@2: 		EPowerBatteryStatus,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Indicates whether a backup power supply is available.
williamr@2:         It has the values:
williamr@2:         0 = the device does not support (or need) a backup battery source;
williamr@2:         1 = a backup batter source is present.
williamr@2: 		This is dynamic and readonly
williamr@2: 		*/
williamr@2: 		EPowerBackup,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2:         The power level for backup power
williamr@2:         
williamr@2:         It has the values enumerated by TPowerBackupStatus.
williamr@2: 
williamr@2: 		This is dynamic and readonly.
williamr@2: 		
williamr@2: 		@see HALData::TPowerBackupStatus
williamr@2: 		*/
williamr@2: 		EPowerBackupStatus,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Indicates the state of the external power.
williamr@2: 
williamr@2: 		It has the values:
williamr@2: 		0 = external power is not in use;
williamr@2: 		1 = external power is in use.
williamr@2: 		        
williamr@2:         This is dynamic and readonly.
williamr@2: 		*/
williamr@2: 		EPowerExternal,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		A bitmask that describes the available keyboard types (it may support
williamr@2: 		more than one).
williamr@2: 
williamr@2:         @see HALData::TKeyboard
williamr@2: 		*/
williamr@2: 		EKeyboard,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		*/
williamr@2: 		EKeyboardDeviceKeys,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		*/
williamr@2: 		EKeyboardAppKeys,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Indicates whether the device can produce a click sound for
williamr@2: 		each keypress.
williamr@2: 		
williamr@2: 		It has the values:
williamr@2: 		0 = the device cannot produce a click sound for each keypress;
williamr@2: 		1 = the device can produce a click sound.
williamr@2: 		*/
williamr@2: 		EKeyboardClick,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The state of keyboard clicking.
williamr@2: 
williamr@2:         It has the values:
williamr@2:         0 = key click disabled;
williamr@2:         1 = key click enabled.
williamr@2:         
williamr@2: 		This is dynamic and writeable.
williamr@2: 
williamr@2: 		@capability WriteDeviceData needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EKeyboardClickState,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The keyboard click volume level.
williamr@2: 
williamr@2: 		It can take a value in the range 0 to EkeyboardClickVolumeMax.
williamr@2:         
williamr@2:         This is dynamic and writeable.
williamr@2:         
williamr@2:         @see HALData::EkeyboardClickVolumeMax
williamr@2: 
williamr@2: 		@capability WriteDeviceData needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EKeyboardClickVolume,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The maximum value for EKeyboardClickVolume.
williamr@2: 		
williamr@2: 		@see HALData::EkeyboardClickVolume
williamr@2: 		*/
williamr@2: 		EKeyboardClickVolumeMax,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The screen horizontal dimension in pixels.
williamr@2: 		*/
williamr@2: 		EDisplayXPixels,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The screen vertical dimension in pixels.
williamr@2: 		*/
williamr@2: 		EDisplayYPixels,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The screen horizontal dimension in twips.
williamr@2: 		*/
williamr@2: 		EDisplayXTwips,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The screen vertical dimension in twips.
williamr@2: 		*/
williamr@2: 		EDisplayYTwips,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The number of hues (colors or shades of grey) displayable on
williamr@2: 		the screen.
williamr@2: 		*/
williamr@2: 		EDisplayColors,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The state of the display.
williamr@2: 		
williamr@2: 		It has the values:
williamr@2: 		0 = screen is turned off;
williamr@2: 		1 = screen is on.
williamr@2: 		
williamr@2: 		This is dynamic and writeable.
williamr@2: 
williamr@2: 		@capability PowerMgmt needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EDisplayState,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The screen contrast level.
williamr@2:    		It can take a value in the range 0 to EDisplayContrastMax.
williamr@2:         
williamr@2:         This is dynamic and writeable
williamr@2: 
williamr@2: 		@see HALData::EDisplayContrastMax
williamr@2: 
williamr@2: 		@capability WriteDeviceData needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EDisplayContrast,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The maximum value for EDisplayContrast
williamr@2: 		
williamr@2: 		@see HALData::EDisplayContrast
williamr@2: 		*/
williamr@2: 		EDisplayContrastMax,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Indicates whether there is a backlight on the device.
williamr@2: 
williamr@2: 		It has the values:
williamr@2: 		0 = there is no screen backlight;
williamr@2: 		1 = a screen backlight is present.
williamr@2: 		*/
williamr@2: 		EBacklight,
williamr@2: 			
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The current status of the backlight.
williamr@2: 
williamr@2: 		It has the values:
williamr@2: 		0 = off;
williamr@2: 		1 = on.
williamr@2:         
williamr@2:         This is dynamic and writeable.
williamr@2: 
williamr@2: 		@capability WriteDeviceData needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EBacklightState,
williamr@2: 			
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Indicates whether a pen or digitizer is available for input.
williamr@2: 
williamr@2: 		It has the values:
williamr@2: 		0 = a pen/digitizer is not available for input;
williamr@2: 		1 = a pen/digitizeris present.
williamr@2: 		*/
williamr@2: 		EPen,
williamr@2: 			
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The pen/digitizer horizontal resolution, in pixels.
williamr@2: 		*/
williamr@2: 		EPenX,
williamr@2: 			
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The is the pen/digitizer vertical resolution, in pixels.
williamr@2: 		*/
williamr@2: 		EPenY,
williamr@2: 			
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Indicates whether a pen tap will turn the display on.
williamr@2: 
williamr@2:         It has the values:
williamr@2:         0 = a pen tap has no effect;
williamr@2:         1 = a pent tap or press enables the display.
williamr@2:         
williamr@2:         The is dynamic and writeable
williamr@2: 
williamr@2: 		@capability WriteDeviceData needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EPenDisplayOn,
williamr@2: 			
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Indicates whether the device can produce a click sound for
williamr@2: 		each pen tap.
williamr@2: 
williamr@2: 		It has the values:
williamr@2:         0 = the device cannot produce a click sound
williamr@2:         1 = production of a click sound is supported by the device.
williamr@2: 		*/
williamr@2: 		EPenClick,
williamr@2: 			
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The state of pen clicking.
williamr@2: 		
williamr@2: 		It has the values:
williamr@2: 		0 = pen clicking is disabled;
williamr@2: 		1 = pen clicking is enabled.
williamr@2: 		
williamr@2:         This is dynamic and writable.
williamr@2: 
williamr@2: 		@capability WriteDeviceData needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EPenClickState,
williamr@2: 			
williamr@2: 		
williamr@2: 		/**
williamr@2: 		This pen click volume level.
williamr@2:         It can take a value in the range 0 to EPenClickVolumeMax.
williamr@2:         
williamr@2:         This value is dynamic and writable.
williamr@2:         
williamr@2:         @see HALData::EPenClickVolumeMax
williamr@2: 
williamr@2: 		@capability WriteDeviceData needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EPenClickVolume,
williamr@2: 			
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The maximum value for EPenClickVolume.
williamr@2: 		
williamr@2: 		@see HALData::EPenClickVolume
williamr@2: 		*/
williamr@2: 		EPenClickVolumeMax,
williamr@2: 			
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Indicates whether a mouse is available for input.
williamr@2: 		
williamr@2: 		It has the values:
williamr@2: 		0 = there is no mouse availablea pen/digitizeris present;
williamr@2: 		1 = a mouse is available for input.
williamr@2: 		*/
williamr@2: 		EMouse,
williamr@2: 			
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The mouse horizontal resolution, in pixels.
williamr@2: 		*/
williamr@2: 		EMouseX,
williamr@2: 			
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The mouse vertical resolution, in pixels.
williamr@2: 		*/
williamr@2: 		EMouseY,
williamr@2: 			
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Describes the mouse cursor visibility.
williamr@2: 
williamr@2:         The value is enumerated by TMouseState.
williamr@2:         
williamr@2: 		This is dynamic and writable.
williamr@2: 		@see HALData::TMouseState
williamr@2: 		
williamr@2: 		@capability MultimediaDD needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EMouseState,
williamr@2: 			
williamr@2: 		
williamr@2: 		/**
williamr@2:         Reserved for future use.
williamr@2: 		@capability MultimediaDD needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EMouseSpeed,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Reserved for future use.
williamr@2: 		@capability MultimediaDD needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EMouseAcceleration,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The number of buttons on the mouse.
williamr@2: 		*/
williamr@2: 		EMouseButtons,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2:         A bitmask defining the state of each button .
williamr@2: 
williamr@2:         For each bit, it has values:
williamr@2:         0 = up;
williamr@2:         1 = down.
williamr@2:         
williamr@2: 		This is dynamic and read only.
williamr@2: 		*/
williamr@2: 		EMouseButtonState,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Defines the state of the case.
williamr@2: 		
williamr@2:         It has the values:
williamr@2:         0 = case closed;
williamr@2:         1 = case opened.
williamr@2:         
williamr@2:         This is dynamic and read only.
williamr@2: 		*/
williamr@2: 		ECaseState,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Indicates whether the device has a case switch, that actions when
williamr@2: 		the case opens and closes.
williamr@2: 		
williamr@2:         It has values:
williamr@2:         0 = no;
williamr@2:         1 = yes.
williamr@2: 		*/
williamr@2: 		ECaseSwitch,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Indicates whether the device is to switch on when case opens.
williamr@2: 		
williamr@2: 		It has the values:
williamr@2: 		0 = disable device switchon when the case opens;
williamr@2: 		1 = enable device  switchon when the case opens.
williamr@2:         
williamr@2:         This is dynamic and writeable.
williamr@2: 
williamr@2: 		@capability WriteDeviceData needed to Set this attribute
williamr@2: 		*/
williamr@2: 		ECaseSwitchDisplayOn,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2:         Indicates whether the device is to switch off when case close.
williamr@2: 
williamr@2: 		It has the values:
williamr@2: 		0 = disable device switchoff when the case closes;
williamr@2: 		1 = enable device switchoff when the case closes.
williamr@2:         
williamr@2:         This is dynamic and writeable.
williamr@2: 
williamr@2: 		@capability WriteDeviceData needed to Set this attribute
williamr@2: 		*/
williamr@2: 		ECaseSwitchDisplayOff,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The number of LEDs on the device.
williamr@2: 		*/
williamr@2: 		ELEDs,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2:         A bitmask defining the state of each LED.
williamr@2: 
williamr@2:         For each bit, it has values:
williamr@2:         0 = off;
williamr@2:         1 = on.
williamr@2: 		
williamr@2: 		This is dynamic and writeable.
williamr@2: 		*/
williamr@2: 		ELEDmask,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Indicates how the phone hardware is connected.
williamr@2: 		
williamr@2: 		It has the values:
williamr@2: 		0 = phone hardware is not permanently connected;
williamr@2: 		1 = phone hardware is permanently connected.
williamr@2: 		*/
williamr@2: 		EIntegratedPhone,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		@capability WriteDeviceData needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EDisplayBrightness,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		*/
williamr@2: 		EDisplayBrightnessMax,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Inidcates the state of the keyboard backlight.
williamr@2:         
williamr@2:         It has the values:
williamr@2:         0 = keyboard backlight is off;
williamr@2:         1 = keyboard backlight is on.
williamr@2: 
williamr@2: 		This is dynamic and writeable.
williamr@2: 
williamr@2: 		@capability PowerMgmt needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EKeyboardBacklightState,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Power supply to an accessory port.
williamr@2: 
williamr@2:         It has the values:
williamr@2:         0 = turn off power to an accessory port on the device;
williamr@2:         1 = turn on power.
williamr@2:         
williamr@2:         This is dynamic and writeable.
williamr@2: 
williamr@2: 		@capability PowerMgmt needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EAccessoryPower,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		A 2 decimal digit language index. 
williamr@2: 		
williamr@2: 		It is used as the two digit language number that is the suffix of
williamr@2: 		language resource DLLs, e.g ELOCL.01.
williamr@2: 
williamr@2: 		The locale with this language index is loaded the next time that
williamr@2: 		the device boots.
williamr@2: 
williamr@2:         This is dynamic and writeable.
williamr@2: 
williamr@2: 		@see TLanguage
williamr@2: 
williamr@2: 		@capability WriteDeviceData needed to Set this attribute
williamr@2: 		*/
williamr@2: 		ELanguageIndex,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		A 2 decimal digit (decimal) language keyboard index.
williamr@2: 		It is used as the two digit language number that is the suffix of
williamr@2: 		language resource DLLs, e.g. EKDATA.01.
williamr@2: 		
williamr@2: 		@see TLanguage
williamr@2: 
williamr@2: 		@capability WriteDeviceData needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EKeyboardIndex,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The maximum allowable size of RAM drive, in bytes.
williamr@2: 		*/
williamr@2: 		EMaxRAMDriveSize,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Indicates the state of the keyboard.
williamr@2: 		
williamr@2: 		It has the values:
williamr@2: 		0 = keyboard is disabled;
williamr@2: 		1 = Keyboard is enabled.
williamr@2:         
williamr@2:         This is dynamic and writeable.
williamr@2: 
williamr@2: 		@capability PowerMgmt needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EKeyboardState,
williamr@2: 	
williamr@2: 		/**
williamr@2:   		Defines the system drive & custom resource drive. 
williamr@2:         Legacy attribute which is no longer supported.
williamr@2:   
williamr@2:   		@deprecated Attribute is no longer the primary mechanism to define the 
williamr@2:   		System Drive or the Custom Resource Drive.
williamr@2:         @see RFs::GetSystemDrive.
williamr@2:         @see BaflUtils::NearestLanguageFile
williamr@2:         @see HALData::ECustomResourceDrive
williamr@2:   		*/
williamr@2: 		ESystemDrive,	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Indicates the state of the pen or digitiser.
williamr@2: 
williamr@2: 		It has the values:
williamr@2: 		1 = pen/digitiser is enabled;
williamr@2: 		0 = pen/digitiser is disabled.
williamr@2: 		
williamr@2:         This is dynamic and writeable.
williamr@2: 
williamr@2: 		@capability PowerMgmt needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EPenState,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		On input: aInOut contains the mode number.
williamr@2:         On output: aInOut contains: 0 = display is colour;
williamr@2:                                     1 = display is black & white.
williamr@2:         
williamr@2:         aInOut is the 3rd parameter passed to accessor functions
williamr@2:         for derived attributes.
williamr@2: 		*/
williamr@2: 		EDisplayIsMono,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		On input: aInOut contains the mode number;
williamr@2:         On output, aInOut contains: 0 = display is not palettised;
williamr@2:                                     1 = display is palettised.
williamr@2:         
williamr@2:         aInOut is the 3rd parameter passed to accessor functions
williamr@2:         for derived attributes.
williamr@2:   		*/
williamr@2: 		EDisplayIsPalettized,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The display bits per pixel.
williamr@2: 		
williamr@2:         On input, aInOut contains the mode number.
williamr@2:         On output, aInOut contains the bits per pixel for that mode.
williamr@2: 
williamr@2:         aInOut is the 3rd parameter passed to accessor functions
williamr@2:         for derived attributes.
williamr@2:         
williamr@2:         It is read only data.
williamr@2: 		*/
williamr@2: 		EDisplayBitsPerPixel,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The number of display modes available.
williamr@2: 		*/
williamr@2: 		EDisplayNumModes,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The address of the display memory.
williamr@2: 		*/
williamr@2: 		EDisplayMemoryAddress,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The offset, in bytes, to the pixel area of the screen from the start of screen memory.
williamr@2: 		
williamr@2: 		This is used to account for the fact that the palette is sometimes at
williamr@2: 		the beginning of the display memory.
williamr@2: 		
williamr@2:         On input, aInOut contains the mode number.
williamr@2:         On output, aInOut contains the offset to the first pixel for that mode.
williamr@2: 
williamr@2:         aInOut is the 3rd parameter passed to accessor functions
williamr@2:         for derived attributes.
williamr@2: 		*/
williamr@2: 		EDisplayOffsetToFirstPixel,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The separation, in bytes, of successive lines of display in memory.
williamr@2:         
williamr@2:         On input, aInOut contains the mode number.
williamr@2:         On output, aInOut contains the display offset between lines.
williamr@2: 
williamr@2:         aInOut is the 3rd parameter passed to accessor functions
williamr@2:         for derived attributes.
williamr@2: 		*/
williamr@2: 		EDisplayOffsetBetweenLines,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		@capability MultimediaDD needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EDisplayPaletteEntry,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		It has the values:
williamr@2: 		1 = order of pixels in display is RGB;
williamr@2: 		0 = otherwise.
williamr@2: 		*/
williamr@2: 		EDisplayIsPixelOrderRGB,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		It has the values:
williamr@2: 		1 = pixel order is landscape;
williamr@2: 		0 = pixel order is portrait.
williamr@2: 		*/
williamr@2: 		EDisplayIsPixelOrderLandscape,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		This indicates or sets the current display mode where
williamr@2: 		EDisplayNumModes-1 is the maximum value for the display mode.
williamr@2: 		The properties of a particular display mode are entirely defined by
williamr@2: 		the base port software associated with the hardware upon which the OS
williamr@2: 		is running.
williamr@2: 
williamr@2: 		@capability MultimediaDD needed to Set this attribute
williamr@2: 		*/
williamr@2: 		EDisplayMode,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		If the target hardware upon which Symbian OS is running has switches
williamr@2: 		which can be read by the base port software, this interface allows
williamr@2: 		the current status of those switches to be read. 
williamr@2: 		*/
williamr@2: 		ESwitches,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The port number of the debug port.
williamr@2: 		*/
williamr@2: 		EDebugPort,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The language code of the Locale which was loaded at device boot time.
williamr@2: 
williamr@2:         This is dynamic and writeable.
williamr@2: 
williamr@2: 		@see ELanguageIndex
williamr@2: 
williamr@2: 		@capability WriteSystemData needed to Set this attribute
williamr@2: 		*/
williamr@2: 		ELocaleLoaded,
williamr@2: 	
williamr@2: 		
williamr@2: 		/**
williamr@2: 		The drive number to use for storage of Clipboard data.
williamr@2: 		0 = Drive A, 1 = Drive B, etc...
williamr@2: 		*/
williamr@2: 		EClipboardDrive,
williamr@2: 	
williamr@2: 		/**
williamr@2: 		Custom restart
williamr@2: 		@capability PowerMgmt
williamr@2: 		*/
williamr@2: 		ECustomRestart,
williamr@2: 
williamr@2: 		/**
williamr@2: 		Custom restart reason
williamr@2: 		*/
williamr@2: 		ECustomRestartReason,
williamr@2: 
williamr@2: 		/**
williamr@2: 		The number of screens.
williamr@2: 		*/
williamr@2: 		EDisplayNumberOfScreens,
williamr@2: 
williamr@2: 		/**
williamr@2: 		The time between nanokernel ticks, in microseconds.
williamr@2: 		*/
williamr@2: 		ENanoTickPeriod,
williamr@2: 
williamr@2: 		/**
williamr@2: 		The frequency of the fast counter.
williamr@2: 		*/
williamr@2: 		EFastCounterFrequency,
williamr@2: 
williamr@2: 		/**
williamr@2: 		Indicates the whether the fast counter counts up or down.
williamr@2: 		*/
williamr@2: 		EFastCounterCountsUp,
williamr@2: 
williamr@2: 		/**
williamr@2: 		@prototype
williamr@2: 
williamr@2: 		Indicates whether a 3 dimensional pointing device is available for input.
williamr@2: 
williamr@2: 		It has the values:
williamr@2: 		0 = a 3D pointer is not available for input;
williamr@2: 		1 = a 3D pointer is present.
williamr@2: 		*/
williamr@2: 		EPointer3D,
williamr@2: 
williamr@2: 		/**
williamr@2: 		@prototype
williamr@2: 
williamr@2: 		The 3D pointing device detection range, in units of distance above the screen.
williamr@2: 
williamr@2: 		This is dynamic and writeable.
williamr@2: 		*/
williamr@2: 		EPointer3DZ,
williamr@2: 
williamr@2: 		/**
williamr@2: 		@prototype
williamr@2: 
williamr@2: 		Indicates whether a 3 dimensional pointing device supports Theta polar angle reading.
williamr@2: 
williamr@2: 		It has the values:
williamr@2: 		0 = a 3D pointer does not support Theta polar angle reading;
williamr@2: 		1 = a 3D pointer supports Theta polar angle reading.
williamr@2: 		*/
williamr@2: 		EPointer3DThetaSupported,
williamr@2: 
williamr@2: 		/**
williamr@2: 		@prototype
williamr@2: 
williamr@2: 		Indicates whether a 3 dimensional pointing device supports Phi polar angle reading.
williamr@2: 
williamr@2: 		It has the values:
williamr@2: 		0 = a 3D pointer does not support Phi polar angle reading;
williamr@2: 		1 = a 3D pointer supports Phi polar angle reading.
williamr@2: 		*/
williamr@2: 		EPointer3DPhiSupported,
williamr@2: 
williamr@2: 		/**
williamr@2: 		@prototype
williamr@2: 
williamr@2: 		Indicates whether a 3 dimensional pointing device supports rotation angle along its main axis reading.
williamr@2: 
williamr@2: 		It has the values:
williamr@2: 		0 = a 3D pointer does not support alpha (rotation) reading;
williamr@2: 		1 = a 3D pointer supports alpha (rotation) reading.
williamr@2: 		*/
williamr@2: 		EPointer3DRotationSupported,
williamr@2: 
williamr@2: 		/**
williamr@2: 		@prototype
williamr@2: 
williamr@2: 		Indicates whether a 3 dimensional pointing device supports readings of pressure applied on screen.
williamr@2: 
williamr@2: 		It has the values:
williamr@2: 		0 = a 3D pointer does not support pressure reading;
williamr@2: 		1 = a 3D pointer supports pressure reading.
williamr@2: 		*/
williamr@2: 		EPointer3DPressureSupported,
williamr@2: 
williamr@2: 		/**
williamr@2: 		Indicates whether hardware floating point is available, and what type.
williamr@2: 		
williamr@2: 		If no hardware floating point is available, reading this attribute will return KErrNotSupported.
williamr@2: 		If hardware floating point is available, reading this attribute will return KErrNone and the type
williamr@2: 		available. These types are specified in TFloatingPointType.
williamr@2: 		*/
williamr@2: 		EHardwareFloatingPoint,
williamr@2: 
williamr@2: 		/**
williamr@2: 		The offset between secure and nonsecure clocks. If this attribute is undefined no secure clock
williamr@2: 		will be available.
williamr@2: 		*/
williamr@2: 		ETimeNonSecureOffset,
williamr@2: 
williamr@2: 		/**
williamr@2: 		Persist startup mode.
williamr@2: 
williamr@2: 		If no variant specific implementation exists, the startup mode will be stored in platform
williamr@2: 		specific values.hda file.
williamr@2: 		*/
williamr@2: 		EPersistStartupModeKernel,
williamr@2: 
williamr@2: 		/**
williamr@2: 		Maximum restart reasons.
williamr@2: 
williamr@2: 		Returns the maximum number of values that can be used to store the restart reason required for a custom restart.
williamr@2: 		*/
williamr@2: 		EMaximumCustomRestartReasons,
williamr@2: 
williamr@2: 		/**
williamr@2: 		Maximum startup modes.
williamr@2: 		
williamr@2: 		Returns the maximum number of values that can be used to store the startup mode requires for a system restart.
williamr@2: 		*/
williamr@2: 		EMaximumRestartStartupModes,
williamr@2: 		
williamr@2: 		/**
williamr@2: 		Defines the custom resource drive.
williamr@2: 		
williamr@2: 		This drive attribute should be set if an aditional drive is required for use in the search 
williamr@2: 		algorithm for language files.  
williamr@2:         
williamr@2:         @see TDriveNumber
williamr@2: 		@see BaflUtils::NearestLanguageFile for how this attribute is used
williamr@2: 		@capability WriteDeviceData needed to Set this attribute
williamr@2: 		*/
williamr@2: 		ECustomResourceDrive,
williamr@2: 
williamr@2: 		/**
williamr@2: 		The number of HAL attributes per screen.
williamr@2: 		
williamr@2: 		It is simply defined by its position in the enumeration.
williamr@2: 		*/
williamr@2: 		ENumHalAttributes
williamr@2: 		};
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:     /**
williamr@2:     Defines properties for the hardware attributes.
williamr@2:     
williamr@2:     @see HALData::TAttribute
williamr@2:     */
williamr@2: 	enum TAttributeProperty
williamr@2: 		{
williamr@2: 		/**
williamr@2: 		When set, means that an attribute is meaningful on this device.
williamr@2: 				
williamr@2: 		@see HAL::Get()
williamr@2: 		@see HAL::Set()
williamr@2: 		*/
williamr@2: 		EValid=0x1,
williamr@2: 		
williamr@2: 		
williamr@2: 		/**
williamr@2: 		When set, means that an attribute is modifiable.
williamr@2: 		A call to HAL::Set() for an attribute that does not have this property,
williamr@2: 		returns KErrNotSupported.
williamr@2: 		
williamr@2: 		@see HAL::Get()
williamr@2: 		@see HAL::Set()
williamr@2: 		*/
williamr@2: 		ESettable=0x2,
williamr@2: 		};
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:     /**
williamr@2:     UIDs for a defined set of device manufacturers.
williamr@2:     
williamr@2:     Note that any manufacturer not represented in this list must obtain
williamr@2:     a value from the Symbian registry.
williamr@2:     
williamr@2:     @see HALData::TAttribute
williamr@2:     */
williamr@2:     enum TManufacturer // UID for manufacturer
williamr@2: 		{
williamr@2: 		EManufacturer_Ericsson=0x00000000,
williamr@2: 		EManufacturer_Motorola=0x00000001,
williamr@2: 		EManufacturer_Nokia=0x00000002,
williamr@2: 		EManufacturer_Panasonic=0x00000003,
williamr@2: 		EManufacturer_Psion=0x00000004,
williamr@2: 		EManufacturer_Intel=0x00000005,
williamr@2: 		EManufacturer_Cogent=0x00000006,
williamr@2: 		EManufacturer_Cirrus=0x00000007,
williamr@2: 		EManufacturer_Linkup=0x00000008,
williamr@2: 		EManufacturer_TexasInstruments=0x00000009,
williamr@2: 		// New manufacturers must obtain an official UID to identify themselves
williamr@2: 		};
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:     /**
williamr@2: 	Defines the Symbian OS device families.
williamr@2: 	
williamr@2:     @see HALData::TAttribute
williamr@2:     */
williamr@2: 	enum TDeviceFamily
williamr@2: 		{
williamr@2: 		EDeviceFamily_Crystal,
williamr@2: 		EDeviceFamily_Pearl,
williamr@2: 		EDeviceFamily_Quartz,
williamr@2: 		};
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:     /**
williamr@2:     Defines the set of CPU architectures.
williamr@2:     
williamr@2:     @see HALData::TAttribute
williamr@2:     */
williamr@2: 	enum TCPU
williamr@2: 		{
williamr@2: 		ECPU_ARM,
williamr@2: 		ECPU_MCORE,
williamr@2: 		ECPU_X86,
williamr@2: 		};
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:     /**
williamr@2:     Defines the set of ABIs used by the CPU for user applications.
williamr@2:     
williamr@2:     @see HALData::TAttribute    
williamr@2:     */
williamr@2: 	enum TCPUABI
williamr@2: 		{
williamr@2: 		ECPUABI_ARM4,
williamr@2: 		ECPUABI_ARMI,
williamr@2: 		ECPUABI_THUMB,
williamr@2: 		ECPUABI_MCORE,
williamr@2: 		ECPUABI_MSVC,
williamr@2: 		ECPUABI_ARM5T,
williamr@2: 		ECPUABI_X86,
williamr@2: 		};
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:     /**
williamr@2:     Defines the set of reasons for a system boot.
williamr@2:     
williamr@2:     @see HALData::TAttribute
williamr@2:     */
williamr@2: 	enum TSystemStartupReason
williamr@2: 		{
williamr@2: 		ESystemStartupReason_Cold,
williamr@2: 		ESystemStartupReason_Warm,
williamr@2: 		ESystemStartupReason_Fault,
williamr@2: 		};
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:     /**
williamr@2:     Defines the set of available keyboard types.
williamr@2: 
williamr@2:     @see HALData::TAttribute
williamr@2:     */
williamr@2: 	bitmask TKeyboard
williamr@2: 		{
williamr@2: 		EKeyboard_Keypad=0x1,
williamr@2: 		EKeyboard_Full=0x2,
williamr@2: 		};
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:     /**
williamr@2:     Defines the mouse cursor visibility.
williamr@2:     
williamr@2:     @see HALData::TAttribute
williamr@2:     */
williamr@2: 	enum TMouseState
williamr@2: 		{
williamr@2: 		EMouseState_Invisible=0,
williamr@2: 		EMouseState_Visible=1,
williamr@2: 		};
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:     /**
williamr@2:     Defines a set of UIDs for specific devices, reference boards etc
williamr@2:     
williamr@2:     @see HALData::TAttribute
williamr@2:     */
williamr@2: 	enum TMachineUid
williamr@2: 		{
williamr@2: 		EMachineUid_Series5mx=0x1000118a,
williamr@2: 		EMachineUid_Brutus=0x10005f60,
williamr@2: 		EMachineUid_Cogent=0x10005f61,
williamr@2: 		EMachineUid_Win32Emulator=0x10005f62,
williamr@2: 		EMachineUid_WinC=0x10005f63,
williamr@2: 		EMachineUid_CL7211_Eval=0x1000604f,
williamr@2: 		EMachineUid_LinkUp=0x00000000,
williamr@2: 		EMachineUid_Assabet=0x100093f3,
williamr@2: 		EMachineUid_Zylonite=0x101f7f27,
williamr@2: 		EMachineUid_IQ80310=0x1000a681,
williamr@2: 		EMachineUid_Lubbock=0x101f7f26,
williamr@2: 		EMachineUid_Integrator=0x1000AAEA,
williamr@2: 		EMachineUid_Helen=0x101F3EE3,
williamr@2: 		EMachineUid_X86PC=0x100000ad,
williamr@2: 		EMachineUid_OmapH2=0x1020601C,
williamr@2: 		EMachineUid_OmapH4=0x102734E3,
williamr@2: 		};
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:     /**
williamr@2:     Defines power levels for the system (or 'Main') battery.
williamr@2:     
williamr@2:     @see HALData::TAttribute
williamr@2:     */
williamr@2: 	enum TPowerBatteryStatus
williamr@2: 		{
williamr@2: 		EPowerBatteryStatus_Zero,
williamr@2: 		EPowerBatteryStatus_Replace,
williamr@2: 		EPowerBatteryStatus_Low,
williamr@2: 		EPowerBatteryStatus_Good,
williamr@2: 		};
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:     /**
williamr@2:     Defines power levels for the backup power.
williamr@2: 
williamr@2:     @see HALData::TAttribute
williamr@2:     */
williamr@2: 	enum TPowerBackupStatus
williamr@2: 		{
williamr@2: 		EPowerBackupStatus_Zero,
williamr@2: 		EPowerBackupStatus_Replace,
williamr@2: 		EPowerBackupStatus_Low,
williamr@2: 		EPowerBackupStatus_Good,
williamr@2: 		};
williamr@2: 	};
williamr@2: 
williamr@2: #endif