--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/resourcemgmt/hwresourcesmgr/server/plugininc/HWRMVibraCommands.h Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,174 @@
+/*
+* 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 Vibra plugin API
+* - Command parameter definitions for HWRM Vibra plugin API
+* - Response parameter definitions for HWRM Vibra plugin API
+*
+*/
+
+
+
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+
+
+#ifndef HWRMVIBRACOMMANDS_H
+#define HWRMVIBRACOMMANDS_H
+
+// Include plugin service so that including only this header is necessary to use Vibra plugin API.
+#include <hwrm/hwrmpluginservice.h>
+
+// CONSTANTS
+
+// Identifies the ECom implementation to be used.
+_LIT8(KHWRMVibraApiEComMatch, "HWRMVibra");
+
+
+/**
+* Plugin interface class just encapsulates the Vibra command enumerations.
+* Responsible for defining the command IDs for each message.
+*/
+namespace HWRMVibraCommand
+ {
+ /**
+ * Data structure used to pass vibra intensity and duration.
+ * Used in EPulseVibraCmdId command.
+ *
+ * @publishedPartner
+ * @released
+ */
+ struct TVibraData
+ {
+ // Duration of vibration in milliseconds.
+ TUint iDuration;
+ // Intensity of vibration.
+ TInt8 iIntensity;
+ };
+
+ // typedef'd package of TInt containing the vibra command*/
+ typedef TPckgBuf<TInt> TStartVibraCmdDataPackage;
+
+
+ // Data packages for pulse command
+ typedef TPckgBuf<TVibraData> TPulseVibraCmdDataPackage;
+
+
+ /** typedef'd package of TInt containing the error code response. */
+ 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 TVibraCmd
+ {
+ /**
+ * No command. May be used for sanity checks, but
+ * never as an actual command ID.
+ *
+ * input None
+ * output None
+ */
+ ENoCommandId = 2000,
+
+ /**
+ * Start vibra.
+ *
+ *
+ * input TStartVibraCmdDataPackage Intensity
+ * Intensity of the vibra in decimal is -100 to 100,
+ * which shows the percentage of the vibra motor full
+ * safe rotation speed. When intensity is negative,
+ * the vibra motor rotates in the negative direction.
+ * When intensity is positive, the vibra motor rotates
+ * in the positive direction.
+ * Value 0 effectively stops the vibra.
+ * Plugin should map intensity to such values that high or
+ * low intensities never damage the device even
+ * if used for extended periods of time.
+ * output TErrorCodeResponsePackage Error code
+ * KErrNone if operation succeeds.
+ * KErrNotSupported if device doesn't support user-defined vibra intensity.
+ * KErrArgument if intensity is outside allowed range.
+ * KErrGeneral if there is any problem.
+ */
+ EStartVibraCmdId,
+
+ /**
+ * Start vibra with device default intensity.
+ *
+ * input None
+ * output TErrorCodeResponsePackage Error code
+ * KErrNone if operation succeeds.
+ * KErrGeneral if there is any problem.
+ */
+ EStartVibraWithDefaultSettingsCmdId,
+
+ /**
+ * Stop vibra.
+ *
+ * input None
+ * output TErrorCodeResponsePackage Error code
+ * KErrNone if operation succeeds.
+ * KErrGeneral if there is any problem.
+ */
+ EStopVibraCmdId,
+
+ /**
+ * Pulse vibra. Start and stop of vibration must be carried
+ * out internally within plugin or underlying implementation.
+ * If there is vibration ongoing when pulse command is sent,
+ * intensity must be set according to pulse command intensity
+ * and when specified pulse duration has expired, interrupted
+ * intensity must be restored. Ideally vibrations with varying
+ * intensity are observable althoug they would overlap.
+ *
+ * input TPulseVibraCmdDataPackage iIntensity
+ * Intensity of the vibra in decimal is 1 to 100,
+ * which shows the percentage of the vibra motor full
+ * safe rotation speed.
+ * Plugin should map intensity to such values that high or
+ * low intensities never damage the device even
+ * if used for extended periods of time.
+ * input TPulseVibraCmdDataPackage iDuration
+ * Duration of the vibra in milliseconds
+ * output TErrorCodeResponsePackage Error code
+ * KErrNone if operation succeeds.
+ * KErrNotSupported if device doesn't support user-defined vibra intensity.
+ * KErrArgument if intensity or duration is outside allowed range.
+ * KErrGeneral if there is any problem.
+ */
+ EPulseVibraCmdId
+ };
+ }
+
+#endif // HWRMVIBRACOMMANDS_H
+
+// End of File