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