usbmgmt/usbmgrtest/t_charging_emu/inc/tbatterycharging.h
changeset 0 c9bc50fca66e
child 25 4ddb65515edd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_charging_emu/inc/tbatterycharging.h	Tue Feb 02 02:02:59 2010 +0200
@@ -0,0 +1,144 @@
+/**
+* Copyright (c) 2005-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:
+* Usb Battery Charging test code
+* 
+*
+*/
+
+
+
+#ifndef __CDUMMYUSBDEVICE_H__
+#define __CDUMMYUSBDEVICE_H__
+
+#include <usb/chargingtest/cusbbatterychargingtestplugin.h>
+#include <usbstates.h>
+#include <ecom/ecom.h>
+#include <e32std.h>
+#include "musbmanextensionpluginobserver.h"
+#include "cusbmanextensionplugin.h"
+#include <e32test.h>
+#include <e32property.h> //Publish & Subscribe header
+
+class MUsbDeviceNotify;
+
+_LIT(KUsbChargingTestPanic, "UsbChargingTestPanic");
+enum TUsbChargingTestPanic
+	{
+	EUsbChargingTestPanicIncorrectPlugin = 0,
+	EUsbChargingTestPanicBadInputData	 = 1,
+	EUsbChargingTestPanicBadCommand		 = 2,
+	EUsbChargingTestPanicBadAsyncOp		 = 3,
+	EUsbChargingTestPanicBadCheck		 = 4,
+	};
+
+enum TUsbChargingTestCommand
+	{
+	EUsbChargingTestCommandNone		    = 0, // "none"
+	EUsbChargingTestCommandDeviceState  = 1, // "devicestate"
+	EUsbChargingTestCommandUserSetting  = 2, // "usersetting"
+	};
+
+enum TUsbChargingTestCheck
+	{
+	EUsbChargingTestCheckNone			= 0, // "none"
+	EUsbChargingTestCheckPluginState	= 1, // "pluginstate"
+	EUsbChargingTestCheckMilliAmps		= 2, // "milliamps" - requested current
+	EUsbChargingTestCheckCharging		= 3, // "charging" - available current
+	};
+
+enum TUsbChargingTestAsyncOp
+	{
+	EUsbChargingTestAsyncOpNone			= 0, // "none"
+	EUsbChargingTestAsyncOpDelay		= 1, // "delay" - microseconds
+	};
+
+class CDummyUsbDevice : public CActive, public MUsbmanExtensionPluginObserver
+	{
+public:
+	static CDummyUsbDevice* NewL();
+	virtual ~CDummyUsbDevice();
+
+	void RegisterObserverL(MUsbDeviceNotify& aObserver);
+	void DeRegisterObserver(MUsbDeviceNotify& aObserver);
+	
+	void DefinePropertyL(const TInt32 aCategory, TUint aKey,RProperty::TType eType);
+	TInt GetChargingCurrentFromProperty(TInt &aCurrent);
+	TInt WriteToRepositoryProperty(TInt iCommandValue);
+	
+	TInt StartPropertyBatteryCharging();
+
+	void DoTestsL();
+
+public: // From CActive
+	void RunL();
+	void DoCancel();
+	TInt RunError(TInt aError);
+
+protected:
+	CDummyUsbDevice();
+	void ConstructL();
+
+private:
+	void InstantiateExtensionPluginsL();
+	void UpdatePluginInfo();
+	void OpenFileL();
+	TInt GetNextLine();
+	void InterpretLine();
+	TInt GetCommand(const TDesC8& aDes);
+	TInt GetAsyncOp(const TDesC8& aDes);
+	TInt GetCheck(const TDesC8& aDes);
+	void DoCommand();
+	void DoAsyncOp();
+	void DoCheck();
+
+private: // from MUsbmanExtensionPluginObserver
+	RDevUsbcClient& MuepoDoDevUsbcClient();
+	void MuepoDoRegisterStateObserverL(MUsbDeviceNotify& aObserver);
+
+private:
+	RPointerArray<MUsbDeviceNotify> iObservers;
+	RPointerArray<CUsbmanExtensionPlugin> iExtensionPlugins;
+	// we know there'll only be one plugin, so keep a single pointer to it...
+	CUsbmanExtensionPlugin* iPlugin;
+	TUsbDeviceState  iDeviceState;
+	RDevUsbcClient iDummyLdd;
+	REComSession* iEcom;	//	Not to be deleted, only closed!
+
+	TPluginTestInfo iInfo;
+
+	RTest iTest;
+	RTimer iTimer;
+	//CRepository* iRepository;
+
+	TPtr8 iPtr; // data file
+	TPtr8 iLine; // current line
+	TInt  iLineNumber;
+	TInt iFileOffset;
+	TText8* iText;
+
+	TInt	iCommand;
+	TInt					iCommandValue;
+	TInt	iAsyncOp;
+	TInt					iAsyncOpValue;
+	TInt	iCheck;
+	TInt					iCheckValue;
+	
+	RProperty iPropertyWriteToRepositoryAck;
+	RProperty iPropertyReadChargingCurrentAck;
+	RProperty iProperty;
+	};
+
+#endif // __CDUMMYUSBDEVICE_H__
+