- int (*SendIN)(void *Ptr, int Fcn, int Endpt, int DataTgl, void *Data, size_t Length);
- int (*SendOUT)(void *Ptr, int Fcn, int Endpt, int DataTgl, void *Data, size_t Length);
- int (*SendSETUP)(void *Ptr, int Fcn, int Endpt, int DataTgl, void *Data, size_t Length);
+ tUSBEndpoint *Next; // (usb_poll.c) Clock list
+ tUSBInterface *Interface;
+ int EndpointIdx; // Interface endpoint index
+ int EndpointNum; // Device endpoint num
+
+ int PollingPeriod; // In 1ms intervals
+ int MaxPacketSize; // In bytes
+ Uint8 Type; // Same as sUSBDriver.Endpoints.Type
+
+ int PollingAtoms; // (usb_poll.c) Period in clock list
+ void *InputData;
+};
+
+/**
+ * \brief Structure for a device's interface
+ */
+struct sUSBInterface
+{
+// tUSBInterface *Next;
+ tUSBDevice *Dev;
+
+ tUSBDriver *Driver;
+ void *Data;
+
+ int nEndpoints;
+ tUSBEndpoint Endpoints[];