kerneltest/e32test/usbho/t_otgdi/inc/otgroot.h
changeset 9 96e5fb8b040d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kerneltest/e32test/usbho/t_otgdi/inc/otgroot.h	Thu Dec 17 09:24:54 2009 +0200
@@ -0,0 +1,162 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "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:
+// @internalComponent
+// 
+//
+
+#ifndef OTGROOT_H_
+#define OTGROOT_H_
+
+
+// The max OTG state/event/message text length
+#define MAX_DSTRLEN		40
+
+
+class COtgRoot 
+	{
+public:
+	COtgRoot();
+	
+	static TBool& LddLoaded();
+
+	virtual void AssertionFailed(TInt aFailResult, const TDesC &aErrorDescription)=0;
+	virtual void AssertionFailed2(TInt aFailResult, const TDesC &aErrorDescription, TInt errorCode)=0;
+	virtual TBool IsActiveOutstanding() = 0;
+	
+	///////////////////////////////////////////////////////////////////////
+	// UTILITY Helper methods
+
+	static void OtgEventString(const RUsbOtgDriver::TOtgEvent aEvent, 
+	                            TBuf<MAX_DSTRLEN> &aDescription
+	                          );
+	static void OtgStateString(const RUsbOtgDriver::TOtgState aState, TBuf<MAX_DSTRLEN> &aDescription);	                          
+	static void OtgMessageString(const RUsbOtgDriver::TOtgMessage aMessage, TBuf<MAX_DSTRLEN> &aDescription);	
+	static void PeripheralStateString(TUint aPeripheralState, TBuf<MAX_DSTRLEN> &aDescription);
+	static void AConnectionIdleString(RUsbOtgDriver::TOtgConnection aAConnectionIdle, TBuf<MAX_DSTRLEN> &aDescription);
+	
+	///////////////////////////////////////////////////////////////////////
+    // RUsbOtgDriver API wrapper methods
+    
+    TInt otgLoadLdd(); // load and start stack
+    void otgUnloadLdd();// unload only
+    
+    // open/close the user/kernel channel
+    TInt otgOpen();
+    void otgClose();
+    
+	// (Test) Activation of OPT (USB HOST/OTG Stack) tests
+	TInt otgActivateOptTestMode();
+
+    // Start/stop the HOST+OTG stack
+	TInt otgStartStacks();
+	void otgStopStacks();
+	
+	// Activate T_OTGDI FDF Actor
+	
+    // Bus Control (Raise/Lower VBus)
+	TInt otgBusRequest();
+	TInt otgBusDrop();
+	TInt otgBusRespondSRP();
+	TInt otgBusClearError();
+
+	//	Functions to kick off and shut down the t_otgdi_fdfactor.exe
+	//	Necessary for back-to-back tests for HNP / SRP
+	TInt otgActivateFdfActor();
+	void otgDeactivateFdfActor();
+	
+	
+    /**
+    QueueOtgEventRequest
+    */
+    void otgQueueOtgEventRequest(RUsbOtgDriver::TOtgEvent& aEvent, TRequestStatus& aStatus);
+	void otgCancelOtgEventRequest();
+    	
+    /**
+    QueueOtgEventRequest
+    */
+    void otgQueueOtgStateRequest(RUsbOtgDriver::TOtgState& aState, TRequestStatus& aStatus);
+	void otgCancelOtgStateRequest();
+
+    /**
+    QueueOtgMessageRequest
+    */
+    void otgQueueOtgMessageRequest(RUsbOtgDriver::TOtgMessage& aMessage, TRequestStatus& aStatus);
+	void otgCancelOtgMessageRequest();
+	
+    /**
+    QueuePeripheralStateRequest
+    */
+    void otgQueuePeripheralStateRequest(TUint& aPeripheralState, TRequestStatus& aStatus);
+	void otgCancelPeripheralStateRequest();
+	
+    /**
+    QueueAConnectionIdleRequest
+    */
+    void otgQueueAConnectionIdleRequest(RUsbOtgDriver::TOtgConnection& aAConnectionIdle, TRequestStatus& aStatus);
+	void otgCancelAConnectionIdleRequest();
+	
+	// New ID_PIN API calls
+	void otgQueueOtgIdPinNotification(RUsbOtgDriver::TOtgIdPin& aIdPin, TRequestStatus& aRequest);
+	void otgCancelOtgIdPinNotification();
+	
+	// New VBus API calls
+	void otgQueueOtgVbusNotification(RUsbOtgDriver::TOtgVbus& aVbus, TRequestStatus& aStatus);
+	void otgCancelOtgVbusNotification();
+	
+	TBool otgIdPinPresent();
+	TBool otgVbusPresent();
+    	
+	static TBool SetLoaded(TBool aState);	// internal flag
+
+	// await arrival of a specific message/event/state
+	//TBool ExpectOTGEvent(const RUsbOtgDriver::TOtgEvent eventID, TInt timeoutMs=-1);
+	//TBool ExpectOTGMessage(const RUsbOtgDriver::TOtgMessage messageID, TInt timeoutMs=-1);
+	
+	void SetMaxPowerToL(TUint16 val);
+	void GetMaxPower(TUint16& val);
+	
+private:
+	
+//protected:
+public:
+    TBool StepUnloadLDD();
+    TBool StepLoadLDD();
+	void  StepSetOptActive();
+    TBool StepUnloadClient();
+    TBool StepLoadClient(TUint16 aPID, TBool aEnableHNP=ETrue, TBool aEnableSRP=ETrue);
+    TBool StepDisconnect();
+    TBool StepConnect();
+    TBool StepChangeVidPid(TUint16 aVID, TUint16 aPID);
+    
+protected:
+
+	// API datas
+	RUsbOtgDriver::TOtgEvent 	iOTGEvent;
+	RUsbOtgDriver::TOtgState 	iOTGState;
+	RUsbOtgDriver::TOtgMessage 	iOTGMessage;
+	RUsbOtgDriver::TOtgIdPin	iOTGIdPin;
+	RUsbOtgDriver::TOtgVbus   	iOTGVBus;
+	TUint 						iPeripheralState;
+	RUsbOtgDriver::TOtgConnection iAConnectionIdle;
+	// api flags
+	TBool iOptActive;
+	static TBool 	iLoadedLdd;
+	static TBool 	iFdfActorActive;
+	
+	//	FDF Actor handle
+	static RProcess	iFdfActorProcess
+	};
+
+
+#endif /*OTGROOT_H_*/