--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/resourcemgmt/hwresourcesmgr/server/src/HWRMLightCommonData.cpp Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,674 @@
+// 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:
+//
+
+
+
+
+// INCLUDE FILES
+#include "HWRMtrace.h"
+#include "HWRMLightDomainCRKeys.h"
+#include "HWRMLightCommonData.h"
+#include "HWRMClientServer.h"
+#include "HWRMPrivatePSKeys.h"
+#include "HWRMConfiguration.h"
+#include "HWRMLightClientServer.h"
+#include "HWRMLightService.h"
+#include "HWRMLightCommands.h"
+#include "HWRMFeatureMgr.h"
+#include <featureuids.h>
+
+
+#include "HWRMTargetModifierPlugin.h"
+
+// EXTERNAL DATA STRUCTURES
+// None
+
+// EXTERNAL FUNCTION PROTOTYPES
+// None
+
+// CONSTANTS
+/**
+* Minimum allowed sensor sensitivity setting for Light
+*/
+const TInt KHWRMLightMinSensitivity(1);
+
+/**
+* Maximum allowed sensor sensitivity setting for Light
+*/
+const TInt KHWRMLightMaxSensitivity(100);
+
+/**
+* Maximum inactivity time for lights on in seconds
+*/
+const TInt KHWRMLightMaxInactivity(60);
+
+/**
+* Minimum inactivity time for lights on in seconds
+*/
+const TInt KHWRMLightMinInactivity(5);
+
+/**
+* Default inactivity time for lights on in seconds.
+* Used if observer cannot be set up.
+*/
+const TInt KHWRMLightDefaultInactivity(15);
+
+// MACROS
+// None
+
+// LOCAL CONSTANTS AND MACROS
+// None
+
+// MODULE DATA STRUCTURES
+// None
+
+// LOCAL FUNCTION PROTOTYPES
+// None
+
+// FORWARD DECLARATIONS
+// None
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::CHWRMLightCommonData
+// C++ constructor
+// -----------------------------------------------------------------------------
+//
+CHWRMLightCommonData::CHWRMLightCommonData()
+ {
+ COMPONENT_TRACE1(_L( "HWRM Server - CHWRMLightCommonData::CHWRMLightCommonData()" ) );
+ COMPONENT_TRACE1(_L( "HWRM Server - CHWRMLightCommonData::CHWRMLightCommonData - return" ) );
+ }
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CHWRMLightCommonData::ConstructL(CHWRMPluginHandler* aPluginHandler,
+ CHWRMReservationHandler* aReservationHandler)
+ {
+ COMPONENT_TRACE1(_L( "HWRM Server - CHWRMLightCommonData::ConstructL()" ) );
+
+ //The feature UID NFeature::KAmbientLightSensor is defined in featureuids.h
+ iSensorSupported = HWRMFeatureMgr::IsFeatureSupported( NFeature::KAmbientLightSensor );
+ // Load target modifier plugin, if such a thing exists.
+ // Plugin is not mandatory for HWRM functionality,
+ // but the light control logic will be broken if the plugin is dropped from the image.
+ TRAPD( err, iTargetModifier = CHWRMTargetModifierPlugin::NewL( KHWRMLightApiEComMatch ) );
+ if ( err != KErrNone )
+ {
+ COMPONENT_TRACE2(_L( "HWRM Server - CHWRMLightCommonData::ConstructL - Target modifier plugin not loaded; cause: %d" ), err );
+ }
+
+ COMPONENT_TRACE2(_L( "HWRM Server - CHWRMLightCommonData::ConstructL - Sensor support: 0x%x" ), iSensorSupported );
+
+ ResetCenrepL();
+
+ // Initialize full system target. Ensure that only supported targets are included.
+ if ( iTargetModifier )
+ {
+ iFullSystemTarget = iTargetModifier->GetFullSystemTarget() & iSupportedTargets;
+ COMPONENT_TRACE2(_L( "HWRM Server - CHWRMLightCommonData::ConstructL - Full System Target: 0x%x" ), iFullSystemTarget );
+ }
+
+ // Set up status P&S values
+ User::LeaveIfError(RProperty::Define(KPSUidHWResourceNotification, KHWRMLightStatus, RProperty::EByteArray, KNoCapability, KHWRMSidOnlyPolicy));
+ User::LeaveIfError(iLightStatusProperty.Attach(KPSUidHWResourceNotification, KHWRMLightStatus));
+
+ TInt currentTarget( KHWRMLightFirstTarget );
+
+ for( TInt i = 0; i < KHWRMLightMaxTargets; i++ )
+ {
+ THWRMStatusInfo info;
+ info.iTarget = currentTarget;
+ info.iStatus = CHWRMExtendedLight::ELightStatusUnknown;
+ iStatusList.AppendL( info );
+ // shift the mask and target ready for next loop
+ currentTarget <<= 1;
+ }
+
+ TInt arraySize = ( sizeof( THWRMStatusInfo ) ) * KHWRMLightMaxTargets;
+ TPtr8 arrayPtr( ( TUint8* )&iStatusList[0], arraySize, arraySize );
+
+ User::LeaveIfError( iLightStatusProperty.Set( arrayPtr ) );
+
+ // Construct light service last so that the common data is in order to be used
+ // in service construction.
+ iLightService = CHWRMLightService::NewL(aPluginHandler, aReservationHandler, *this);
+
+ // Reset intensity and sensitivity to update values to plugin,
+ // as lightservice is not yet available when ResetCenrepL was called earlier.
+ SetDefaultIntensity(iDefaultIntensity, ETrue);
+
+ if ( iSensorSupported )
+ {
+ SetDefaultSensitivity(iDefaultSensitivity, ETrue);
+ }
+
+ COMPONENT_TRACE1(_L( "HWRM Server - CHWRMLightCommonData::ConstructL - return " ) );
+ }
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CHWRMLightCommonData* CHWRMLightCommonData::NewL(CHWRMPluginHandler* aPluginHandler,
+ CHWRMReservationHandler* aReservationHandler)
+ {
+ COMPONENT_TRACE1(_L( "HWRM Server - CHWRMLightCommonData::NewL()" ) );
+
+ CHWRMLightCommonData* self = new( ELeave ) CHWRMLightCommonData();
+
+ CleanupStack::PushL( self );
+ self->ConstructL(aPluginHandler, aReservationHandler);
+ CleanupStack::Pop();
+
+ COMPONENT_TRACE2(_L( "HWRM Server - CHWRMLightCommonData::NewL - return 0x%x" ), self );
+
+ return self;
+ }
+
+// ---------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------
+//
+CHWRMLightCommonData::~CHWRMLightCommonData()
+ {
+ COMPONENT_TRACE1(_L( "HWRM Server - CHWRMLightCommonData::~CHWRMLightCommonData()" ) );
+
+ delete iLightService;
+ iLightService = NULL;
+
+ // Destroy target modifier plugin
+ delete iTargetModifier;
+ iTargetModifier = NULL;
+
+ // Clean up central repository related data
+ CleanCenrep();
+
+ iLightStatusProperty.Close();
+
+ // NULL these references so that pc-lint will not complain.
+ // They are cleaned in CleanCenrep();
+ iIntensityNotifyHandler = NULL;
+ iSensitivityNotifyHandler = NULL;
+ iSensorNotifyHandler = NULL;
+ iRepository = NULL;
+ iLightsTimeoutObserver = NULL;
+
+ COMPONENT_TRACE1(_L( "HWRM Server - CHWRMLightCommonData::~CHWRMLightCommonData - return" ) );
+ }
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::PublishLightStatus
+// -----------------------------------------------------------------------------
+//
+void CHWRMLightCommonData::PublishLightStatus(TInt aTarget, CHWRMLight::TLightStatus aStatus)
+ {
+ COMPONENT_TRACE3(_L("HWRM Server - CHWRMLightCommonData::PublishLightStatus(0x%x, 0x%x)"), aTarget, aStatus);
+
+ // Publish Light status to P&S. If publishing fails, something is very wrong
+ // with P&S, so ignore it. If it is memory issue, hopefully it will work
+ // next time. If it is not, we can't do anything about it anyway.
+
+ TInt err(KErrNone);
+
+ // Loop through target and update correct indexes of iStatusList
+ TInt currentTarget(KHWRMLightFirstTarget);
+ TInt currentStatus = aStatus;
+
+ for ( int i = 0; i < KHWRMLightMaxTargets; i++ )
+ {
+ if ( aTarget & currentTarget )
+ {
+ THWRMStatusInfo info;
+ info.iTarget = currentTarget;
+ info.iStatus = currentStatus;
+ const TInt& target( info.iTarget );
+ TInt j = iStatusList.FindInOrder( target, FindByTarget );
+
+ if ( j >= 0 && j < KHWRMLightMaxTargets )
+ {
+ iStatusList[j].iStatus = currentStatus;
+ }
+ }
+ // shift the mask and target ready for next loop
+ currentTarget <<= 1;
+ }
+
+ COMPONENT_TRACE1( (_L("HWRM Server - CHWRMLightCommonData::PublishLightStatus - Setting light status property.") ) );
+
+ TInt arraySize = ( sizeof( THWRMStatusInfo ) ) * KHWRMLightMaxTargets;
+ TPtr8 arrayPtr( ( TUint8* )&iStatusList[0], arraySize, arraySize );
+
+ err = iLightStatusProperty.Set( arrayPtr );
+
+ if ( err != KErrNone )
+ {
+ COMPONENT_TRACE2(_L("HWRM Server - CHWRMLightCommonData::PublishLightStatus - Property set failed: %d"), err );
+ }
+ COMPONENT_TRACE1(_L("HWRM Server - CHWRMLightCommonData::PublishLightStatus - return"));
+ }
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::DefaultSensitivity
+// -----------------------------------------------------------------------------
+//
+TInt CHWRMLightCommonData::DefaultSensitivity()
+ {
+ if ( !iRepository )
+ {
+ TRAP_IGNORE(ResetCenrepL());
+ }
+
+ return iDefaultSensitivity;
+ }
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::SensorEnabled
+// -----------------------------------------------------------------------------
+//
+TBool CHWRMLightCommonData::SensorEnabled()
+ {
+ TBool retval(EFalse);
+
+ if ( iSensorSupported )
+ {
+ if ( !iRepository )
+ {
+ TRAP_IGNORE(ResetCenrepL());
+ }
+
+ retval = iSensorOn;
+ }
+
+ return retval;
+ }
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::DefaultState
+// -----------------------------------------------------------------------------
+//
+CHWRMLight::TLightStatus CHWRMLightCommonData::DefaultState() const
+ {
+ CHWRMLight::TLightStatus retval(CHWRMLight::ELightOn);
+
+ if ( (User::InactivityTime()).Int() >= iInactivityLimit )
+ {
+ retval = CHWRMLight::ELightOff;
+ }
+
+ COMPONENT_TRACE4(_L("HWRM Server - CHWRMLightCommonData::DefaultState - Inactivitity time: %d, Limit: %d, State: %d"), (User::InactivityTime()).Int(), iInactivityLimit, retval);
+
+ return retval;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::HandleNotifyInt
+// -----------------------------------------------------------------------------
+//
+void CHWRMLightCommonData::HandleNotifyInt(TUint32 aId, TInt aNewValue)
+ {
+ COMPONENT_TRACE3(_L("HWRM Server - CHWRMLightCommonData::HandleNotifyInt(0x%x, 0x%x)"), aId, aNewValue) ;
+
+ switch(aId)
+ {
+ case KLightIntensity:
+ {
+ SetDefaultIntensity(aNewValue);
+ break;
+ }
+ case KLightSensorSensitivity:
+ {
+ SetDefaultSensitivity(aNewValue);
+ break;
+ }
+ case KLightSensorInUse:
+ {
+ iSensorOn = (aNewValue != 0);
+ COMPONENT_TRACE2(_L("HWRM Server - CHWRMLightCommonData::HandleNotifyInt - Sensor set: %d"), iSensorOn);
+
+ // Set lights on unless sensor is not supported or inactivity time passed
+ if ( iLightService &&
+ iSensorSupported &&
+ DefaultState() == CHWRMLight::ELightOn )
+ {
+ iLightService->SystemLightsOn();
+ }
+
+ break;
+ }
+ default:
+ {
+ // Do nothing, as key does not concern us.
+ COMPONENT_TRACE2(_L("HWRM Server - CHWRMLightCommonData::HandleNotifyInt - Invalid key notified: 0x%x"), aId );
+ break;
+ }
+ }
+
+ COMPONENT_TRACE1(_L("HWRM Server - CHWRMLightCommonData::HandleNotifyInt - return") );
+ }
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::HandleNotifyError
+// -----------------------------------------------------------------------------
+//
+#if defined(COMPONENT_TRACE_FLAG) && defined(_DEBUG)
+void CHWRMLightCommonData::HandleNotifyError(TUint32 aId, TInt error, CCenRepListener* aHandler)
+#else
+void CHWRMLightCommonData::HandleNotifyError(TUint32 /*aId*/, TInt /*error*/, CCenRepListener* /*aHandler*/)
+#endif
+ {
+ COMPONENT_TRACE4(_L("HWRM Server - CHWRMLightCommonData::HandleNotifyError(0x%x, 0x%x, 0x%x)"), aId, error, aHandler);
+
+ // Try to restart cenrep related functionality. If it fails, clean up and try to restart when values are asked next.
+ TRAPD(err, ResetCenrepL());
+
+ if (err != KErrNone)
+ {
+ CleanCenrep();
+ COMPONENT_TRACE2(_L("HWRM Server - CHWRMLightCommonData::HandleNotifyError - Cenrep reset failed: %d"), err );
+ }
+
+ COMPONENT_TRACE1(_L("HWRM Server - CHWRMLightCommonData::HandleNotifyError - return") );
+ }
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::SetDefaultIntensity
+// -----------------------------------------------------------------------------
+//
+void CHWRMLightCommonData::SetDefaultIntensity(TInt aValue, TBool aConstructCall)
+ {
+ iDefaultIntensity = aValue;
+
+ if ( iDefaultIntensity < KHWRMLightMinIntensity )
+ {
+ iDefaultIntensity = KHWRMLightMinIntensity;
+ }
+ else if ( iDefaultIntensity > KHWRMLightMaxIntensity)
+ {
+ iDefaultIntensity = KHWRMLightMaxIntensity;
+ }
+ else
+ {
+ // no else
+ }
+
+ // Update value to plugin, if iLightService is initialized
+ if ( iLightService )
+ {
+ TInt target(iSupportedTargets);
+
+ if(aConstructCall)
+ {
+ target = iFullSystemTarget; //During bootup, intensity of system targets supported in the platform are changed.
+ }
+
+ TRAPD( err, iLightService->UpdateDefaultIntensityL(target, iDefaultIntensity) );
+
+ if ( err != KErrNone )
+ {
+ COMPONENT_TRACE2(_L( "HWRM Server - CHWRMLightCommonData::SetDefaultIntensity - Error updating plugin: %d" ), err );
+ }
+ else
+ {
+ // Intensity change successful.
+ // Set lights on unless sensor control is enabled or inactivity time passed or this is called from constructor
+ if ( !aConstructCall &&
+ !(iSensorSupported && iSensorOn) &&
+ DefaultState() == CHWRMLight::ELightOn )
+ {
+ iLightService->SystemLightsOn();
+ }
+ }
+ }
+
+
+ COMPONENT_TRACE2(_L( "HWRM Server - CHWRMLightCommonData::SetDefaultIntensity: %d" ), iDefaultIntensity );
+ }
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::SetDefaultSensitivity
+// -----------------------------------------------------------------------------
+//
+void CHWRMLightCommonData::SetDefaultSensitivity(TInt aValue, TBool aConstructCall)
+ {
+ iDefaultSensitivity = aValue;
+
+ if ( iDefaultSensitivity < KHWRMLightMinSensitivity )
+ {
+ iDefaultSensitivity = KHWRMLightMinSensitivity;
+ }
+ else if ( iDefaultSensitivity > KHWRMLightMaxSensitivity)
+ {
+ iDefaultSensitivity = KHWRMLightMaxSensitivity;
+ }
+ else
+ {
+ // no else
+ }
+
+ // Update value to plugin, if iLightService is initialized
+ if ( iLightService && iSensorSupported)
+ {
+ TRAPD( err, iLightService->UpdateDefaultSensitivityL(iDefaultSensitivity) );
+
+ if ( err != KErrNone )
+ {
+ COMPONENT_TRACE2(_L( "HWRM Server - CHWRMLightCommonData::SetDefaultSensitivity - Error updating plugin: %d" ), err );
+ }
+ else
+ {
+ // Sensitivity change successful.
+ // Set lights on unless sensor control is not enabled or inactivity time passed or this is called from constructor
+ if ( !aConstructCall &&
+ iSensorOn &&
+ DefaultState() == CHWRMLight::ELightOn )
+ {
+ iLightService->SystemLightsOn();
+ }
+ }
+ }
+
+ COMPONENT_TRACE2(_L( "HWRM Server - CHWRMLightCommonData::SetDefaultSensitivity: %d" ), iDefaultSensitivity );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::LightsTimeoutChange
+// -----------------------------------------------------------------------------
+//
+void CHWRMLightCommonData::LightsTimeoutChange(TInt aTimeout)
+ {
+ if ( aTimeout < KHWRMLightMinInactivity )
+ {
+ iInactivityLimit = KHWRMLightMinInactivity;
+ }
+ else if ( aTimeout > KHWRMLightMaxInactivity )
+ {
+ iInactivityLimit = KHWRMLightMaxInactivity;
+ }
+ else
+ {
+ iInactivityLimit = aTimeout;
+ }
+
+ COMPONENT_TRACE2(_L( "HWRM Server - CHWRMLightCommonData::LightsTimeoutChange: %d" ), iInactivityLimit );
+ }
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::CleanCenrep
+// Cleans the central repository related functionality.
+// -----------------------------------------------------------------------------
+//
+void CHWRMLightCommonData::CleanCenrep()
+ {
+ COMPONENT_TRACE1(_L("HWRM Server - CHWRMLightCommonData::CleanCenrep()") );
+
+ if ( iIntensityNotifyHandler )
+ {
+ iIntensityNotifyHandler->StopListening();
+ }
+ if ( iSensitivityNotifyHandler )
+ {
+ iSensitivityNotifyHandler->StopListening();
+ }
+ if ( iSensorNotifyHandler )
+ {
+ iSensorNotifyHandler->StopListening();
+ }
+
+ delete iIntensityNotifyHandler;
+ delete iSensitivityNotifyHandler;
+ delete iSensorNotifyHandler;
+ delete iRepository;
+ delete iLightsTimeoutObserver;
+
+ iIntensityNotifyHandler = NULL;
+ iSensitivityNotifyHandler = NULL;
+ iSensorNotifyHandler = NULL;
+ iRepository = NULL;
+ iLightsTimeoutObserver = NULL;
+
+ COMPONENT_TRACE1(_L( "HWRM Server - CHWRMLightCommonData::CleanCenrep - return" ) );
+ }
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::ResetCenrepL
+// (Re)starts the central repository related functionality.
+// -----------------------------------------------------------------------------
+//
+void CHWRMLightCommonData::ResetCenrepL()
+ {
+ COMPONENT_TRACE1(_L("HWRM Server - CHWRMLightCommonData::ResetCenrep()") );
+
+ CleanCenrep();
+
+ // Get read only values from cenrep
+ iRepository = CRepository::NewL(KCRUidLightSettings);
+
+ TInt value(0);
+ User::LeaveIfError(iRepository->Get(KLightIntensity, value));
+ SetDefaultIntensity(value);
+
+ User::LeaveIfError(iRepository->Get(KLightTargetMask, iSupportedTargets));
+ COMPONENT_TRACE2(_L( "HWRM Server - CHWRMLightCommonData::ConstructL - iSupportedTargets: 0x%x" ), iSupportedTargets );
+
+ // All target combinations up to all targets defined are legal, so snip the rest off
+ iSupportedTargets &= KHWRMAllTargets;
+
+ if ( iSensorSupported )
+ {
+ User::LeaveIfError(iRepository->Get(KLightSensorSensitivity, value));
+ SetDefaultSensitivity(value);
+
+ User::LeaveIfError(iRepository->Get(KLightSensorInUse, value));
+ iSensorOn = (value != 0);
+ COMPONENT_TRACE2(_L( "HWRM Server - CHWRMLightCommonData::ConstructL - iSensorOn: %d" ), iSensorOn );
+
+ TInt err = iRepository->Get(KLightSensorMask, iSensorTargets);
+
+ if ( err == KErrNone )
+ {
+ // Sensor targets can only contain supported targets.
+ iSensorTargets &= iSupportedTargets;
+ COMPONENT_TRACE2(_L( "HWRM Server - CHWRMLightCommonData::ConstructL - iSensorTargets: 0x%x" ), iSensorTargets );
+ }
+ else
+ {
+ iSensorTargets = iSupportedTargets;
+ COMPONENT_TRACE2(_L( "HWRM Server - CHWRMLightCommonData::ConstructL - Error getting sensor targets: %d, assuming all targets are sensor targets" ), err );
+ }
+ }
+
+ // Set up cenrep notify handlers for each key
+ // (separate handlers to ensure that notifications correctly also in repository resets)
+ iIntensityNotifyHandler = CCenRepListener::NewL(*this,
+ *iRepository,
+ KLightIntensity);
+ iIntensityNotifyHandler->StartListeningL();
+
+ if ( iSensorSupported )
+ {
+ iSensitivityNotifyHandler = CCenRepListener::NewL(*this,
+ *iRepository,
+ KLightSensorSensitivity);
+ iSensorNotifyHandler = CCenRepListener::NewL(*this,
+ *iRepository,
+ KLightSensorInUse);
+ iSensitivityNotifyHandler->StartListeningL();
+ iSensorNotifyHandler->StartListeningL();
+ }
+
+
+ TRAPD( err, iLightsTimeoutObserver = CHWRMLightsTimeoutObserver::NewL(this));
+
+ if ( err != KErrNone )
+ {
+ // Use default value if timeout observer cannot be created
+ iInactivityLimit = KHWRMLightDefaultInactivity;
+ COMPONENT_TRACE2(_L("HWRM Server - CHWRMLightCommonData::ResetCenrep - Using default lights timeout value: %d "),iInactivityLimit );
+ }
+
+ COMPONENT_TRACE1(_L("HWRM Server - CHWRMLightCommonData::ResetCenrep - return") );
+ }
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::ModifyTargetL
+// Passes the call to target modifier plugin
+// -----------------------------------------------------------------------------
+//
+TInt CHWRMLightCommonData::ModifyTargetL(TInt aTarget)
+ {
+ // If target modifier plugin doesn't exist, just return the target
+ if ( iTargetModifier )
+ {
+ return iTargetModifier->ModifyTargetL( aTarget);
+ }
+ else
+ {
+ COMPONENT_TRACE1(_L("HWRM Server - CHWRMLightCommonData::ModifyTargetL - Target modifier plugin NULL, no modification") );
+ return aTarget;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CHWRMLightCommonData::FindByTarget
+// Finds item from iStatusList by target.
+// -----------------------------------------------------------------------------
+//
+TInt CHWRMLightCommonData::FindByTarget( const TInt* aTarget,
+ const THWRMStatusInfo& aItem )
+ {
+ if ( *aTarget < aItem.iTarget )
+ {
+ return -1;
+ }
+ else if ( *aTarget > aItem.iTarget )
+ {
+ return 1;
+ }
+
+ return 0;
+ }
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// End of File