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