--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/perfsrv/piprofiler/plugins/PWRplugin/inc/PwrPlugin.h Mon Sep 06 15:00:47 2010 +0300
@@ -0,0 +1,167 @@
+/*
+* Copyright (c) 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:
+*
+*/
+
+#ifndef BAPPEA_PWR_SAMPLER_H
+#define BAPPEA_PWR_SAMPLER_H
+
+//#define PWR_SAMPLER_BACKLIGHT
+
+//#include "PIProfilerConfigInternal.h"
+
+// system definitions
+#include <w32std.h>
+#include <e32std.h>
+
+#include <e32property.h>
+#include <HWRMPower.h>
+#include <HWRMLight.h>
+
+// user definitions
+#include <piprofiler/SamplerPluginInterface.h>
+#include <piprofiler/ProfilerGenericClassesUsr.h>
+
+// caption definitions
+_LIT8(KPWRShortName, "pwr");
+_LIT8(KPWRMediumName, "Power sampler");
+_LIT8(KPWRLongName, "Power usage sampler");
+_LIT8(KPWRDescription, "Power sampler: \nSampling power consumption on Nokia S60 devices\nHW dep: N/A\nSW dep: S60 3.0\n");
+
+// Minimum allowed sampling interval (in ms). 0 means undefined.
+const TInt KMinSampleInterval = 250;
+const TInt KReportingPeriodInfinite = 0;
+
+const TUid KGppPropertyCat={0x20201F70};
+enum TGppPropertyKeys
+ {
+ EGppPropertySyncSampleNumber
+ };
+
+const TUid KPwrNotifierUid = { 0x2001E5B9 };
+class CProfilerPowerListener;
+
+/*
+ *
+ * PWR sampler plug-in definition
+ *
+ */
+
+class CPwrPlugin : public CSamplerPluginInterface
+{
+public:
+ static CPwrPlugin* NewL(const TUid aImplementationUid, TAny* aInitParams);
+ ~CPwrPlugin();
+
+ TInt ResetAndActivateL(CProfilerSampleStream& aStream);
+ TInt StopSampling();
+ TBool Enabled() { return iEnabled; }
+ void SetEnabled(TBool aEnabled);
+ TInt GetSamplerType();
+
+ TInt CreateFirstSample();
+
+ void GetAttributesL(CArrayFixFlat<TSamplerAttributes>* aAttributes);
+ TInt SetAttributesL(TSamplerAttributes& aAttributes);
+ void InitiateSamplerAttributesL();
+
+ TInt ConvertRawSettingsToAttributes(CDesC8ArrayFlat* aSingleSettingArray);
+
+ TInt DoSetSamplerSettings(CDesC8ArrayFlat* aAllSettings, TDesC8& aSamplerName, TInt aIndex);
+ void SaveSettingToAttributes(const TDesC8& aSetting, TInt aIndex);
+
+ TUid Id(TInt aSubId) const;
+
+ // subsampler settings, i.e. samplers implemented within a plugin
+ // no sub samplers, from CSamplerPluginInterface
+ TInt SubId(TUid aId) const {return KErrNotFound;}
+ TInt GetSubSamplers(TDes* aDes){return KErrNotFound;}
+
+private:
+ CPwrPlugin();
+ void ConstructL();
+
+private:
+ TUint8 iVersion[20];
+ TPtr8 iVersionDescriptor;
+
+ TInt iSamplerType;
+
+ CProfilerPowerListener* iPowerListener;
+
+ TInt iPeriod;
+ CArrayFixFlat<TSamplerAttributes>* iSamplerAttributes;
+public:
+ TUint32* iSampleTime;
+};
+
+#ifdef PWR_SAMPLER_BACKLIGHT
+class CProfilerPowerListener : public CBase, public MHWRMBatteryPowerObserver, public MHWRMLightObserver
+#else
+class CProfilerPowerListener : public CBase, public MHWRMBatteryPowerObserver
+#endif
+{
+public:
+ static CProfilerPowerListener* NewL(CPwrPlugin* aSampler);
+ ~CProfilerPowerListener();
+
+private:
+ CProfilerPowerListener(CPwrPlugin* aSampler);
+ void ConstructL();
+
+public:
+ TInt StartL(const TDesC8& aBuf);
+ TInt Stop();
+ TInt DisplayNotifierL(const TDesC& aLine1, const TDesC& aLine2, const TDesC& aButton1, const TDesC& aButton2);
+
+ // From MHWRMBatteryPowerObserver
+ virtual void PowerMeasurement(TInt aErr, CHWRMPower::TBatteryPowerMeasurementData& aMeasurement);
+#ifdef PWR_SAMPLER_BACKLIGHT
+ // From MHWRMLightObserver
+ virtual void LightStatusChanged(TInt aTarget, CHWRMLight::TLightStatus aStatus);
+#endif
+
+private:
+ void Sample();
+
+public:
+ TInt iPwrSamplingPeriod;
+ TInt iSampleStartTime;
+ // Value that is read from Central Repository and restored after sampling
+ TInt iOriginalReportingPeriod;
+
+private:
+
+#ifdef PWR_SAMPLER_BACKLIGHT
+ TUint8 iSample[13];
+#else
+ TUint8 iSample[12];
+#endif
+
+ TUint16 iNominalCapa;
+ TUint16 iVoltage;
+ TUint16 iCurrent;
+
+ CPwrPlugin* iSampler;
+ CHWRMPower* iPowerAPI;
+
+#ifdef PWR_SAMPLER_BACKLIGHT
+ CHWRMLight* iLightAPI;
+ CHWRMLight::TLightStatus iBackLightStatus;
+#endif
+};
+
+#endif
+