diff -r 000000000000 -r 96e5fb8b040d kerneltest/e32test/usbho/t_otgdi/inc/otgroot.h --- /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 &aDescription + ); + static void OtgStateString(const RUsbOtgDriver::TOtgState aState, TBuf &aDescription); + static void OtgMessageString(const RUsbOtgDriver::TOtgMessage aMessage, TBuf &aDescription); + static void PeripheralStateString(TUint aPeripheralState, TBuf &aDescription); + static void AConnectionIdleString(RUsbOtgDriver::TOtgConnection aAConnectionIdle, TBuf &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_*/