sl@0: /* sl@0: * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * sl@0: */ sl@0: // This contains T_RDevUsbcClientData.h sl@0: sl@0: #ifndef T_RDEVUSBCLIENT_DATA_H sl@0: #define T_RDEVUSBCLIENT_DATA_H sl@0: sl@0: sl@0: // User Includes sl@0: #include "DataWrapperBase.h" sl@0: #include "USBConstants.h" sl@0: sl@0: sl@0: // System includes sl@0: #include // CActive sl@0: #include // RDevUsbcClient sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: sl@0: sl@0: /** sl@0: * CT_RDevUsbcClientData class sl@0: */ sl@0: class CT_RDevUsbcClientData : public CDataWrapperBase sl@0: { sl@0: public: sl@0: ~CT_RDevUsbcClientData(); sl@0: static CT_RDevUsbcClientData* NewL(); sl@0: sl@0: virtual TAny* GetObject(); sl@0: virtual TBool DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex); sl@0: void RunL(CActive* aActive, TInt aIndex); sl@0: void DoCancel(); sl@0: void Signal(TInt aResult); sl@0: void DestroyData(); sl@0: protected: sl@0: CT_RDevUsbcClientData(); sl@0: sl@0: void ConstructL(); sl@0: sl@0: private: sl@0: void DoCmdNewL(); sl@0: void DoCmdUtilityLoadLogicalDevice(const TTEFSectionName& aSection); sl@0: void DoCmdOpen(); sl@0: void DoCmdDeviceCaps(const TTEFSectionName& aSection); sl@0: void DoCmdGetDeviceDescriptorSize(const TTEFSectionName& aSection); sl@0: void DoCmdGetDeviceDescriptor(const TTEFSectionName& aSection); sl@0: void DoCmdSetDeviceDescriptor(const TTEFSectionName& aSection); sl@0: void DoCmdUtilitySetEndPointL(const TTEFSectionName& aSection); sl@0: void DoCmdSetInterface(const TTEFSectionName& aSection); sl@0: void DoCmdDestructor(); sl@0: void DoCmdEndpointCaps(); sl@0: /** sl@0: * Returns current Testclass sl@0: */ sl@0: TInt SetEndpoint(TUint aEndpointType, TUint aEndpointDirection); sl@0: sl@0: private: sl@0: /** sl@0: * Provides handle to USB Driver channel sl@0: * USB Interface is configured using this channel sl@0: */ sl@0: RDevUsbcClient *iChannel; sl@0: sl@0: /** sl@0: * Package buffer for a TUsbcInterfaceInfo object. This buffer sl@0: * is filled prior to a call to RDevUsbcClient::SetInterface sl@0: */ sl@0: TUsbcInterfaceInfoBuf iInterface; sl@0: sl@0: /** Data structures for endpoint data, KUsbcMaxEndpoints is defined in d32usbc.h sl@0: requires both endpoint data container and descripter the data is stored to*/ sl@0: TUsbcEndpointData iEndpointData[KUsbcMaxEndpoints]; sl@0: sl@0: /** sl@0: * Number of currently set endpoints, sl@0: * maximum is defined in d32usbc.h KMaxEndpointsPerClient sl@0: */ sl@0: TInt iConfiguredEndpoints; sl@0: sl@0: sl@0: /** sl@0: * Maximum packet size for sending. sl@0: */ sl@0: TInt iTxMaxPacketSize; sl@0: sl@0: /** sl@0: * Capabilities sl@0: */ sl@0: TUsbDeviceCaps iCaps; sl@0: sl@0: /** sl@0: * Active Callback for asynchronous functions sl@0: */ sl@0: CActiveCallback* iActiveCallback; sl@0: sl@0: /** sl@0: * Buffer for init device. sl@0: */ sl@0: HBufC8* iBuffer; sl@0: HBufC8* iBuffer_verify; sl@0: /** sl@0: * Descriptor size. sl@0: */ sl@0: TInt iDeviceDescriptorSize; sl@0: /** sl@0: * Enum for the resources of the Endpoint sl@0: */ sl@0: static const TEnumEntryTable iEUsbcEndpointResource[]; sl@0: sl@0: }; sl@0: sl@0: sl@0: #endif // T_RDEVUSBCLIENT_DATA_H sl@0: