epoc32/include/hal_data.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
     1 // Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 // hal\inc\hal_data.h
    15 // 
    16 //
    17 
    18 #ifndef __HAL_DATA_H__
    19 #define __HAL_DATA_H__
    20 
    21 #define bitmask enum
    22 
    23 
    24 
    25 
    26 class HALData
    27 /**
    28 @publishedPartner
    29 @released
    30 
    31 Sets of attributes and values used by HAL functions.
    32 */
    33 	{
    34 public:
    35     /**
    36     A set of enumerators that identifies hardware attributes.
    37     The enumerators are passed to HAL::Get() and HAL::Set().
    38     
    39     They are also used by the HAL accessor functions.
    40     
    41     @see HAL::Get()
    42     @see HAL::Set()
    43     */
    44 	enum TAttribute
    45 		{
    46 		/**
    47 		Identifies the manufacturer of a device.
    48         If this is not enumerated in TManufacturer, then the manufacturer must
    49         obtain a value from the Symbian registry.
    50         
    51         @see HALData::TManufacturer
    52 		*/
    53 		EManufacturer,
    54 		
    55 		
    56 		/**
    57 		The device specific hardware version number, as defined by
    58 		the device manufacturer.
    59 		*/
    60 		EManufacturerHardwareRev,
    61 		
    62 		
    63 		/**
    64 		The device specific version number, as defined by
    65 		the device manufacturer.
    66 		*/
    67 		EManufacturerSoftwareRev,
    68 		
    69 		
    70 		/**
    71 		The device specific software version number, as defined by
    72 		the device manufacturer.
    73 		*/
    74 		EManufacturerSoftwareBuild,
    75 
    76 		
    77 		/**
    78 		This is device specific model number, as defined by
    79 		the device manufacturer.
    80 		*/
    81 		EModel,
    82 		
    83 				
    84 		/**
    85 		This is the device specific UID, It is unique to the class /model
    86 		of device. A value must be obtained from Symbian's UID registry for
    87 		this attribute.
    88 		*/
    89 		EMachineUid,
    90 		
    91 		
    92 		/**
    93 		The Symbian OS specified device family identifier.
    94 		If the device family is not one of those enumerated by TDeviceFamily,
    95 		then the licensee must obtain a UID from Symbian for this attribute.
    96 		
    97 		@see HALData::TDeviceFamily
    98 		*/
    99 		EDeviceFamily,
   100 
   101 		
   102 		/**
   103 		The Symbian OS specified device family version
   104 		*/
   105 		EDeviceFamilyRev,
   106 
   107 		
   108 		/**
   109 		The CPU architecture used by this device. The values are enumerated
   110 		by TCPU.
   111 		
   112 		@see HALData::TCPU
   113 		*/
   114 		ECPU,
   115 		
   116 		
   117 		/**
   118 		A revision number for the CPU architecture.
   119 		*/
   120 		ECPUArch,
   121 
   122 		
   123 		/**
   124 		This is the default ABI used by CPU for user applications.
   125 		The values are enumerated by HALData::TCPUABI.
   126 		*/
   127 		ECPUABI,
   128 
   129 		
   130 		/**
   131 		The processor speed in KHz.
   132 		*/
   133 		ECPUSpeed,
   134 
   135 		
   136 		/**
   137 		The reason for most recent system boot.
   138         This is dynamic and readonly; the values are enumerated by
   139         TSystemStartupReason.
   140 
   141 		@see HALData::TSystemStartupReason
   142 		*/
   143 		ESystemStartupReason,
   144 
   145 		
   146 		/**
   147 		This is the last exception code, in the case of system reboot.
   148 		This is dynamic and readonly.
   149 		*/
   150 		ESystemException,
   151 		
   152 		
   153 		/**
   154 		The time between system ticks, in microseconds.
   155 		*/
   156 		ESystemTickPeriod,
   157 		
   158 		
   159 		/** 
   160 		The total system RAM, in bytes.
   161 		*/
   162 		EMemoryRAM,
   163 		
   164 		
   165 		/**
   166 		The currently free system RAM.
   167 		
   168 		This is dynamic and readonly.
   169 		*/
   170 		EMemoryRAMFree,
   171 
   172 		
   173 		/**
   174 		The total System ROM, in bytes.
   175 		*/
   176 		EMemoryROM,
   177 	
   178 		
   179 		/**
   180 		The MMU page size in bytes.
   181 		*/
   182 		EMemoryPageSize,
   183 	
   184 		
   185 		/**
   186 		Indicates the state of the power supply.
   187         
   188         It has the values:
   189         1 = Power is good (i.e. external power is available,
   190         or the 'power' battery is >= low);
   191         0 = otherwise.
   192         
   193         This is dynamic and readonly.
   194 		*/
   195 		EPowerGood,
   196 	
   197 		
   198 		/**
   199         The System (or 'Main') battery power level.
   200         The allowable values are enumerated by TPowerBatteryStatus
   201 
   202 		This is dynamic and readonly,
   203 		
   204 		@see HALData::TPowerBatteryStatus
   205 		*/
   206 		EPowerBatteryStatus,
   207 	
   208 		
   209 		/**
   210 		Indicates whether a backup power supply is available.
   211         It has the values:
   212         0 = the device does not support (or need) a backup battery source;
   213         1 = a backup batter source is present.
   214 		This is dynamic and readonly
   215 		*/
   216 		EPowerBackup,
   217 	
   218 		
   219 		/**
   220         The power level for backup power
   221         
   222         It has the values enumerated by TPowerBackupStatus.
   223 
   224 		This is dynamic and readonly.
   225 		
   226 		@see HALData::TPowerBackupStatus
   227 		*/
   228 		EPowerBackupStatus,
   229 	
   230 		
   231 		/**
   232 		Indicates the state of the external power.
   233 
   234 		It has the values:
   235 		0 = external power is not in use;
   236 		1 = external power is in use.
   237 		        
   238         This is dynamic and readonly.
   239 		*/
   240 		EPowerExternal,
   241 	
   242 		
   243 		/**
   244 		A bitmask that describes the available keyboard types (it may support
   245 		more than one).
   246 
   247         @see HALData::TKeyboard
   248 		*/
   249 		EKeyboard,
   250 	
   251 		
   252 		/**
   253 		*/
   254 		EKeyboardDeviceKeys,
   255 	
   256 		
   257 		/**
   258 		*/
   259 		EKeyboardAppKeys,
   260 	
   261 		
   262 		/**
   263 		Indicates whether the device can produce a click sound for
   264 		each keypress.
   265 		
   266 		It has the values:
   267 		0 = the device cannot produce a click sound for each keypress;
   268 		1 = the device can produce a click sound.
   269 		*/
   270 		EKeyboardClick,
   271 	
   272 		
   273 		/**
   274 		The state of keyboard clicking.
   275 
   276         It has the values:
   277         0 = key click disabled;
   278         1 = key click enabled.
   279         
   280 		This is dynamic and writeable.
   281 
   282 		@capability WriteDeviceData needed to Set this attribute
   283 		*/
   284 		EKeyboardClickState,
   285 	
   286 		
   287 		/**
   288 		The keyboard click volume level.
   289 
   290 		It can take a value in the range 0 to EkeyboardClickVolumeMax.
   291         
   292         This is dynamic and writeable.
   293         
   294         @see HALData::EkeyboardClickVolumeMax
   295 
   296 		@capability WriteDeviceData needed to Set this attribute
   297 		*/
   298 		EKeyboardClickVolume,
   299 	
   300 		
   301 		/**
   302 		The maximum value for EKeyboardClickVolume.
   303 		
   304 		@see HALData::EkeyboardClickVolume
   305 		*/
   306 		EKeyboardClickVolumeMax,
   307 	
   308 		
   309 		/**
   310 		The screen horizontal dimension in pixels.
   311 		*/
   312 		EDisplayXPixels,
   313 	
   314 		
   315 		/**
   316 		The screen vertical dimension in pixels.
   317 		*/
   318 		EDisplayYPixels,
   319 	
   320 		
   321 		/**
   322 		The screen horizontal dimension in twips.
   323 		*/
   324 		EDisplayXTwips,
   325 	
   326 		
   327 		/**
   328 		The screen vertical dimension in twips.
   329 		*/
   330 		EDisplayYTwips,
   331 	
   332 		
   333 		/**
   334 		The number of hues (colors or shades of grey) displayable on
   335 		the screen.
   336 		*/
   337 		EDisplayColors,
   338 	
   339 		
   340 		/**
   341 		The state of the display.
   342 		
   343 		It has the values:
   344 		0 = screen is turned off;
   345 		1 = screen is on.
   346 		
   347 		This is dynamic and writeable.
   348 
   349 		@capability PowerMgmt needed to Set this attribute
   350 		*/
   351 		EDisplayState,
   352 	
   353 		
   354 		/**
   355 		The screen contrast level.
   356    		It can take a value in the range 0 to EDisplayContrastMax.
   357         
   358         This is dynamic and writeable
   359 
   360 		@see HALData::EDisplayContrastMax
   361 
   362 		@capability WriteDeviceData needed to Set this attribute
   363 		*/
   364 		EDisplayContrast,
   365 	
   366 		
   367 		/**
   368 		The maximum value for EDisplayContrast
   369 		
   370 		@see HALData::EDisplayContrast
   371 		*/
   372 		EDisplayContrastMax,
   373 		
   374 		
   375 		/**
   376 		Indicates whether there is a backlight on the device.
   377 
   378 		It has the values:
   379 		0 = there is no screen backlight;
   380 		1 = a screen backlight is present.
   381 		*/
   382 		EBacklight,
   383 			
   384 		
   385 		/**
   386 		The current status of the backlight.
   387 
   388 		It has the values:
   389 		0 = off;
   390 		1 = on.
   391         
   392         This is dynamic and writeable.
   393 
   394 		@capability WriteDeviceData needed to Set this attribute
   395 		*/
   396 		EBacklightState,
   397 			
   398 		
   399 		/**
   400 		Indicates whether a pen or digitizer is available for input.
   401 
   402 		It has the values:
   403 		0 = a pen/digitizer is not available for input;
   404 		1 = a pen/digitizeris present.
   405 		*/
   406 		EPen,
   407 			
   408 		
   409 		/**
   410 		The pen/digitizer horizontal resolution, in pixels.
   411 		*/
   412 		EPenX,
   413 			
   414 		
   415 		/**
   416 		The is the pen/digitizer vertical resolution, in pixels.
   417 		*/
   418 		EPenY,
   419 			
   420 		
   421 		/**
   422 		Indicates whether a pen tap will turn the display on.
   423 
   424         It has the values:
   425         0 = a pen tap has no effect;
   426         1 = a pent tap or press enables the display.
   427         
   428         The is dynamic and writeable
   429 
   430 		@capability WriteDeviceData needed to Set this attribute
   431 		*/
   432 		EPenDisplayOn,
   433 			
   434 		
   435 		/**
   436 		Indicates whether the device can produce a click sound for
   437 		each pen tap.
   438 
   439 		It has the values:
   440         0 = the device cannot produce a click sound
   441         1 = production of a click sound is supported by the device.
   442 		*/
   443 		EPenClick,
   444 			
   445 		
   446 		/**
   447 		The state of pen clicking.
   448 		
   449 		It has the values:
   450 		0 = pen clicking is disabled;
   451 		1 = pen clicking is enabled.
   452 		
   453         This is dynamic and writable.
   454 
   455 		@capability WriteDeviceData needed to Set this attribute
   456 		*/
   457 		EPenClickState,
   458 			
   459 		
   460 		/**
   461 		This pen click volume level.
   462         It can take a value in the range 0 to EPenClickVolumeMax.
   463         
   464         This value is dynamic and writable.
   465         
   466         @see HALData::EPenClickVolumeMax
   467 
   468 		@capability WriteDeviceData needed to Set this attribute
   469 		*/
   470 		EPenClickVolume,
   471 			
   472 		
   473 		/**
   474 		The maximum value for EPenClickVolume.
   475 		
   476 		@see HALData::EPenClickVolume
   477 		*/
   478 		EPenClickVolumeMax,
   479 			
   480 		
   481 		/**
   482 		Indicates whether a mouse is available for input.
   483 		
   484 		It has the values:
   485 		0 = there is no mouse availablea pen/digitizeris present;
   486 		1 = a mouse is available for input.
   487 		*/
   488 		EMouse,
   489 			
   490 		
   491 		/**
   492 		The mouse horizontal resolution, in pixels.
   493 		*/
   494 		EMouseX,
   495 			
   496 		
   497 		/**
   498 		The mouse vertical resolution, in pixels.
   499 		*/
   500 		EMouseY,
   501 			
   502 		
   503 		/**
   504 		Describes the mouse cursor visibility.
   505 
   506         The value is enumerated by TMouseState.
   507         
   508 		This is dynamic and writable.
   509 		@see HALData::TMouseState
   510 		
   511 		@capability MultimediaDD needed to Set this attribute
   512 		*/
   513 		EMouseState,
   514 			
   515 		
   516 		/**
   517         Reserved for future use.
   518 		@capability MultimediaDD needed to Set this attribute
   519 		*/
   520 		EMouseSpeed,
   521 		
   522 		
   523 		/**
   524 		Reserved for future use.
   525 		@capability MultimediaDD needed to Set this attribute
   526 		*/
   527 		EMouseAcceleration,
   528 		
   529 		
   530 		/**
   531 		The number of buttons on the mouse.
   532 		*/
   533 		EMouseButtons,
   534 		
   535 		
   536 		/**
   537         A bitmask defining the state of each button .
   538 
   539         For each bit, it has values:
   540         0 = up;
   541         1 = down.
   542         
   543 		This is dynamic and read only.
   544 		*/
   545 		EMouseButtonState,
   546 		
   547 		
   548 		/**
   549 		Defines the state of the case.
   550 		
   551         It has the values:
   552         0 = case closed;
   553         1 = case opened.
   554         
   555         This is dynamic and read only.
   556 		*/
   557 		ECaseState,
   558 		
   559 		
   560 		/**
   561 		Indicates whether the device has a case switch, that actions when
   562 		the case opens and closes.
   563 		
   564         It has values:
   565         0 = no;
   566         1 = yes.
   567 		*/
   568 		ECaseSwitch,
   569 		
   570 		
   571 		/**
   572 		Indicates whether the device is to switch on when case opens.
   573 		
   574 		It has the values:
   575 		0 = disable device switchon when the case opens;
   576 		1 = enable device  switchon when the case opens.
   577         
   578         This is dynamic and writeable.
   579 
   580 		@capability WriteDeviceData needed to Set this attribute
   581 		*/
   582 		ECaseSwitchDisplayOn,
   583 		
   584 		
   585 		/**
   586         Indicates whether the device is to switch off when case close.
   587 
   588 		It has the values:
   589 		0 = disable device switchoff when the case closes;
   590 		1 = enable device switchoff when the case closes.
   591         
   592         This is dynamic and writeable.
   593 
   594 		@capability WriteDeviceData needed to Set this attribute
   595 		*/
   596 		ECaseSwitchDisplayOff,
   597 		
   598 		
   599 		/**
   600 		The number of LEDs on the device.
   601 		*/
   602 		ELEDs,
   603 		
   604 		
   605 		/**
   606         A bitmask defining the state of each LED.
   607 
   608         For each bit, it has values:
   609         0 = off;
   610         1 = on.
   611 		
   612 		This is dynamic and writeable.
   613 		*/
   614 		ELEDmask,
   615 		
   616 		
   617 		/**
   618 		Indicates how the phone hardware is connected.
   619 		
   620 		It has the values:
   621 		0 = phone hardware is not permanently connected;
   622 		1 = phone hardware is permanently connected.
   623 		*/
   624 		EIntegratedPhone,
   625 		
   626 		
   627 		/**
   628 		@capability WriteDeviceData needed to Set this attribute
   629 		*/
   630 		EDisplayBrightness,
   631 	
   632 		
   633 		/**
   634 		*/
   635 		EDisplayBrightnessMax,
   636 	
   637 		
   638 		/**
   639 		Inidcates the state of the keyboard backlight.
   640         
   641         It has the values:
   642         0 = keyboard backlight is off;
   643         1 = keyboard backlight is on.
   644 
   645 		This is dynamic and writeable.
   646 
   647 		@capability PowerMgmt needed to Set this attribute
   648 		*/
   649 		EKeyboardBacklightState,
   650 	
   651 		
   652 		/**
   653 		Power supply to an accessory port.
   654 
   655         It has the values:
   656         0 = turn off power to an accessory port on the device;
   657         1 = turn on power.
   658         
   659         This is dynamic and writeable.
   660 
   661 		@capability PowerMgmt needed to Set this attribute
   662 		*/
   663 		EAccessoryPower,
   664 	
   665 		
   666 		/**
   667 		A 2 decimal digit language index. 
   668 		
   669 		It is used as the two digit language number that is the suffix of
   670 		language resource DLLs, e.g ELOCL.01.
   671 
   672 		The locale with this language index is loaded the next time that
   673 		the device boots.
   674 
   675         This is dynamic and writeable.
   676 
   677 		@see TLanguage
   678 
   679 		@capability WriteDeviceData needed to Set this attribute
   680 		*/
   681 		ELanguageIndex,
   682 	
   683 		
   684 		/**
   685 		A 2 decimal digit (decimal) language keyboard index.
   686 		It is used as the two digit language number that is the suffix of
   687 		language resource DLLs, e.g. EKDATA.01.
   688 		
   689 		@see TLanguage
   690 
   691 		@capability WriteDeviceData needed to Set this attribute
   692 		*/
   693 		EKeyboardIndex,
   694 	
   695 		
   696 		/**
   697 		The maximum allowable size of RAM drive, in bytes.
   698 		*/
   699 		EMaxRAMDriveSize,
   700 	
   701 		
   702 		/**
   703 		Indicates the state of the keyboard.
   704 		
   705 		It has the values:
   706 		0 = keyboard is disabled;
   707 		1 = Keyboard is enabled.
   708         
   709         This is dynamic and writeable.
   710 
   711 		@capability PowerMgmt needed to Set this attribute
   712 		*/
   713 		EKeyboardState,
   714 	
   715 		/**
   716   		Defines the system drive & custom resource drive. 
   717         Legacy attribute which is no longer supported.
   718   
   719   		@deprecated Attribute is no longer the primary mechanism to define the 
   720   		System Drive or the Custom Resource Drive.
   721         @see RFs::GetSystemDrive.
   722         @see BaflUtils::NearestLanguageFile
   723         @see HALData::ECustomResourceDrive
   724   		*/
   725 		ESystemDrive,	
   726 		
   727 		/**
   728 		Indicates the state of the pen or digitiser.
   729 
   730 		It has the values:
   731 		1 = pen/digitiser is enabled;
   732 		0 = pen/digitiser is disabled.
   733 		
   734         This is dynamic and writeable.
   735 
   736 		@capability PowerMgmt needed to Set this attribute
   737 		*/
   738 		EPenState,
   739 	
   740 		
   741 		/**
   742 		On input: aInOut contains the mode number.
   743         On output: aInOut contains: 0 = display is colour;
   744                                     1 = display is black & white.
   745         
   746         aInOut is the 3rd parameter passed to accessor functions
   747         for derived attributes.
   748 		*/
   749 		EDisplayIsMono,
   750 	
   751 		
   752 		/**
   753 		On input: aInOut contains the mode number;
   754         On output, aInOut contains: 0 = display is not palettised;
   755                                     1 = display is palettised.
   756         
   757         aInOut is the 3rd parameter passed to accessor functions
   758         for derived attributes.
   759   		*/
   760 		EDisplayIsPalettized,
   761 	
   762 		
   763 		/**
   764 		The display bits per pixel.
   765 		
   766         On input, aInOut contains the mode number.
   767         On output, aInOut contains the bits per pixel for that mode.
   768 
   769         aInOut is the 3rd parameter passed to accessor functions
   770         for derived attributes.
   771         
   772         It is read only data.
   773 		*/
   774 		EDisplayBitsPerPixel,
   775 	
   776 		
   777 		/**
   778 		The number of display modes available.
   779 		*/
   780 		EDisplayNumModes,
   781 	
   782 		
   783 		/**
   784 		The address of the display memory.
   785 		*/
   786 		EDisplayMemoryAddress,
   787 	
   788 		
   789 		/**
   790 		The offset, in bytes, to the pixel area of the screen from the start of screen memory.
   791 		
   792 		This is used to account for the fact that the palette is sometimes at
   793 		the beginning of the display memory.
   794 		
   795         On input, aInOut contains the mode number.
   796         On output, aInOut contains the offset to the first pixel for that mode.
   797 
   798         aInOut is the 3rd parameter passed to accessor functions
   799         for derived attributes.
   800 		*/
   801 		EDisplayOffsetToFirstPixel,
   802 	
   803 		
   804 		/**
   805 		The separation, in bytes, of successive lines of display in memory.
   806         
   807         On input, aInOut contains the mode number.
   808         On output, aInOut contains the display offset between lines.
   809 
   810         aInOut is the 3rd parameter passed to accessor functions
   811         for derived attributes.
   812 		*/
   813 		EDisplayOffsetBetweenLines,
   814 	
   815 		
   816 		/**
   817 		@capability MultimediaDD needed to Set this attribute
   818 		*/
   819 		EDisplayPaletteEntry,
   820 	
   821 		
   822 		/**
   823 		It has the values:
   824 		1 = order of pixels in display is RGB;
   825 		0 = otherwise.
   826 		*/
   827 		EDisplayIsPixelOrderRGB,
   828 	
   829 		
   830 		/**
   831 		It has the values:
   832 		1 = pixel order is landscape;
   833 		0 = pixel order is portrait.
   834 		*/
   835 		EDisplayIsPixelOrderLandscape,
   836 	
   837 		
   838 		/**
   839 		This indicates or sets the current display mode where
   840 		EDisplayNumModes-1 is the maximum value for the display mode.
   841 		The properties of a particular display mode are entirely defined by
   842 		the base port software associated with the hardware upon which the OS
   843 		is running.
   844 
   845 		@capability MultimediaDD needed to Set this attribute
   846 		*/
   847 		EDisplayMode,
   848 	
   849 		
   850 		/**
   851 		If the target hardware upon which Symbian OS is running has switches
   852 		which can be read by the base port software, this interface allows
   853 		the current status of those switches to be read. 
   854 		*/
   855 		ESwitches,
   856 	
   857 		
   858 		/**
   859 		The port number of the debug port.
   860 		*/
   861 		EDebugPort,
   862 	
   863 		
   864 		/**
   865 		The language code of the Locale which was loaded at device boot time.
   866 
   867         This is dynamic and writeable.
   868 
   869 		@see ELanguageIndex
   870 
   871 		@capability WriteSystemData needed to Set this attribute
   872 		*/
   873 		ELocaleLoaded,
   874 	
   875 		
   876 		/**
   877 		The drive number to use for storage of Clipboard data.
   878 		0 = Drive A, 1 = Drive B, etc...
   879 		*/
   880 		EClipboardDrive,
   881 	
   882 		/**
   883 		Custom restart
   884 		@capability PowerMgmt
   885 		*/
   886 		ECustomRestart,
   887 
   888 		/**
   889 		Custom restart reason
   890 		*/
   891 		ECustomRestartReason,
   892 
   893 		/**
   894 		The number of screens.
   895 		*/
   896 		EDisplayNumberOfScreens,
   897 
   898 		/**
   899 		The time between nanokernel ticks, in microseconds.
   900 		*/
   901 		ENanoTickPeriod,
   902 
   903 		/**
   904 		The frequency of the fast counter.
   905 		*/
   906 		EFastCounterFrequency,
   907 
   908 		/**
   909 		Indicates the whether the fast counter counts up or down.
   910 		*/
   911 		EFastCounterCountsUp,
   912 
   913 		/**
   914 		@prototype
   915 
   916 		Indicates whether a 3 dimensional pointing device is available for input.
   917 
   918 		It has the values:
   919 		0 = a 3D pointer is not available for input;
   920 		1 = a 3D pointer is present.
   921 		*/
   922 		EPointer3D,
   923 
   924 		/**
   925 		@prototype
   926 
   927 		The 3D pointing device detection range, in units of distance above the screen.
   928 
   929 		This is dynamic and writeable.
   930 		*/
   931 		EPointer3DZ,
   932 
   933 		/**
   934 		@prototype
   935 
   936 		Indicates whether a 3 dimensional pointing device supports Theta polar angle reading.
   937 
   938 		It has the values:
   939 		0 = a 3D pointer does not support Theta polar angle reading;
   940 		1 = a 3D pointer supports Theta polar angle reading.
   941 		*/
   942 		EPointer3DThetaSupported,
   943 
   944 		/**
   945 		@prototype
   946 
   947 		Indicates whether a 3 dimensional pointing device supports Phi polar angle reading.
   948 
   949 		It has the values:
   950 		0 = a 3D pointer does not support Phi polar angle reading;
   951 		1 = a 3D pointer supports Phi polar angle reading.
   952 		*/
   953 		EPointer3DPhiSupported,
   954 
   955 		/**
   956 		@prototype
   957 
   958 		Indicates whether a 3 dimensional pointing device supports rotation angle along its main axis reading.
   959 
   960 		It has the values:
   961 		0 = a 3D pointer does not support alpha (rotation) reading;
   962 		1 = a 3D pointer supports alpha (rotation) reading.
   963 		*/
   964 		EPointer3DRotationSupported,
   965 
   966 		/**
   967 		@prototype
   968 
   969 		Indicates whether a 3 dimensional pointing device supports readings of pressure applied on screen.
   970 
   971 		It has the values:
   972 		0 = a 3D pointer does not support pressure reading;
   973 		1 = a 3D pointer supports pressure reading.
   974 		*/
   975 		EPointer3DPressureSupported,
   976 
   977 		/**
   978 		Indicates whether hardware floating point is available, and what type.
   979 		
   980 		If no hardware floating point is available, reading this attribute will return KErrNotSupported.
   981 		If hardware floating point is available, reading this attribute will return KErrNone and the type
   982 		available. These types are specified in TFloatingPointType.
   983 		*/
   984 		EHardwareFloatingPoint,
   985 
   986 		/**
   987 		The offset between secure and nonsecure clocks. If this attribute is undefined no secure clock
   988 		will be available.
   989 		*/
   990 		ETimeNonSecureOffset,
   991 
   992 		/**
   993 		Persist startup mode.
   994 
   995 		If no variant specific implementation exists, the startup mode will be stored in platform
   996 		specific values.hda file.
   997 		*/
   998 		EPersistStartupModeKernel,
   999 
  1000 		/**
  1001 		Maximum restart reasons.
  1002 
  1003 		Returns the maximum number of values that can be used to store the restart reason required for a custom restart.
  1004 		*/
  1005 		EMaximumCustomRestartReasons,
  1006 
  1007 		/**
  1008 		Maximum startup modes.
  1009 		
  1010 		Returns the maximum number of values that can be used to store the startup mode requires for a system restart.
  1011 		*/
  1012 		EMaximumRestartStartupModes,
  1013 		
  1014 		/**
  1015 		Defines the custom resource drive.
  1016 		
  1017 		This drive attribute should be set if an aditional drive is required for use in the search 
  1018 		algorithm for language files.  
  1019         
  1020         @see TDriveNumber
  1021 		@see BaflUtils::NearestLanguageFile for how this attribute is used
  1022 		@capability WriteDeviceData needed to Set this attribute
  1023 		*/
  1024 		ECustomResourceDrive,
  1025 
  1026 		/**
  1027 		The number of HAL attributes per screen.
  1028 		
  1029 		It is simply defined by its position in the enumeration.
  1030 		*/
  1031 		ENumHalAttributes
  1032 		};
  1033 
  1034 
  1035 
  1036     /**
  1037     Defines properties for the hardware attributes.
  1038     
  1039     @see HALData::TAttribute
  1040     */
  1041 	enum TAttributeProperty
  1042 		{
  1043 		/**
  1044 		When set, means that an attribute is meaningful on this device.
  1045 				
  1046 		@see HAL::Get()
  1047 		@see HAL::Set()
  1048 		*/
  1049 		EValid=0x1,
  1050 		
  1051 		
  1052 		/**
  1053 		When set, means that an attribute is modifiable.
  1054 		A call to HAL::Set() for an attribute that does not have this property,
  1055 		returns KErrNotSupported.
  1056 		
  1057 		@see HAL::Get()
  1058 		@see HAL::Set()
  1059 		*/
  1060 		ESettable=0x2,
  1061 		};
  1062 
  1063 
  1064 
  1065     /**
  1066     UIDs for a defined set of device manufacturers.
  1067     
  1068     Note that any manufacturer not represented in this list must obtain
  1069     a value from the Symbian registry.
  1070     
  1071     @see HALData::TAttribute
  1072     */
  1073     enum TManufacturer // UID for manufacturer
  1074 		{
  1075 		EManufacturer_Ericsson=0x00000000,
  1076 		EManufacturer_Motorola=0x00000001,
  1077 		EManufacturer_Nokia=0x00000002,
  1078 		EManufacturer_Panasonic=0x00000003,
  1079 		EManufacturer_Psion=0x00000004,
  1080 		EManufacturer_Intel=0x00000005,
  1081 		EManufacturer_Cogent=0x00000006,
  1082 		EManufacturer_Cirrus=0x00000007,
  1083 		EManufacturer_Linkup=0x00000008,
  1084 		EManufacturer_TexasInstruments=0x00000009,
  1085 		// New manufacturers must obtain an official UID to identify themselves
  1086 		};
  1087 
  1088 
  1089 
  1090     /**
  1091 	Defines the Symbian OS device families.
  1092 	
  1093     @see HALData::TAttribute
  1094     */
  1095 	enum TDeviceFamily
  1096 		{
  1097 		EDeviceFamily_Crystal,
  1098 		EDeviceFamily_Pearl,
  1099 		EDeviceFamily_Quartz,
  1100 		};
  1101 
  1102 
  1103 
  1104     /**
  1105     Defines the set of CPU architectures.
  1106     
  1107     @see HALData::TAttribute
  1108     */
  1109 	enum TCPU
  1110 		{
  1111 		ECPU_ARM,
  1112 		ECPU_MCORE,
  1113 		ECPU_X86,
  1114 		};
  1115 
  1116 
  1117 
  1118     /**
  1119     Defines the set of ABIs used by the CPU for user applications.
  1120     
  1121     @see HALData::TAttribute    
  1122     */
  1123 	enum TCPUABI
  1124 		{
  1125 		ECPUABI_ARM4,
  1126 		ECPUABI_ARMI,
  1127 		ECPUABI_THUMB,
  1128 		ECPUABI_MCORE,
  1129 		ECPUABI_MSVC,
  1130 		ECPUABI_ARM5T,
  1131 		ECPUABI_X86,
  1132 		};
  1133 
  1134 
  1135 
  1136     /**
  1137     Defines the set of reasons for a system boot.
  1138     
  1139     @see HALData::TAttribute
  1140     */
  1141 	enum TSystemStartupReason
  1142 		{
  1143 		ESystemStartupReason_Cold,
  1144 		ESystemStartupReason_Warm,
  1145 		ESystemStartupReason_Fault,
  1146 		};
  1147 
  1148 
  1149 
  1150     /**
  1151     Defines the set of available keyboard types.
  1152 
  1153     @see HALData::TAttribute
  1154     */
  1155 	bitmask TKeyboard
  1156 		{
  1157 		EKeyboard_Keypad=0x1,
  1158 		EKeyboard_Full=0x2,
  1159 		};
  1160 
  1161 
  1162 
  1163     /**
  1164     Defines the mouse cursor visibility.
  1165     
  1166     @see HALData::TAttribute
  1167     */
  1168 	enum TMouseState
  1169 		{
  1170 		EMouseState_Invisible=0,
  1171 		EMouseState_Visible=1,
  1172 		};
  1173 
  1174 
  1175 
  1176     /**
  1177     Defines a set of UIDs for specific devices, reference boards etc
  1178     
  1179     @see HALData::TAttribute
  1180     */
  1181 	enum TMachineUid
  1182 		{
  1183 		EMachineUid_Series5mx=0x1000118a,
  1184 		EMachineUid_Brutus=0x10005f60,
  1185 		EMachineUid_Cogent=0x10005f61,
  1186 		EMachineUid_Win32Emulator=0x10005f62,
  1187 		EMachineUid_WinC=0x10005f63,
  1188 		EMachineUid_CL7211_Eval=0x1000604f,
  1189 		EMachineUid_LinkUp=0x00000000,
  1190 		EMachineUid_Assabet=0x100093f3,
  1191 		EMachineUid_Zylonite=0x101f7f27,
  1192 		EMachineUid_IQ80310=0x1000a681,
  1193 		EMachineUid_Lubbock=0x101f7f26,
  1194 		EMachineUid_Integrator=0x1000AAEA,
  1195 		EMachineUid_Helen=0x101F3EE3,
  1196 		EMachineUid_X86PC=0x100000ad,
  1197 		EMachineUid_OmapH2=0x1020601C,
  1198 		EMachineUid_OmapH4=0x102734E3,
  1199 		};
  1200 
  1201 
  1202 
  1203     /**
  1204     Defines power levels for the system (or 'Main') battery.
  1205     
  1206     @see HALData::TAttribute
  1207     */
  1208 	enum TPowerBatteryStatus
  1209 		{
  1210 		EPowerBatteryStatus_Zero,
  1211 		EPowerBatteryStatus_Replace,
  1212 		EPowerBatteryStatus_Low,
  1213 		EPowerBatteryStatus_Good,
  1214 		};
  1215 
  1216 
  1217 
  1218     /**
  1219     Defines power levels for the backup power.
  1220 
  1221     @see HALData::TAttribute
  1222     */
  1223 	enum TPowerBackupStatus
  1224 		{
  1225 		EPowerBackupStatus_Zero,
  1226 		EPowerBackupStatus_Replace,
  1227 		EPowerBackupStatus_Low,
  1228 		EPowerBackupStatus_Good,
  1229 		};
  1230 	};
  1231 
  1232 #endif