Light/light_chipset_api.h
author Arnaud Lenoir
Thu, 26 Aug 2010 10:58:17 +0100
changeset 23 c2a6df15c4dd
parent 0 bb4b476bbb96
permissions -rw-r--r--
FYI - READ ONLY - Updated SHAI_public_APIs-status.xlsx. contact arnaudl@symbian.org for any changes you want.

/*
  light_chipset_api.h

  Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
  All rights reserved.

  This program and the accompanying materials are made available 
  under the terms of the Eclipse Public License v1.0 which accompanies 
  this distribution, and is available at 
  http://www.eclipse.org/legal/epl-v10.html

  Initial Contributors:
  Nokia Corporation - initial contribution.

  Contributors:
*/

/** @file
@brief Light Chipset API H

This is the header file for Light Chipset API that is used to access 
the light service provided by the third party chipset vendor.

@publishedDeviceAbstraction
*/

#ifndef __LIGHT_CHIPSET_API_H__
#define __LIGHT_CHIPSET_API_H__

// Include files

#include <kern_priv.h>


// Constants


// Macros


// Data types


// Function prototypes


// Class declaration

/**
This class defines the Chipset API that is used to access 
the light service provided by the third party chipset vendor.
*/
class LightService
    {
    public:

        /**
        This method is used to do all the necessary initialization so 
        that the chipset is ready to provide the light service.

        @return Symbian OS system wide error code, and the followings are required: 
                KErrNone – the operation is successfully executed
                KErrGeneral – error condition
                KErrAlreadyExists – if trying to initialize twice

        @pre Pre-condition, it should be called first before the other methods of this class are used 
        */
        IMPORT_C static TInt Init();

        /**
        This function is used to set the specified output to the desired intensity.

        @param aOutputId The identity of the output line that shall be controlled
        @param aIntensity	The desired intensity of the light with range 0 – 10000 [1/100%]

        @return Symbian OS system wide error code, and the followings are required: 
                KErrNone – the operation is successfully executed
                KErrGeneral – error condition
                KErrNotReady –if trying to access uninitialized device
                KErrNotSupported – if the feature is not supported by the HW

        @pre Pre-condition, the method Init() has been executed successfully
        */
        IMPORT_C static TInt SetIntensity(TUint aOutputId, TUint16 aIntensity);

        /**
        This function is used to set the specified output to the desired current.

        @param aOutputId The identity of the output line that shall be controlled
        @param aCurrent	The driving current from 0 to the maximum current available from the chipset [1/10 mA] (range 0.0 to 6553.5mA)

        @return Symbian OS system wide error code, and the followings are required: 
                KErrNone – the operation is successfully executed
                KErrGeneral – error condition
                KErrNotReady – if trying to access uninitialized device
                KErrNotSupported – if the feature is not supported by the HW

        @pre Pre-condition, the method Init() has been executed successfully
        */
        IMPORT_C static TInt SetCurrent(TUint aOutputId, TUint16 aCurrent);

        /**
        This function is used to set the specified output to the desired PWM frequency.

        @param aOutputId The identity of the output line that shall be controlled
        @param aFrequency	The PWM frequency from 0 to the maximum frequency available from the chipset (range 0 to 65535Hz)

        @return Symbian OS system wide error code, and the followings are required: 
                KErrNone – the operation is successfully executed
                KErrGeneral – error condition
                KErrNotReady – if trying to access uninitialized device
                KErrNotSupported – if the feature is not supported by the HW

        @pre Pre-condition, the method Init() has been executed successfully
        */
        IMPORT_C static TInt SetFrequency(TUint aOutputId, TUint16 aFrequency);

    };

#endif // __LIGHT_CHIPSET_API_H__