1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
#ifndef __XNUSBCONNECTIONFACTORY_H__
#define __XNUSBCONNECTIONFACTORY_H__
#include "IConnectionFactory.h"
#include "XnLinkProtoLibDefs.h"
#include "XnClientUSBControlEndpoint.h"
#include <XnStringsHash.h>
#include <XnUSB.h>
struct XnUSBDeviceHandle;
typedef XnUSBDeviceHandle* XN_USB_DEV_HANDLE;
namespace xn
{
class ClientUSBConnectionFactory : public IConnectionFactory
{
public:
ClientUSBConnectionFactory(XnUInt16 nInputConnections,
XnUInt16 nOutputConnections,
XnUInt32 nPreControlReceiveSleep);
virtual ~ClientUSBConnectionFactory();
virtual XnStatus Init(const XnChar* strConnString);
virtual void Shutdown();
virtual XnBool IsInitialized() const;
XnStatus SetUsbAltInterface(XnUInt8 interfaceNum);
XnStatus GetUsbAltInterface(XnUInt8* pInterfaceNum) const;
virtual XnUInt16 GetNumOutputDataConnections() const;
virtual XnUInt16 GetNumInputDataConnections() const;
virtual XnStatus GetControlConnection(ISyncIOConnection*& pConn);
virtual XnStatus CreateOutputDataConnection(XnUInt16 nID, IOutputConnection*& pConn);
virtual XnStatus CreateInputDataConnection(XnUInt16 nID, IAsyncInputConnection*& pConn);
static XnStatus EnumerateConnStrings(XnUInt16 nProductID, XnConnectionString*& astrConnStrings, XnUInt32& nCount);
static void FreeConnStringsList(XnConnectionString* astrConnStrings);
private:
XnUInt16 m_nInputConnections;
XnUInt16 m_nOutputConnections;
XnUInt32 m_nPreControlReceiveSleep;
XnUInt8 m_nAltInterface;
ClientUSBControlEndpoint m_controlEndpoint;
static const XnUInt16 NUM_INPUT_CONNECTIONS;
XN_USB_DEV_HANDLE m_hUSBDevice;
XnBool m_bInitialized;
XnBool m_bUsbInitialized;
XnBool m_dataOpen;
};
}
#endif // __XNUSBCONNECTIONFACTORY_H__
|