resourcemgmt/hwresourcesmgr/power/src/HWRMPower.cpp
changeset 0 4e1aa6a622a0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/resourcemgmt/hwresourcesmgr/power/src/HWRMPower.cpp	Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,342 @@
+// Copyright (c) 2008-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 <centralrepository.h>
+#include "HWRMtrace.h"
+#include "HWRMPower.h"
+#include "HWRMPowerImpl.h"
+#include "HWRMPowerDomainCRKeys.h"
+
+
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES  
+
+// CONSTANTS
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+/**
+ * Two-phased constructor for creating a CHWRMPower client.
+ */
+EXPORT_C CHWRMPower* CHWRMPower::NewL()
+    {  
+    CHWRMPower* power = NewLC();
+    
+    CleanupStack::Pop();
+
+    return power;        
+    }
+
+/**
+ * Two-phased constructor for creating a CHWRMPower client.
+ * Leaves instance to CleanupStack.
+ * 
+ */
+EXPORT_C CHWRMPower* CHWRMPower::NewLC()
+	{		
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::NewLC()" ));
+	
+	CHWRMPower* power = new( ELeave ) CHWRMPower();
+    
+    CleanupStack::PushL( power );    
+    power->ConstructL();         
+	
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::NewLC - return" ));
+	
+	return power;		
+	}
+
+
+/**
+ * Symbian 2nd phase constructor can leave.
+ * 
+ * @param aVoltageCallback Pointer to callback instance.
+ * @param aConsumptionCallback Pointer to callback instance.
+ */
+void CHWRMPower::ConstructL()
+	{
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::Construct()" ));
+	
+	iPowerImpl = CHWRMPowerImpl::NewL();	
+	
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::Construct - return" ));
+	}
+
+/**
+ * C++ Destructor
+ */
+EXPORT_C CHWRMPower::~CHWRMPower()
+	{
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::~CHWRMPower()" ));
+	
+	delete iPowerImpl;
+	
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::~CHWRMPower()- return" ));
+	}
+
+/**
+* Asynch
+* 
+* Get the Battery Info
+* 
+* @param aStatus This will be completed when the data are ready or an error occurs.
+* @param aBatteryConsumptionData The nominal battery info is returned in this parameter. Valid only when aStatus.Int() == KErrNone
+* @see CHWRMPower::TBatteryConsumptionData
+*/
+EXPORT_C void CHWRMPower::GetBatteryInfo(TRequestStatus& aStatus, TBatteryConsumptionData& aBatteryConsumptionData)
+	{
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::GetBatteryInfo()" ));
+		
+	iPowerImpl->DoGetBatteryInfo(aStatus, aBatteryConsumptionData);
+	
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::GetBatteryInfo - return" ));
+	}
+
+/**
+* Asynch
+* 
+* Get the Battery Voltage Info
+* 
+* @param aStatus This will be completed when the data are ready or an error occurs.
+* @param aBatteryVoltageData The nominal battery info is returned in this parameter. Valid only when aStatus.Int() == KErrNone
+* @see CHWRMPower::TBatteryVoltageData
+* 
+*/
+EXPORT_C void CHWRMPower::GetBatteryVoltageInfo(TRequestStatus& aStatus, TBatteryVoltageData& aBatteryVoltageData)
+	{
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::GetBatteryVoltageInfo()" ));
+	
+	iPowerImpl->DoGetBatteryVoltageInfo(aStatus, aBatteryVoltageData);
+	
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::GetBatteryVoltageInfo - return" ));
+	}
+
+/**            
+* 
+* Get the Base Time interval used by the plugin
+* 
+* @param aBaseTimeInterval The Base Time Interval is returned in this parameter.
+*  
+*/        
+EXPORT_C void CHWRMPower::GetBaseTimeIntervalL(TInt &aBaseTimeInterval)
+	{
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::GetBaseTimeIntervalL()" ));
+	
+	CRepository* powerCenRep = CRepository::NewLC(KCRUidPowerSettings);
+
+	//cache it in private member?
+	
+    User::LeaveIfError(powerCenRep->Get(KPowerBaseTimeInterval, aBaseTimeInterval));
+    
+    CleanupStack::PopAndDestroy(powerCenRep);
+    
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::GetBaseTimeIntervalL - return" ));
+	}
+
+/**            
+ * 
+ * Post Start request to HWRM Server to start battery Power 	
+ * measurements
+ * 
+ * @param aStatus This will be completed when measurements start or an error occurs.
+ * @param aInterval: time period multiple. 
+ */        
+EXPORT_C TInt CHWRMPower::StartAveragePowerReporting(TRequestStatus& aStatus, const TUint& aInterval)
+    {
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::StartAveragePowerReporting()" ));
+	
+	TInt err = iPowerImpl->DoStartAveragePowerReporting(aStatus, aInterval);
+
+    COMPONENT_TRACE2(_L( "HWRM PowerClient - CHWRMPower::StartAveragePowerReporting( - return 0x%x" ), err );
+    
+    return err;
+	}
+
+/**          
+*  Synchronous   
+*    
+*  Post stop request to HWRM Server to stop battery 	
+* 	power measurements
+* 
+*  success/failure for stopping measurements.       
+*/    
+EXPORT_C void CHWRMPower::StopAveragePowerReportingL()
+	{	
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::StopAveragePowerReportingL()" ));
+	
+	iPowerImpl->DoStopAveragePowerReportingL();
+
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::StopAveragePowerReportingL - return" ));
+	}
+
+
+EXPORT_C TInt CHWRMPower::SetPowerReportObserver(MHWRMBatteryPowerObserver* aPowerReportCallback)
+    {
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::SetPowerReportObserverL()" ));
+		
+	TRAPD(err,iPowerImpl->DoSetPowerReportObserverL(aPowerReportCallback));
+
+    COMPONENT_TRACE2(_L( "HWRM PowerClient - CHWRMPower::SetPowerReportObserverL err=%d- return" ), err);
+
+    return err;
+
+	}
+
+
+#ifdef SYMBIAN_HWRM_EXTPOWERINFO
+
+/**
+* Synchronous
+* Get the charger type. 
+* @param  aChargerType Contains the charger type if request is successful.
+* @return KErrNone if successful.Otherwise appropriate Error code
+* @see CHWRMPower::TBatteryChargerType
+*
+*/
+
+EXPORT_C TInt CHWRMPower::GetBatteryChargerType(TBatteryChargerType& aChargerType)
+    {
+    COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::GetBatteryChargerType()" ));
+
+    aChargerType = CHWRMPower::EBatteryChargerUnKnown;
+
+    TInt err = iPowerImpl->DoGetBatteryChargerType(aChargerType);    	
+    
+    COMPONENT_TRACE3(_L( "HWRM PowerClient - Charger Type = %d err = %d" ), aChargerType, err);        
+    
+    COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::GetBatteryChargerType() - return" ));
+
+    return err;
+    }
+/**
+* Synchronous
+* Get the charging status.
+* @param  aChargingStatus Contains the charging status if request is successful.
+* @return KErrNone if successful.Otherwise appropriate Error code
+* @see CHWRMPower::TBatteryChargingStatus
+*
+*/
+
+EXPORT_C TInt CHWRMPower::GetBatteryChargingStatus(TBatteryChargingStatus& aChargingStatus)
+    {
+    COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::GetBatteryChargingStatus()" ));
+    
+    TInt err = iPowerImpl->DoGetBatteryChargingStatus(aChargingStatus);
+
+    COMPONENT_TRACE3(_L( "HWRM PowerClient - err=%d aChargingStatus=%d" ), err, aChargingStatus);
+
+    COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::GetBatteryChargingStatus - return" ));
+
+    return err;
+    }
+
+/**
+ * Synchronous
+ * Set callbacks for charging information.
+ * 
+ * @param aChargingStatusCallback Pointer to callback instance.
+ * @param aChrgRateCallback       Pointer to callback instance.
+ * @param aChrgTimeCallback       Pointer to callback instance.
+ */
+
+
+EXPORT_C TInt CHWRMPower::SetBatteryChargingObserver(
+             MHWRMBatteryChargingStatusObserver*   aChargingStatusCallback,
+             MHWRMBatteryChargingCurrentObserver*     aChrgCurrentCallback,
+             MHWRMBatteryFullChargingTimeObserver* aChrgTimeCallback)
+    {
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::SetBatteryChargingObserver()" ));
+		
+	TRAPD(err,iPowerImpl->DoSetBatteryChargingObserverL(aChargingStatusCallback, aChrgCurrentCallback,
+                                             aChrgTimeCallback));
+
+    COMPONENT_TRACE2(_L( "HWRM PowerClient - CHWRMPower::SetBatteryChargingObserver err=%d- return" ), err);
+
+    return err;
+
+	}
+
+
+/**            
+ * 
+ * Post Start request to HWRM Server to start Battery Charging Current	
+ * measurements
+ * 
+ * @param aStatus This will be completed when measurements start or an error occurs.
+ * @param aInterval: time period multiple. 
+ */        
+EXPORT_C TInt CHWRMPower::NotifyAverageChargingCurrent(TRequestStatus& aStatus, const TUint& aInterval)
+	{	
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::NotifyAverageChargingCurrent()" ));
+	
+	TInt err = iPowerImpl->DoNotifyAverageChargingCurrent(aStatus, aInterval);
+
+    COMPONENT_TRACE2(_L( "HWRM PowerClient - CHWRMPower::NotifyAverageChargingCurrent( - return 0x%x" ), err );
+    
+    return err;
+	}
+
+/**            
+ * 
+ * Post Start request to HWRM Server to remaining charging time	
+ * measurements
+ * 
+ * @param aStatus This will be completed when measurements start or an error occurs.
+ */        
+EXPORT_C TInt CHWRMPower::NotifyBatteryFullChargingTime(TRequestStatus& aStatus)
+	{	
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::NotifyBatteryFullChargingTime()" ));
+	
+	TInt err = iPowerImpl->DoNotifyBatteryFullChargingTime(aStatus);
+
+    COMPONENT_TRACE2(_L( "HWRM PowerClient - CHWRMPower::NotifyBatteryFullChargingTime( - return 0x%x" ), err );
+    
+    return err;
+	}
+
+
+/**          
+*  Synchronous   
+*    
+*  Post stop request to HWRM Server to stop average current measurements.
+* 
+*  success/failure for stopping measurements.       
+*/    
+EXPORT_C void CHWRMPower::StopChargingNotificationL(TBatteryChargingNotifier aNotifier)
+	{	
+	COMPONENT_TRACE2(_L( "HWRM PowerClient - CHWRMPower::StopAverageVoltageReporting() aNotifier=%d" ), aNotifier);
+	
+	iPowerImpl->DoStopChargingNotificationL(aNotifier);
+
+	COMPONENT_TRACE1(_L( "HWRM PowerClient - CHWRMPower::StopAverageVoltageReporting - return" ));
+	}
+#endif //SYMBIAN_HWRM_EXTPOWERINFO
+
+//  End of File