resourcemgmt/vibractrl/inc/vibractrl.h
changeset 0 4e1aa6a622a0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/resourcemgmt/vibractrl/inc/vibractrl.h	Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,261 @@
+/*
+* Copyright (c) 2003-2005 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:  Vibra Control API
+*
+*/
+
+
+#ifndef VIBRA_CTRL_H__
+#define VIBRA_CTRL_H__
+
+// INCLUDES
+#include <e32base.h>
+#include <e32std.h>
+
+/**
+ *  Interface that is used to control the device vibration feature.
+ *  This class provides the ability to control the device vibration feature.
+ *  Vibration might be used in a game to signal a collision or explosion or for
+ *  giving tactile feedback to gaming events, such as a ball hitting 
+ *  a wall (shaking).
+ *
+ *  @lib VibraCtrl.DLL
+ *  @since 2.0
+ *  @deprecated since Series 60 3.0 - Use HWRM Vibra API instead (HWRMVibra.h)
+ */  
+class CVibraControl : public CBase
+    {  
+    public:
+        /**
+        * Vibration setting in the user profile.
+        * @deprecated since Series 60 3.0
+        */
+        enum TVibraModeState 
+            {
+            EVibraModeON = 0,   // Vibration setting in the user profile is on.
+            EVibraModeOFF,      // Vibration setting in the user profile is off.
+            EVibraModeUnknown   // For debugging/development and signalling an error condition.
+            };
+
+        /**
+        * Status of the vibrating setting request.
+        * @deprecated since Series 60 3.0
+        */
+        enum TVibraRequestStatus 
+            {
+            EVibraRequestOK = 0,      // Request is OK.
+            EVibraRequestFail,        // Request has failed.
+            EVibraRequestNotAllowed,  // Vibra is set off in the user profile
+            EVibraRequestStopped,     // Vibra is stopped
+            EVibraRequestUnableToStop,// Unable to stop vibra
+            EVibraRequestUnknown      // For debugging/development and signalling an error condition.
+            };
+
+        /**
+        * Internal panic codes.
+        * @deprecated since Series 60 3.0
+        */
+        enum TVibraCtrlPanic 
+            {
+            EPanicUnableToGetVibraSetting,
+            EPanicVibraGeneral
+            };
+
+    public:
+        /**
+        * Destructor.
+        * @deprecated since Series 60 3.0
+        */
+        virtual ~CVibraControl();
+
+        /**
+        * Starts the device vibration feature with factory-defined intensity.
+        * The method does not block, but returns immediately so that the 
+        * vibration happens simultaneously as the game continues to run.
+        * If StartVibra is called again before the first vibration completes
+        * then the first vibration is interrupted and the second vibrations
+        * starts immediately -- i.e. The periods of vibration are not cumulative.
+        *
+        * The vibration can be interrupted with the method StopVibra before
+        * the specified interval has elasped.
+        *
+        * Vibra settings of the vibration feature in the user profile 
+        * must be active. If no, vibration is not activated.
+        *
+        * Note: The device may have implementation defined or hardware imposed
+        *       limits to the duration of the vibration feature. In such 
+        *       circumstances any vibration will cut off at that limit even if
+        *       the duration parameter is greater than the limit.
+        *
+        * @param aDuration Duration of the vibration measured in milliseconds. 
+        *                  A value of 0 specifies that the vibration should
+        *                  continue indefinitly and should be stopped with a 
+        *                  call to StopVibra.
+        * @exception KErrGeneral Unable to start vibra.
+        *            KErrNotSupported Device doesn't support vibration feature.
+        * @see MVibraControlObserver
+        * @deprecated since Series 60 3.0
+        */
+        virtual void StartVibraL(TUint16 aDuration) = 0;
+		
+        /**
+        * Interrupts the device vibration that is started with the StartVibra
+        * method immediately.
+        *
+        * @exception KErrNotSupported Device doesn't support vibration feature.
+        * @see MVibraControlObserver
+        * @deprecated since Series 60 3.0
+        */		
+        virtual void StopVibraL(void) = 0; 
+		
+        /**
+        * This method retrieves the current settings of the vibration feature
+        * in the user profile. The developer can check the Vibra settings 
+        * in the profile and if there is no Vibra active but it is needed by 
+        * the game then the user can be informed, or asked if he wants to enable
+        * the Vibra during the game.
+        * @return TVibraModeState with the possible states EvibraModeON, 
+        *                         EVibraModeOFF or, 
+        *                         if an error occurs, EVibraModeUnknown
+        * @deprecated since Series 60 3.0
+        */
+        virtual TVibraModeState VibraSettings(void) const = 0;
+
+        /**
+        * Starts the device vibration feature. The method does not block, 
+        * but returns immediately so that the vibration happens simultaneously
+        * as the game continues to run. If StartVibra is called again before
+        * the first vibration completes then the first vibration is interrupted
+        * and the second vibrations starts immediately -- i.e. The periods of
+        * vibration are not cumulative.
+        *
+        * The vibration can be interrupted with the method StopVibra before
+        * the specified interval has elasped.
+        *
+        * Vibra settings of the vibration feature in the user profile 
+        * must be active. If no, vibration is not activated.
+        *
+        * Note: The device may have implementation defined or hardware imposed
+        *       limits to the duration of the vibration feature. In such 
+        *       circumstances any vibration will cut off at that limit even if
+        *       the duration parameter is greater than the limit.
+        *
+        *
+        * @param aDuration Duration of the vibration measured in milliseconds. 
+        *                  A value of 0 specifies that the vibration should
+        *                  continue indefinitly and should be stopped with a 
+        *                  call to StopVibra.
+        * @param aIntensity Intensity of the vibra in decimal is -100 to 100,
+        *                   which shows the percentage of the vibra motor full
+        *                   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 stops the vibra.
+        * @exception KErrGeneral Unable to start vibra.
+        *            KErrNotSupported Device doesn't support user-defined 
+        *            intensity or vibration feature is not supported.
+        *            KErrArgument One of the parameters is out of range.
+        * @see MVibraControlObserver
+        * @deprecated since Series 60 3.0
+        */
+	    virtual void StartVibraL(TUint16 aDuration, TInt aIntensity) = 0;
+	
+    protected:
+       /**
+        * C++ default constructor.
+        * @see VibraFactory
+        * @deprecated since Series 60 3.0
+        */
+        CVibraControl();
+    };
+
+/**
+*  An interface the developer implements for handling notifies events. 
+*
+*  @lib VibraCtrl.DLL
+*  @since 2.0
+*  @deprecated since Series 60 3.0 - Use HWRM Vibra API instead (HWRMVibra.h)
+*/
+class MVibraControlObserver
+    {    
+    public:
+        /** 
+        * Called when the vibration setting in the user profile is changed.
+        * @param aStatus Indicates the new setting.
+        * @deprecated since Series 60 3.0
+        */
+        virtual void VibraModeStatus(CVibraControl::TVibraModeState aStatus) = 0;
+        /** 
+        * Called when the device vibration feature is requested.
+        * @param aStatus Indicates vibra request status.
+        * @deprecated since Series 60 3.0
+		*/
+        virtual void VibraRequestStatus(CVibraControl::TVibraRequestStatus aStatus) = 0;
+	};
+
+/**
+*  Factory to create instance of the VibraControl.
+*
+*  @lib VibraCtrl.DLL
+*  @since 2.0
+*  @deprecated since Series 60 3.0 - Use HWRM Vibra API instead (HWRMVibra.h)
+*/
+class VibraFactory
+    {
+    public:
+        /**
+        * Create a CVibraControl object without notify handling.
+        * @deprecated since Series 60 3.0
+        */
+        IMPORT_C static CVibraControl* NewL(); 
+		
+        /** 
+        * Create a CVibraControl Object using notify handling
+        * The clients of this code will be notified about every change
+        * of the vibration setting in the user profile via the 
+        * MvibraControlObserver interface.
+        *
+        * @param aCallback A reference to a class implementing 
+        *                  the MVibraControlObserver interface.
+        *                  If aCallback is NULL, notify handling is
+        *                  not enabled.
+        * @see MVibraControlObserver
+        * @deprecated since Series 60 3.0
+        */
+        IMPORT_C static CVibraControl* NewL(MVibraControlObserver* aCallback);
+
+        /** 
+        * Create a CVibraControl Object using notify handling
+        * The clients of this code will be notified about every change
+        * of the vibration setting in the user profile via the 
+        * MvibraControlObserver interface. The object is left to cleanup stack.
+        *
+        * @param aCallback A reference to a class implementing 
+        *                  the MVibraControlObserver interface.		
+        *                  If aCallback is NULL, notify handling is
+        *                  not enabled.
+        * @see MVibraControlObserver
+        * @deprecated since Series 60 3.0
+        */
+        IMPORT_C static CVibraControl* NewLC(MVibraControlObserver* aCallback);
+
+    private:
+        /**
+        * C++ default constructor.
+        * @deprecated since Series 60 3.0
+        */
+        VibraFactory();
+    };
+
+#endif // VIBRA_CTRL_H__