--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/resourcemgmt/hwresourcesmgr/server/inc/HWRMLightCommonData.h Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,227 @@
+/*
+* 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:
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalTechnology
+*/
+
+#ifndef HWRMLIGHTCOMMONDATA_H
+#define HWRMLIGHTCOMMONDATA_H
+
+// INCLUDES
+#include <e32base.h>
+#include <centralrepository.h>
+#include <e32property.h>
+#include "cenrepobserver.h"
+#include "HWRMLightsTimeoutObserver.h"
+#include "HWRMLight.h"
+#include "HWRMCmn.h"
+
+// CONSTANTS
+// None
+
+// MACROS
+// None
+
+// DATA TYPES
+// None
+
+// FUNCTION PROTOTYPES
+// None
+
+// FORWARD DECLARATIONS
+class CHWRMLightService;
+class CHWRMPluginHandler;
+class CHWRMReservationHandler;
+class CHWRMTargetModifierPlugin;
+
+// CLASS DECLARATION
+/**
+* Container for Light data that is common for all sessions.
+* Also handles Light related cenrep and P&S data.
+* HWRM server upkeeps the instance.
+*
+*/
+class CHWRMLightCommonData : public CBase,
+ public MCenRepObserver,
+ public MHWRMLightsTimeoutObserver
+ {
+ public: // Constructors and Destructor
+
+ /**
+ * Two-phased constructor.
+ *
+ * @param aPluginHandler Pointer to plugin handler for light
+ * @param aReservationHandler Pointer to reservation handler for light
+ */
+ static CHWRMLightCommonData* NewL(CHWRMPluginHandler* aPluginHandler,
+ CHWRMReservationHandler* aReservationHandler);
+
+ /**
+ * Destructor.
+ */
+ virtual ~CHWRMLightCommonData();
+
+ public: // New functions
+
+ /**
+ * Getter for default sensor sensitivity
+ *
+ * @return Default sensor sensitivity
+ */
+ TInt DefaultSensitivity();
+
+ /**
+ * Getter for light sensor enable status
+ *
+ * @return Light sensor enable status
+ */
+ TBool SensorEnabled();
+
+ /**
+ * Getter for supported light targets
+ *
+ * @return Bitmask of supported lights targets.
+ */
+ inline TInt SupportedTargets() const;
+
+ /**
+ * Getter for sensor supporting light targets
+ *
+ * @return Bitmask of sensor supporting lights targets.
+ */
+ inline TInt SensorTargets() const;
+
+ /**
+ * Getter for full system light target
+ *
+ * @return Bitmask of full system light targets.
+ */
+ inline TInt FullSystemTarget() const;
+
+ /**
+ * Publish Light status
+ *
+ * @param aTarget Light target for which the status is published.
+ * @param aStatus New Light status to be published.
+ */
+ void PublishLightStatus(TInt aTarget, CHWRMLight::TLightStatus aStatus);
+
+ /**
+ * Checks what the default state for lights should be
+ * based on inactivity timer.
+ *
+ * @return CHWRMLight::TLightStatus indicating desired state.
+ */
+ CHWRMLight::TLightStatus DefaultState() const;
+
+ /**
+ * Modifies target as defined in CHWRMTargetModifierPlugin
+ * @see CHWRMTargetModifierPlugin::ModifyTargetL
+ */
+ TInt ModifyTargetL(TInt aTarget);
+
+ public: // Functions from base classes
+
+ // From MCenRepObserver
+ void HandleNotifyInt(TUint32 aId, TInt aNewValue);
+ void HandleNotifyError(TUint32 aId, TInt error, CCenRepListener* aHandler);
+
+ // From MHWRMLightsTimeoutObserver
+ void LightsTimeoutChange(TInt aTimeout);
+
+ private:
+
+ /**
+ * C++ default constructor.
+ */
+ CHWRMLightCommonData();
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ *
+ * @param aPluginHandler Pointer to plugin handler for light
+ * @param aReservationHandler Pointer to reservation handler for light
+ */
+ void ConstructL(CHWRMPluginHandler* aPluginHandler,
+ CHWRMReservationHandler* aReservationHandler);
+
+ /**
+ * Sets iDefaultIntensity within allowed limits.
+ * Also updates the value to plugin.
+ * @param aValue Value to set as the intensity.
+ * @param aConstructCall If ETrue, method is called from ConstructL
+ */
+ void SetDefaultIntensity(TInt aValue, TBool aConstructCall = EFalse);
+
+ /**
+ * Sets iDefaultSensitivity within allowed limits
+ * Also updates the value to plugin.
+ * @param aValue Value to set as the sensitivity
+ * @param aConstructCall If ETrue, method is called from ConstructL
+ */
+ void SetDefaultSensitivity(TInt aValue, TBool aConstructCall = EFalse);
+
+ /**
+ * Restarts notifications and re-reads values from cenrep.
+ * Used at startup and if there is an error with notifiers.
+ */
+ void ResetCenrepL();
+
+ /**
+ * Cleans up central repository related parameters.
+ */
+ void CleanCenrep();
+
+ /**
+ * Finds item from iStatusList by target.
+ */
+ static TInt FindByTarget( const TInt* aTarget,
+ const THWRMStatusInfo& aItem );
+
+ private:
+
+ TInt iDefaultIntensity; // Default intensity for lights
+ TInt iDefaultSensitivity; // Default sensor sensitivity for lights
+ TBool iSensorOn; // ETrue if sensor is enabled
+ TBool iSensorSupported; // ETrue if sensor is supported by platform
+ TInt iSupportedTargets; // Supported targets mask
+ CRepository* iRepository; // Cenrep client
+ CCenRepListener* iIntensityNotifyHandler; // Cenrep notifyhandler
+ CCenRepListener* iSensitivityNotifyHandler; // Cenrep notifyhandler
+ CCenRepListener* iSensorNotifyHandler; // Cenrep notifyhandler
+ RProperty iLightStatusProperty; // P&S property for publishing light status
+ TInt iInactivityLimit; // Cached inactivity limit
+ CHWRMLightsTimeoutObserver* iLightsTimeoutObserver; // Lights timeout observer
+ CHWRMLightService* iLightService; // Light service used to notify plugin about
+ // default intensity and sensitivity changes
+ CHWRMTargetModifierPlugin* iTargetModifier; // Target modifier plugin
+ TInt iFullSystemTarget; // Full system target, obtained from TM plugin
+ TInt iSensorTargets; // Targets that support sensor
+ RLightStatusArray iStatusList; // Cached light status
+
+ };
+
+#include "HWRMLightCommonData.inl"
+
+#endif // HWRMLIGHTCOMMONDATA_H
+
+// End of File