CHWRMLight Class Reference

#include <hwrmlight.h>

Link against: hwrmlightclient.lib

class CHWRMLight : public CBase

Inherits from

  • CHWRMLight
    Public Member Enumerations
    enumTLightStatus { ELightStatusUnknown, ELightOn, ELightOff, ELightBlink }
    enumTLightTarget { ENoTarget, EPrimaryDisplay, EPrimaryKeyboard, EPrimaryDisplayAndKeyboard, ..., ESystemTarget }
    Public Member Functions
    ~CHWRMLight()
    virtual voidLightBlinkL(TInt)
    virtual voidLightBlinkL(TInt, TInt)
    virtual voidLightBlinkL(TInt, TInt, TInt, TInt, TInt)
    IMPORT_C voidLightBlinkL(TInt, TInt, const THWRMLightColor &)
    IMPORT_C voidLightBlinkL(TInt, TInt, TInt, TInt, TInt, const THWRMLightColor &)
    virtual voidLightOffL(TInt)
    virtual voidLightOffL(TInt, TInt)
    virtual voidLightOffL(TInt, TInt, TBool)
    virtual voidLightOnL(TInt)
    virtual voidLightOnL(TInt, TInt)
    virtual voidLightOnL(TInt, TInt, TInt, TBool)
    IMPORT_C voidLightOnL(TInt, TInt, const THWRMLightColor &)
    IMPORT_C voidLightOnL(TInt, TInt, TInt, TBool, const THWRMLightColor &)
    virtual TLightStatus LightStatus(TInt)
    IMPORT_C CHWRMLight *NewL()
    IMPORT_C CHWRMLight *NewL(MHWRMLightObserver *)
    IMPORT_C CHWRMLight *NewLC()
    IMPORT_C CHWRMLight *NewLC(MHWRMLightObserver *)
    virtual voidReleaseLight(TInt)
    virtual voidReserveLightL(TInt)
    virtual voidReserveLightL(TInt, TBool, TBool)
    IMPORT_C voidSetLightColorL(TInt, THWRMLightColor &)
    IMPORT_C voidSetLightDefaultColorL(TInt)
    virtual TInt SupportedTargets()
    Inherited Functions
    CBase::CBase()
    CBase::Delete(CBase *)
    CBase::Extension_(TUint,TAny *&,TAny *)
    CBase::operator new(TUint)
    CBase::operator new(TUint,TAny *)
    CBase::operator new(TUint,TLeave)
    CBase::operator new(TUint,TLeave,TUint)
    CBase::operator new(TUint,TUint)
    CBase::~CBase()

    Detailed Description

    The class used to control the device lights.

    The HW Resource Manager Light API is a library API providing the ability to control the various light targets of the device. The API provides also methods to retrieve the current light status and the supported light targets of the device. The API is meant for all applications which need to control lights of the device.

    Type of the HW Resource Manager Light API is a synchronous method call meaning the method call will block the client application. Every new call of the light API method stops all ongoing light control orders. Light state after duration based orders expire is the state specified by the last non-duration based order.

    The API consist of the classes CHWRMLight and MHWRMLightObserver. If the client requires up-to-date status information, it should also provide callback pointer of the MHWRMLightObserver implementing class for the NewL-method.

    Usage:

     #include <hwrmlight.h> 
    
     // A CHWRMLight instance can be created by using NewL() or NewLC() methods. 
     // Up-to-date status information not required, no callbacks.
     CHWRMLight* light = CHWRMLight::NewL();
    
     // After this, lights can be directly controlled via the provided class methods. 
     light-> LightOnL (EPrimaryDisplay, 5000); // Turn display lights on for five seconds.
     light->LightOffL(EPrimaryDisplay); // Turn display lights off indefinitely.
    
     // To clean up, delete the created object:
     delete light;

    Member Enumeration Documentation

    Enum TLightStatus

    Possible light states that can be get for the different light targets

    EnumeratorValueDescription
    ELightStatusUnknown0

    For debugging/development and signaling an error conditions.

    ELightOn

    Light state switch to light on.

    ELightOff

    Light state switch to light off.

    ELightBlink

    Light state switch to light blinking.

    Enum TLightTarget

    Possible light targets. Targets can be used as bitmask. Some common masks are provided as enum.

    Note that all targets are not supported by all devices. Attempting to use unsupported target will result in KErrNotSupported.

    At least one target must be defined.

    EnumeratorValueDescription
    ENoTarget0x0

    No target. Not a valid target value, used only for error checking.

    EPrimaryDisplay0x1

    Primary display of the device.

    EPrimaryKeyboard0x2

    Primary keyboard of the device.

    EPrimaryDisplayAndKeyboard0x3

    Both primary display and the primary keyboard of the device.

    ESecondaryDisplay0x4

    Secondary display of the device.

    ESecondaryKeyboard0x8

    Secondary keyboard of the device.

    ESecondaryDisplayAndKeyboard0xC

    Both secondary display and the secondary keyboard of the device.

    ECustomTarget10x10

    Device specific custom target 1.

    ECustomTarget20x20

    Device specific custom target 2.

    ECustomTarget30x40

    Device specific custom target 3.

    ECustomTarget40x80

    Device specific custom target 4.

    ESystemTarget0x80000000

    Special target used to control all currently available system lights.

    System lights normally include all displays and keyboards, but not custom lights. This is however device dependent.

    A target mask including this target is always changed to a device state specific target mask. Note that the system target with any other target is not supported.

    This target is always supported but it is never included in supported targets mask.

    See also: CHWRMLight::SupportedTargets()

    Constructor & Destructor Documentation

    ~CHWRMLight ( )

    IMPORT_C~CHWRMLight()

    Destructor

    Member Function Documentation

    LightBlinkL ( TInt )

    voidLightBlinkL(TIntaTarget)[virtual]

    The LightBlinkL method blinks the target light(s) of the device for infinite duration using default intensity.

    Calling this method is equal to call
     LightBlinkL(aTarget, KHWRMInfiniteDuration, KHWRMDefaultCycleTime, 
                 KHWRMDefaultCycleTime, KHWRMDefaultIntensity).
    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrBadHandle Light session has been invalidated.
    leave
    KErrTimedOut Timeout occurred in controlling light.
    leave
    KErrInUse One or more of specified targets are not reserved for this client but are reserved for others.
    leave
    KErrNoMemory There is a memory allocation failure.
    leave
    KErrGeneral There is a hardware error.

    See also: TLightTarget

    ParameterDescription
    aTargetDefines which light should be controlled. Multiple lights can be specified with using bitwise-or.

    LightBlinkL ( TInt, TInt )

    voidLightBlinkL(TIntaTarget,
    TIntaDuration
    )[virtual]

    The LightBlinkL method blinks the target light(s) of the device for specified duration using default intensity.

    Calling this method is equal to calling LightBlinkL(aTarget, aDuration, KHWRMDefaultCycleTime, KHWRMDefaultCycleTime, KHWRMDefaultIntensity).

    leave
    KErrArgument Parameter aDuration is out of range.
    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrBadHandle Light session has been invalidated.
    leave
    KErrTimedOut Timeout occurred in controlling light.
    leave
    KErrInUse One or more of specified targets are not reserved for this client but are reserved for others.
    leave
    KErrNoMemory There is a memory allocation failure.
    leave
    KErrGeneral There is a hardware error.

    See also: TLightTarget

    ParameterDescription
    aTargetDefines which light should be controlled. Multiple lights can be specified with using bitwise-or.
    aDurationDuration of the time the light is set to blink measured in milliseconds. After the duration expires, the light state for target will be changed to whatever state was caused by the last infinite time duration call, or default state determined by inactivity timer, in case there has not been a previous infinite time duration call in this session. If the aTotalDuration time is KHWRMInfiniteDuration then it means an infinite value that has to be stopped by calling of any of the other light control methods. Duration can have maximum value of KHWRMLightMaxDuration.

    LightBlinkL ( TInt, TInt, TInt, TInt, TInt )

    voidLightBlinkL(TIntaTarget,
    TIntaDuration,
    TIntaOnDuration,
    TIntaOffDuration,
    TIntaIntensity
    )[virtual]

    The LightBlinkL method blinks the target light(s) of the device for specified duration using specified intensity. On- and Off-cycle times of the blinking can also be controlled.

    leave
    KErrArgument One of the parameters is out of range or otherwise invalid.
    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrBadHandle Light session has been invalidated.
    leave
    KErrTimedOut Timeout occurred in controlling light.
    leave
    KErrInUse One or more of specified targets are not reserved for this client but are reserved for others.
    leave
    KErrNoMemory There is a memory allocation failure.
    leave
    KErrGeneral There is a hardware error.

    See also: TLightTarget

    ParameterDescription
    aTargetDefines which light should be controlled. Multiple lights can be specified with using bitwise-or.
    aDurationDuration of the time the light is set to blink measured in milliseconds. After the duration expires, the light state for target will be changed to whatever state was caused by the last infinite time duration call, or default state determined by inactivity timer, in case there has not been a previous infinite time duration call in this session. If the aTotalDuration time is KHWRMInfiniteDuration then it means an infinite value that has to be stopped by calling of any of the other light control methods. Duration can have maximum value of KHWRMLightMaxDuration.
    aOnDurationDuration time, measured in milliseconds, of how long the Light is switched on in every Blink cycle. Duration can have maximum value of KHWRMLightMaxDuration. For device default cycle duration, use value KHWRMDefaultCycleTime. If either of aOnDuration or aOffDuration is KHWRMDefaultCycleTime, both must be KHWRMDefaultCycleTime. Some devices might not support variable blink cycle times, in which case default value will be substituted.
    aOffDurationDuration time, measured in milliseconds, of how long the Light is switched off in every Blink cycle. Duration can have maximum value of KHWRMLightMaxDuration. For device default cycle duration, use value KHWRMDefaultCycleTime. If either of aOnDuration or aOffDuration is KHWRMDefaultCycleTime, both must be KHWRMDefaultCycleTime. Some devices might not support variable blink cycle times, in which case default value will be substituted.
    aIntensityIntensity of the light. If aIntensity is KHWRMDefaultIntensity, device default intensity will be used. Note: All devices might not support user defined intensity, in which case device will behave in its default fashion.

    LightBlinkL ( TInt, TInt, const THWRMLightColor & )

    IMPORT_C voidLightBlinkL(TIntaTarget,
    TIntaDuration,
    const THWRMLightColor &aRGBParam
    )

    The LightBlinkL method blinks the target light(s) of the device for specified duration and color using default intensity.

    leave
    KErrArgument Parameter aDuration is out of range.
    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrBadHandle Light session has been invalidated.
    leave
    KErrTimedOut Timeout occurred in controlling light.
    leave
    KErrInUse One or more of specified targets are not reserved for this client but are reserved for others.
    leave
    KErrNoMemory There is a memory allocation failure.
    leave
    KErrGeneral There is a hardware error.

    See also: TLightTarget THWRMLightColor

    ParameterDescription
    aTargetDefines which light should be controlled. Multiple lights can be specified with using bitwise-or.
    aDurationDuration of the time the light is set to blink measured in milliseconds. After the duration expires, the light state for target will be changed to whatever state was caused by the last infinite time duration call, or default state determined by inactivity timer, in case there has not been a previous infinite time duration call in this session. If the aTotalDuration time is KHWRMInfiniteDuration then it means an infinite value that has to be stopped by calling of any of the other light control methods. Duration can have maximum value of KHWRMLightMaxDuration.
    aRGBParamRGB Values to be set for the target(s).

    LightBlinkL ( TInt, TInt, TInt, TInt, TInt, const THWRMLightColor & )

    IMPORT_C voidLightBlinkL(TIntaTarget,
    TIntaDuration,
    TIntaOnDuration,
    TIntaOffDuration,
    TIntaIntensity,
    const THWRMLightColor &aRGBParam
    )

    The LightBlinkL method blinks the target light(s) of the device for specified duration using specified intensity and color. On- and Off-cycle times of the blinking can also be controlled.

    leave
    KErrArgument One of the parameters is out of range or otherwise invalid.
    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrBadHandle Light session has been invalidated.
    leave
    KErrTimedOut Timeout occurred in controlling light.
    leave
    KErrInUse One or more of specified targets are not reserved for this client but are reserved for others.
    leave
    KErrNoMemory There is a memory allocation failure.
    leave
    KErrGeneral There is a hardware error.

    See also: TLightTarget THWRMLightColor

    ParameterDescription
    aTargetDefines which light should be controlled. Multiple lights can be specified with using bitwise-or.
    aDurationDuration of the time the light is set to blink measured in milliseconds. After the duration expires, the light state for target will be changed to whatever state was caused by the last infinite time duration call, or default state determined by inactivity timer, in case there has not been a previous infinite time duration call in this session. If the aTotalDuration time is KHWRMInfiniteDuration then it means an infinite value that has to be stopped by calling of any of the other light control methods. Duration can have maximum value of KHWRMLightMaxDuration.
    aOnDurationDuration time, measured in milliseconds, of how long the Light is switched on in every Blink cycle. Duration can have maximum value of KHWRMLightMaxDuration. For device default cycle duration, use value KHWRMDefaultCycleTime. If either of aOnDuration or aOffDuration is KHWRMDefaultCycleTime, both must be KHWRMDefaultCycleTime. Some devices might not support variable blink cycle times, in which case default value will be substituted.
    aOffDurationDuration time, measured in milliseconds, of how long the Light is switched off in every Blink cycle. Duration can have maximum value of KHWRMLightMaxDuration. For device default cycle duration, use value KHWRMDefaultCycleTime. If either of aOnDuration or aOffDuration is KHWRMDefaultCycleTime, both must be KHWRMDefaultCycleTime. Some devices might not support variable blink cycle times, in which case default value will be substituted.
    aIntensityIntensity of the light. If aIntensity is KHWRMDefaultIntensity, device default intensity will be used. Note: All devices might not support user defined intensity, in which case device will behave in its default fashion.
    aRGBParamRGB Values to be set for the target(s).

    LightOffL ( TInt )

    voidLightOffL(TIntaTarget)[virtual]

    The LightOffL method switches the device light off for the specified target for infinite duration. Lights will be switched off with fade-out.

    Calling this method is equal to call LightOffL(aTarget, KHWRMInfiniteDuration, ETrue).

    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrBadHandle Light session has been invalidated.
    leave
    KErrTimedOut Timeout occurred in controlling light.
    leave
    KErrInUse One or more of specified targets are not reserved for this client but are reserved for others.
    leave
    KErrNoMemory There is a memory allocation failure.
    leave
    KErrGeneral There is a hardware error.

    See also: TLightTarget

    ParameterDescription
    aTargetDefines which light should be controlled. Multiple lights can be specified with using bitwise-or.

    LightOffL ( TInt, TInt )

    voidLightOffL(TIntaTarget,
    TIntaDuration
    )[virtual]

    The LightOffL method switches the device light off for the specified target for the specified duration time. Lights will be switched off with fade-out.

    Calling this method is equal to call LightOffL(aTarget, aDuration, ETrue).

    leave
    KErrArgument Parameter aDuration is out of range.
    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrBadHandle Light session has been invalidated.
    leave
    KErrTimedOut Timeout occurred in controlling light.
    leave
    KErrInUse One or more of specified targets are not reserved for this client but are reserved for others.
    leave
    KErrNoMemory There is a memory allocation failure.
    leave
    KErrGeneral There is a hardware error.

    See also: TLightTarget

    ParameterDescription
    aTargetDefines which light should be controlled. Multiple lights can be specified with using bitwise-or.
    aDurationDuration of the time the light is switched off measured in milliseconds. After the duration expires, the light state for target will be changed to whatever state was caused by the last infinite time duration call, or default state determined by inactivity timer, in case there has not been a previous infinite time duration call in this session. If the aDuration time is KHWRMInfiniteDuration then it means an infinite value that has to be stopped by calling of any of the other light control methods. Duration can have maximum value of KHWRMLightMaxDuration.

    LightOffL ( TInt, TInt, TBool )

    voidLightOffL(TIntaTarget,
    TIntaDuration,
    TBoolaFadeOut
    )[virtual]

    The LightOffL method switches the device light off for the specified target for the specified duration time. Lights fade-out can also be controlled.

    leave
    KErrArgument aDuration is out of range.
    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrBadHandle Light session has been invalidated.
    leave
    KErrTimedOut Timeout occurred in controlling light.
    leave
    KErrInUse One or more of specified targets are not reserved for this client but are reserved for others.
    leave
    KErrNoMemory There is a memory allocation failure.
    leave
    KErrGeneral There is a hardware error.

    See also: TLightTarget

    ParameterDescription
    aTargetDefines which light should be controlled. Multiple lights can be specified with using bitwise-or.
    aDurationDuration of the time the light is switched off measured in milliseconds. After the duration expires, the light state for target will be changed to whatever state was caused by the last infinite time duration call, or default state determined by inactivity timer, in case there has not been a previous infinite time duration call in this session. If the aDuration time is KHWRMInfiniteDuration then it means an infinite value that has to be stopped by calling of any of the other light control methods. Duration can have maximum value of KHWRMLightMaxDuration.
    aFadeOutIf ETrue, lights will not turn off instantly but instead smoothly fade-out Note: All devices will not support fade-out, in which case device will behave in its default fashion.

    LightOnL ( TInt )

    voidLightOnL(TIntaTarget)[virtual]

    The LightOnL method switches the specified target light on for infinite duration using default intensity. Lights will use fade-in.

    Calling this method is equal to calling LightOnL(aTarget, KHWRMInfiniteDuration, KHWRMDefaultIntensity, ETrue).

    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrBadHandle Light session has been invalidated.
    leave
    KErrTimedOut Timeout occurred in controlling light.
    leave
    KErrInUse One or more of specified targets are not reserved for this client but are reserved for others.
    leave
    KErrNoMemory There is a memory allocation failure.
    leave
    KErrGeneral There is a hardware error.

    See also: TLightTarget

    ParameterDescription
    aTargetDefines which light should be controlled. Multiple lights can be specified with using bitwise-or.

    LightOnL ( TInt, TInt )

    voidLightOnL(TIntaTarget,
    TIntaDuration
    )[virtual]

    The LightOnL method switches the specified target light on for the specified duration using default intensity. Lights will use fade-in.

    Calling this method is equal to call LightOnL(aTarget, aDuration, KHWRMDefaultIntensity, ETrue).

    leave
    KErrArgument Parameter aDuration is out of range.
    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrBadHandle Light session has been invalidated.
    leave
    KErrTimedOut Timeout occurred in controlling light.
    leave
    KErrInUse One or more of specified targets are not reserved for this client but are reserved for others.
    leave
    KErrNoMemory There is a memory allocation failure.
    leave
    KErrGeneral There is a hardware error.

    See also: TLightTarget

    ParameterDescription
    aTargetDefines which light should be controlled. Multiple lights can be specified with using bitwise-or.
    aDurationDuration of the time the light is switched on measured in milliseconds. After the duration expires, the light state for target will be changed to whatever state was caused by the last infinite time duration call, or default state determined by inactivity timer, in case there has not been a previous infinite time duration call in this session. If the aDuration time is KHWRMInfiniteDuration then it means an infinite value that has to be stopped by calling of any of the other ' light control methods. Duration can have maximum value of KHWRMLightMaxDuration.

    LightOnL ( TInt, TInt, TInt, TBool )

    voidLightOnL(TIntaTarget,
    TIntaDuration,
    TIntaIntensity,
    TBoolaFadeIn
    )[virtual]

    The LightOnL method switches the specified target light on for the specified duration using specified intensity. Fade-in can also be controlled.

    leave
    KErrArgument One of the parameters is out of range.
    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrBadHandle Light session has been invalidated.
    leave
    KErrTimedOut Timeout occurred in controlling light.
    leave
    KErrInUse One or more of specified targets are not reserved for this client but are reserved for others.
    leave
    KErrNoMemory There is a memory allocation failure.
    leave
    KErrGeneral There is a hardware error.

    See also: TLightTarget

    ParameterDescription
    aTargetDefines which light should be controlled. Multiple lights can be specified with using bitwise-or.
    aDurationDuration of the time the light is switched on measured in milliseconds. After the duration expires, the light state for target will be changed to whatever state was caused by the last infinite time duration call, or default state determined by inactivity timer, in case there has not been a previous infinite time duration call in this session. If the aDuration time is KHWRMInfiniteDuration then it means an infinite value that has to be stopped by calling of any of the other light control methods. Duration can have maximum value of KHWRMLightMaxDuration.
    aIntensityIntensity of the light. If aIntensity is KHWRMDefaultIntensity, device default intensity will be used. Note: All devices might not support user defined intensity, in which case device will behave in its default fashion.
    aFadeInIf ETrue, lights will not turn on instantly but instead smoothly fade-in. Note: All devices will not support fade-in, in which case device will behave in its default fashion.

    LightOnL ( TInt, TInt, const THWRMLightColor & )

    IMPORT_C voidLightOnL(TIntaTarget,
    TIntaDuration,
    const THWRMLightColor &aRGBParam
    )

    The LightOnL method switches the specified target light on for the specified duration and specified color.

    leave
    KErrArgument One of the parameters is out of range.
    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrBadHandle Light session has been invalidated.
    leave
    KErrTimedOut Timeout occurred in controlling light.
    leave
    KErrInUse One or more of specified targets are not reserved for this client but are reserved for others.
    leave
    KErrNoMemory There is a memory allocation failure.
    leave
    KErrGeneral There is a hardware error.

    See also: TLightTarget THWRMLightColor

    ParameterDescription
    aTargetDefines which light should be controlled. Multiple lights can be specified with using bitwise-or.
    aDurationDuration of the time the light is switched on measured in milliseconds. After the duration expires, the light state for target will be changed to whatever state was caused by the last infinite time duration call, or default state determined by inactivity timer, in case there has not been a previous infinite time duration call in this session. If the aDuration time is KHWRMInfiniteDuration then it means an infinite value that has to be stopped by calling of any of the other light control methods. Duration can have maximum value of KHWRMLightMaxDuration.
    aRGBParamRGB Values to be set for the target(s).

    LightOnL ( TInt, TInt, TInt, TBool, const THWRMLightColor & )

    IMPORT_C voidLightOnL(TIntaTarget,
    TIntaDuration,
    TIntaIntensity,
    TBoolaFadeIn,
    const THWRMLightColor &aRGBParam
    )

    The LightOnL method switches the specified target light on for the specified duration using specified intensity and color. Fade-in can also be controlled.

    leave
    KErrArgument One of the parameters is out of range.
    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrBadHandle Light session has been invalidated.
    leave
    KErrTimedOut Timeout occurred in controlling light.
    leave
    KErrInUse One or more of specified targets are not reserved for this client but are reserved for others.
    leave
    KErrNoMemory There is a memory allocation failure.
    leave
    KErrGeneral There is a hardware error.

    See also: TLightTarget THWRMLightColor

    ParameterDescription
    aTargetDefines which light should be controlled. Multiple lights can be specified with using bitwise-or.
    aDurationDuration of the time the light is switched on measured in milliseconds. After the duration expires, the light state for target will be changed to whatever state was caused by the last infinite time duration call, or default state determined by inactivity timer, in case there has not been a previous infinite time duration call in this session. If the aDuration time is KHWRMInfiniteDuration then it means an infinite value that has to be stopped by calling of any of the other light control methods. Duration can have maximum value of KHWRMLightMaxDuration.
    aIntensityIntensity of the light. If aIntensity is KHWRMDefaultIntensity, device default intensity will be used. Note: All devices might not support user defined intensity, in which case device will behave in its default fashion.
    aFadeInIf ETrue, lights will not turn on instantly but instead smoothly fade-in. Note: All devices will not support fade-in, in which case device will behave in its default fashion.
    aRGBParamRGB Values to be set for the target(s).

    LightStatus ( TInt )

    TLightStatus LightStatus(TIntaTarget)const [virtual]

    This method retrieves the current light status.

    See also: MHWRMLightObserver TLightTarget

    ParameterDescription
    aTargetDefines which light status is returned. This method only supports single target, as different targets might have different statuses.

    Returns: TLightStatus indicating the current light status. If there is a problem or multiple targets were specified, CHWRMLight::ELightStatusUnknown is returned.

    NewL ( )

    IMPORT_C CHWRMLight *NewL()[static]

    Two-phased constructor.

    leave
    KErrNotSupported Device doesn't support Light feature.
    leave
    KErrNoMemory There is a memory allocation failure.

    Returns: A pointer to a new instance of the CHWRMLight class.

    NewL ( MHWRMLightObserver * )

    IMPORT_C CHWRMLight *NewL(MHWRMLightObserver *aCallback)[static]

    Two-phased constructor. Use this method for creating a Light client with callbacks.

    leave
    KErrNotSupported Device doesn't support Light feature.
    leave
    KErrNoMemory There is a memory allocation failure.
    ParameterDescription
    aCallbackPointer to the callback instance.

    Returns: A pointer to a new instance of the CHWRMLight class.

    NewLC ( )

    IMPORT_C CHWRMLight *NewLC()[static]

    Two-phased constructor. Leaves instance to cleanup stack.

    leave
    KErrNotSupported Device doesn't support Light feature.
    leave
    KErrNoMemory There is a memory allocation failure.

    Returns: A pointer to a new instance of the CHWRMLight class.

    NewLC ( MHWRMLightObserver * )

    IMPORT_C CHWRMLight *NewLC(MHWRMLightObserver *aCallback)[static]

    Two-phased constructor. Use this method for creating a Light client with callbacks. Leaves instance to cleanup stack.

    leave
    KErrNotSupported Device doesn't support Light feature.
    leave
    KErrNoMemory There is a memory allocation failure.
    ParameterDescription
    aCallbackPointer to the callback instance

    Returns: A pointer to a new instance of the CHWRMLight class.

    ReleaseLight ( TInt )

    voidReleaseLight(TIntaTarget)[virtual]

    Releases light target if it was previously reserved for this client. If this client has not reserved any of the specified lights, this method does nothing. Any reserved light targets that are released and have no other suspended clients will be reset to default state, which is either lights on or lights off, depending on system inactivity time.

    See also: TLightTarget

    ParameterDescription
    aTargetDefines which light should be released. Multiple lights can be specified with using bitwise-or.

    ReserveLightL ( TInt )

    voidReserveLightL(TIntaTarget)[virtual]

    Reserves light target exclusively for this client. A higher priority client may cause lower priority client reservation to be temporarily suspended. Commands can still be issued in suspended state, but they will not be acted upon unless suspension is lifted within specified duration. The suspended client will not get any notification about suspension. If light target is already reserved by a higher or equal priority application, reserving will still succeeds, but reservation is immediately suspended.

    Calling this method is equal to calling ReserveLightL( aTarget, EFalse, EFalse), i.e. any previously frozen state will not be restored and CCoeEnv background/foreground status is always used to control further reservations.

    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrAccessDenied No CCoeEnv present.
    leave
    KErrNotReady Trying to reserve while on background.
    leave
    KErrNoMemory There is a memory allocation failure.

    See also: TLightTarget

    ParameterDescription
    aTargetDefines which light should be reserved. Multiple lights can be specified with using bitwise-or.

    ReserveLightL ( TInt, TBool, TBool )

    voidReserveLightL(TIntaTarget,
    TBoolaRestoreState,
    TBoolaForceNoCCoeEnv
    )[virtual]

    Reserves light target exclusively for this client. A higher priority client may cause lower priority client reservation to be temporarily suspended. Commands can still be issued in suspended state, but they will not be acted upon unless suspension is lifted within specified duration. The suspended client will not get any notification about suspension. If light target is already reserved by a higher or equal priority application, reserving will still succeeds, but reservation is immediately suspended.

    leave
    KErrNotSupported One or more of specified targets are not supported.
    leave
    KErrAccessDenied Paramenter aForceNoCCoeEnv is ETrue and client is not trusted.
    leave
    KErrBadHandle Parameter ForceNoCCoeEnv is EFalse and no CCoeEnv present.
    leave
    KErrNotReady Trying to reserve while on background and parameter aForceNoCCoeEnv is EFalse.
    leave
    KErrNoMemory There is a memory allocation failure.

    See also: TLightTarget

    ParameterDescription
    aTargetDefines which light should be reserved. Multiple lights can be specified with using bitwise-or.
    aRestoreStateIf ETrue, the state frozen on last release will be restored upon successful reservation. I.e. if light was blinking when it was released by this client the last time, it would start blinking again upon successful reservation. For the first reservation of each session this parameter is always considered EFalse regardless of what is supplied, as there is no previous frozen state to restore.
    aForceNoCCoeEnvIf EFalse, then reservation requires that this client is on the foreground at the time of reservation and light target will be automatically released and re-reserved based on background/foreground status of the this client. This also implies that CCoeEnv::Static() != NULL is required. If ETrue, the client will not require CCoeEnv to be present nor does it automatically reserve/release light by depending on foreground/background status of the client. Only trusted clients are allowed to set this flag to ETrue. A client is considered trusted if it has nonstandard priority defined in the internal lights policy of the HW Resource Manager. A client can be defined trusted only by a product.

    SetLightColorL ( TInt, THWRMLightColor & )

    IMPORT_C voidSetLightColorL(TIntaTarget,
    THWRMLightColor &aRGB
    )

    SetLightDefaultColorL ( TInt )

    IMPORT_C voidSetLightDefaultColorL(TIntaTarget)

    SupportedTargets ( )

    TInt SupportedTargets()const [virtual]

    This method retrieves the supported light targets of the device. Any attempt to use or reserve unsupported targets will fail with KErrNotSupported.

    See also: TLightTarget

    Returns: Bitmask containing supported light targets.