haitest/bspsvs/suite/e32/inc/T_RDevUsbcClientData.h
changeset 0 cec860690d41
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/haitest/bspsvs/suite/e32/inc/T_RDevUsbcClientData.h	Tue Feb 02 01:39:10 2010 +0200
@@ -0,0 +1,131 @@
+/*
+* 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:
+*
+*/
+// This contains T_RDevUsbcClientData.h
+
+#ifndef T_RDEVUSBCLIENT_DATA_H
+#define T_RDEVUSBCLIENT_DATA_H
+
+
+// User Includes
+#include "DataWrapperBase.h"
+#include "USBConstants.h"
+
+
+// System includes
+#include <e32base.h> // CActive
+#include <d32usbc.h> // RDevUsbcClient
+#include <e32debug.h>
+#include <f32file.h>
+#include <e32cmn.h>
+
+
+
+/**
+ * CT_RDevUsbcClientData class
+ */
+class CT_RDevUsbcClientData : public CDataWrapperBase
+	{
+public:
+	~CT_RDevUsbcClientData();
+	static CT_RDevUsbcClientData* NewL();
+
+	virtual TAny* GetObject();
+	virtual TBool DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
+	void RunL(CActive* aActive, TInt aIndex);
+	void DoCancel();
+	void Signal(TInt aResult);		
+	void DestroyData();
+protected:
+	CT_RDevUsbcClientData();
+
+	void ConstructL();
+
+private:
+    void DoCmdNewL();
+	void DoCmdUtilityLoadLogicalDevice(const TTEFSectionName& aSection);
+	void DoCmdOpen();
+	void DoCmdDeviceCaps(const TTEFSectionName& aSection);
+	void DoCmdGetDeviceDescriptorSize(const TTEFSectionName& aSection);
+	void DoCmdGetDeviceDescriptor(const TTEFSectionName& aSection);
+	void DoCmdSetDeviceDescriptor(const TTEFSectionName& aSection);
+	void DoCmdUtilitySetEndPointL(const TTEFSectionName& aSection);
+	void DoCmdSetInterface(const TTEFSectionName& aSection);			
+	void DoCmdDestructor();
+	void DoCmdEndpointCaps(); 
+    /**
+	 * Returns current Testclass 
+	 */
+	TInt SetEndpoint(TUint aEndpointType, TUint aEndpointDirection);	
+	
+private:
+/**
+	* Provides handle to USB Driver channel
+	* USB Interface is configured using this channel
+	*/	
+	RDevUsbcClient *iChannel;
+	
+	/**
+	* Package buffer for a TUsbcInterfaceInfo object. This buffer
+	* is filled prior to a call to RDevUsbcClient::SetInterface
+	*/
+	TUsbcInterfaceInfoBuf iInterface;
+	
+	/** Data structures for endpoint data, KUsbcMaxEndpoints is defined in d32usbc.h 
+	 requires both endpoint data container and descripter the data is stored to*/
+	TUsbcEndpointData iEndpointData[KUsbcMaxEndpoints];	
+			
+	/** 
+	* Number of currently set endpoints, 
+	* maximum is defined in d32usbc.h KMaxEndpointsPerClient
+	*/
+	TInt iConfiguredEndpoints;
+			
+
+	/**
+	* Maximum packet size for sending.
+	*/
+	TInt iTxMaxPacketSize;
+	
+	/**
+	 * Capabilities
+	 */
+	TUsbDeviceCaps iCaps;	
+	
+	/**
+	 * Active Callback for asynchronous functions
+	 */
+	CActiveCallback* iActiveCallback;
+		
+	/**
+	 * Buffer for init device.
+	 */
+	HBufC8* iBuffer;	
+    HBufC8* iBuffer_verify;
+   	/**
+	 * Descriptor size.
+	 */ 
+    TInt iDeviceDescriptorSize;
+	/**
+	 * Enum for the resources of the Endpoint
+	 */
+	static const TEnumEntryTable iEUsbcEndpointResource[];	
+	
+	};
+
+
+#endif // T_RDEVUSBCLIENT_DATA_H
+