--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/resourcemgmt/hwresourcesmgr/server/plugininc/HWRMLightCommands.h Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,493 @@
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* This file contains the following sections:
+* - Command definitions for HWRM Light plugin API
+* - Command parameter definitions for HWRM Light plugin API
+* - Response parameter definitions for HWRM Light plugin API
+*
+*/
+
+
+
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+
+#ifndef HWRMLIGHTCOMMANDS_H
+#define HWRMLIGHTCOMMANDS_H
+
+// Include plugin service so that including only this header is necessary to use Light plugin API.
+#include <hwrm/hwrmpluginservice.h>
+
+// CONSTANTS
+
+// Identifies the ECom implementation to be used.
+_LIT8(KHWRMLightApiEComMatch, "HWRMLight");
+
+// CLASS DECLARATION
+
+/**
+* Plugin interface class just encapsulates the Light command enumerations.
+* Responsible for defining the command IDs for each message.
+*/
+namespace HWRMLightCommand
+ {
+ /**
+ * Enumeration for light targets.
+ * If certain target is not supported by device,
+ * plugin can either return KErrNotSupported or interpret
+ * specified target in some device specific way.
+ *
+ * Light targets can be used as bitmask.
+ *
+ * @publishedPartner
+ * @released
+ */
+ enum TLightTarget
+ {
+ /**
+ No target. Not a valid target value, used only for error checking.
+ */
+ ENoTarget = 0x0,
+ /**
+ Primary display of the device.
+ */
+ EPrimaryDisplay = 0x1,
+ /**
+ Primary keyboard of the device.
+ */
+ EPrimaryKeyboard = 0x2,
+ /**
+ Secondary display of the device.
+ */
+ ESecondaryDisplay = 0x4,
+ /**
+ Secondary keyboard of the device.
+ */
+ ESecondaryKeyboard = 0x8,
+ /**
+ Device specific custom target 1.
+ */
+ ECustomTarget1 = 0x10,
+ /**
+ Device specific custom target 2.
+ */
+ ECustomTarget2 = 0x20,
+ /**
+ Device specific custom target 3.
+ */
+ ECustomTarget3 = 0x40,
+ /**
+ Device specific custom target 4.
+ */
+ ECustomTarget4 = 0x80,
+ /**
+ Device specific custom target 5.
+ */
+ ECustomTarget5 = 0x100,
+ /**
+ Device specific custom target 6.
+ */
+ ECustomTarget6 = 0x200,
+ /**
+ Device specific custom target 7.
+ */
+ ECustomTarget7 = 0x400,
+ /**
+ Device specific custom target 8.
+ */
+ ECustomTarget8 = 0x800,
+ /**
+ Device specific custom target 9.
+ */
+ ECustomTarget9 = 0x1000,
+ /**
+ Device specific custom target 10.
+ */
+ ECustomTarget10 = 0x2000,
+ /**
+ Device specific custom target 11.
+ */
+ ECustomTarget11 = 0x4000,
+ /**
+ Device specific custom target 12.
+ */
+ ECustomTarget12 = 0x8000,
+ /**
+ Device specific custom target 13.
+ */
+ ECustomTarget13 = 0x10000,
+ /**
+ Device specific custom target 14.
+ */
+ ECustomTarget14 = 0x20000,
+ /**
+ Device specific custom target 15.
+ */
+ ECustomTarget15 = 0x40000,
+ /**
+ Device specific custom target 16.
+ */
+ ECustomTarget16 = 0x80000,
+ /**
+ Device specific custom target 17.
+ */
+ ECustomTarget17 = 0x100000,
+ /**
+ Device specific custom target 18.
+ */
+ ECustomTarget18 = 0x200000,
+ /**
+ Device specific custom target 19.
+ */
+ ECustomTarget19 = 0x400000,
+ /**
+ Device specific custom target 20.
+ */
+ ECustomTarget20 = 0x800000,
+ /**
+ Device specific custom target 21.
+ */
+ ECustomTarget21 = 0x1000000,
+ /**
+ Device specific custom target 22.
+ */
+ ECustomTarget22 = 0x2000000,
+ /**
+ Device specific custom target 23.
+ */
+ ECustomTarget23 = 0x4000000,
+ /**
+ Device specific custom target 24.
+ */
+ ECustomTarget24 = 0x8000000,
+ /**
+ Device specific custom target 25.
+ */
+ ECustomTarget25 = 0x10000000,
+ /**
+ Device specific custom target 26.
+ */
+ ECustomTarget26 = 0x20000000,
+ /**
+ Device specific custom target 27.
+ */
+ ECustomTarget27 = 0x40000000,
+ };
+
+ /**
+ * Data structure used to pass data with ELightsOnCmdId.
+ *
+ * @publishedPartner
+ * @released
+ */
+ struct TLightsOnData
+ {
+ /**
+ Light target(s). TLightTargets can be used as bitmask.
+ Command only affects selected targets.
+ */
+ TInt iTarget;
+
+ /**
+ Intensity of light as percentage (1-100).
+ If intensity is 0, default intensity is used.
+ Note: Some devices will not support user defined intensity,
+ in which case the device will behave in its default fashion.
+ */
+ TInt iIntensity;
+
+ /**
+ Is fade-in used or not when turning lights on.
+ Note: Some devices will not support fade-in, in which case
+ the device will behave in its default fashion.
+ */
+ TBool iFadeIn;
+ };
+
+ /**
+ * Data structure used to pass data with ELightsOnSensorCmdId.
+ *
+ * @publishedPartner
+ * @released
+ */
+ struct TLightsOnSensorData
+ {
+
+ /**
+ Light target(s). TLightTargets can be used as bitmask.
+ Command only affects selected targets.
+ */
+ TInt iTarget;
+
+ /**
+ Sensitivity of light sensor as percentage (1-100)
+ If sensitivity is 0, default sensitivity is used.
+ Note: Some devices will not support user defined sensitivity,
+ in which case the device will behave in its default fashion.
+ */
+ TInt iSensitivity;
+
+ /**
+ Is fade-in used or not when turning lights on.
+ Note: Some devices will not support fade-in, in which case
+ the device will behave in its default fashion.
+ */
+ TBool iFadeIn;
+ };
+
+ /**
+ * Data structure used to pass data with ELightsBlinkCmdId
+ *
+ * @publishedPartner
+ * @released
+ */
+ struct TLightsBlinkData
+ {
+ /**
+ Light target(s). TLightTargets can be used as bitmask.
+ Command only affects selected targets.
+ If any of the selected targets doesn't support lights blink,
+ none are affected and KErrNotSupported is returned.
+ */
+ TInt iTarget;
+
+ /**
+ Intensity of light as percentage (1-100).
+ If intensity is 0, default intensity is used.
+ Note: Some devices will not support user defined intensity,
+ in which case the device will behave in its default fashion.
+ */
+ TInt iIntensity;
+
+ /**
+ Light on cycle duration in milliseconds.
+ If value is 0, use default cycle duration.
+ In that case also iOffCycleDuration must be 0.
+ Note: Some devices will not support variable blink cycle times,
+ in which case a device default blink cycle duration is used.
+ */
+ TInt iOnCycleDuration;
+
+ /**
+ Light off cycle duration in milliseconds.
+ If value is 0, use default cycle duration.
+ In that case also iOnCycleDuration must be 0.
+ Note: Some devices will not support variable blink cycle times,
+ in which case a device default blink cycle duration is use.
+ */
+ TInt iOffCycleDuration;
+ };
+
+
+ /**
+ * Data structure used to pass data with ELightsOffCmdId.
+ *
+ * @publishedPartner
+ * @released
+ */
+ struct TLightsOffData
+ {
+ /**
+ Light target(s). TLightTargets can be used as bitmask.
+ Command only affects selected targets.
+ */
+ TInt iTarget;
+
+ /**
+ Is fade-out used or not when turning lights off.
+ Note: Some devices will not support fade-out, in which case
+ the device will behave in its default fashion.
+ */
+ TBool iFadeOut;
+ };
+
+ /**
+ * Data structure used to pass data with ESetLightsIntensityCmdId.
+ *
+ * @publishedPartner
+ * @released
+ */
+ struct TLightsIntensityData
+ {
+
+ /**
+ Light target(s). TLightTargets can be used as bitmask.
+ Command only affects selected targets.
+ */
+ TInt iTarget;
+
+ /**
+ Intensity to be set for specifies targets.
+ Note: Some devices will not support user defined intensity,
+ in which case the device will behave in its default fashion.
+ */
+ TInt iIntensity;
+ };
+
+ struct TLightsColorData
+ {
+ /**
+ Light target(s). TLightTargets can be used as bitmask.
+ Command only affects selected targets.
+ */
+ TInt iTarget;
+
+ TUint8 iRed;
+
+ TUint8 iGreen;
+
+ TUint8 iBlue;
+
+ /**
+ * Set default color if True. R G B values are ignored.
+ */
+ TBool iDefaultColor;
+ };
+
+
+ // Data packages for commands
+
+ /** A typedef'd packaged TLightsOnData */
+ typedef TPckgBuf<TLightsOnData> TLightsOnCmdPackage;
+ /** A typedef'd packaged TLightsOnSensorData */
+ typedef TPckgBuf<TLightsOnSensorData> TLightsOnSensorCmdPackage;
+ /** A typedef'd packaged TLightsBlinkData */
+ typedef TPckgBuf<TLightsBlinkData> TLightsBlinkCmdPackage;
+ /** A typedef'd packaged TLightsOffData */
+ typedef TPckgBuf<TLightsOffData> TLightsOffCmdPackage;
+ /** A typedef'd packaged TLightsIntensityData */
+ typedef TPckgBuf<TLightsIntensityData> TLightsIntensityCmdPackage;
+ /** A typedef'd packaged TInt */
+ typedef TPckgBuf<TInt> TLightsSensorSensitivityCmdPackage;
+ /** A typedef'd packaged TLightsColorData */
+ typedef TPckgBuf<TLightsColorData> TLightsColorCmdPackage;
+
+ /** A typedef'd packaged TInt */
+ typedef TPckgBuf<TInt> TErrorCodeResponsePackage;
+
+
+ /**
+ * Command definitions
+ * All commands contain a command id and a set of parameters. The command ids
+ * are defined first and after that parameters for each command.
+ *
+ * This interface is asynchronous. A command is interpreted of being completed
+ * after a response for that command is received.
+ *
+ * The field input means the parameter for the command.
+ * The field output means the parameter for the response.
+ *
+ * @publishedPartner
+ * @released
+ */
+ enum TLightCmd
+ {
+ /**
+ * No command. May be used for sanity checks, but
+ * never as an actual command ID.
+ *
+ * input None
+ * output None
+ */
+ ENoCommandId = 1000,
+
+ /**
+ * Turns lights on.
+ *
+ * input TLightsOnCmdPackage See description above
+ * output TErrorCodeResponsePackage Error code
+ * KErrNone if operation succeeds.
+ * KErrNotSupported if any target doesn't support lights.
+ * KErrGeneral if there is any problem.
+ */
+ ELightsOnCmdId,
+
+ /**
+ * Turns lights on using sensor for intensity control
+ *
+ * input TLightsOnSensorCmdPackage See description above
+ * output TErrorCodeResponsePackage Error code
+ * KErrNone if operation succeeds.
+ * KErrNotSupported if any target doesn't support lights.
+ * KErrGeneral if there is any problem.
+ */
+ ELightsOnSensorCmdId,
+
+ /**
+ * Turns lights on in blinking mode
+ *
+ * input TLightsBlinkCmdPackage See description above
+ * output TErrorCodeResponsePackage Error code
+ * KErrNone if operation succeeds.
+ * KErrNotSupported if any target doesn't support lights
+ * in general or just doesn't support blink.
+ * KErrGeneral if there is any problem.
+ */
+ ELightsBlinkCmdId,
+
+ /**
+ * Turns Lights off.
+ *
+ * input TLightsOffCmdPackage See description above
+ * output TErrorCodeResponsePackage Error code
+ * KErrNone if operation succeeds.
+ * KErrNotSupported if any target doesn't support lights.
+ * KErrGeneral if there is any problem.
+ */
+ ELightsOffCmdId,
+
+ /**
+ * Set default lights intensity.
+ *
+ * input TLightsIntensityCmdPackage Lights intensity percentage
+ * output TErrorCodeResponsePackage Error code
+ * KErrNone if operation succeeds.
+ * KErrGeneral if there is any problem.
+ */
+ ESetLightsIntensityCmdId,
+
+ /**
+ * Set default lights sensor sensitivity.
+ *
+ * input TLightsSensorSensitivityCmdPackage Sensor sensitivity
+ * percentage
+ * output TErrorCodeResponsePackage Error code
+ * KErrNone if operation succeeds.
+ * KErrGeneral if there is any problem.
+ */
+ ESetLightsSensorSensitivityCmdId,
+
+
+ /**
+ * Set the color attribute of the light target.
+ *
+ * input TLightsColorCmdPackage See description above
+ * output TErrorCodeResponsePackage Error code
+ * KErrNone if operation succeeds.
+ * KErrNotSupported if any target doesn't support lights.
+ * KErrGeneral if there is any problem.
+ */
+ ELightsSetColorCmdId
+
+ };
+ }
+
+#endif // HWRMLIGHTCOMMANDS_H
+
+// End of File