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