#ifndef I_USB_H #define I_USB_H #include #include "predefine.h" #include "callbackdefines.h" struct Usb_endpoint{ std::uint8_t bulk_in; std::uint8_t bulk_out; std::uint8_t int_in; Usb_endpoint(uint8_t b_in,uint8_t b_out,uint8_t i_in): bulk_in(b_in),bulk_out(b_out),int_in(i_in){} bool isnull() { return (bulk_in*bulk_out*int_in) == 0; } }; class IUsb { public: virtual ~IUsb() {} virtual bool open() = 0; virtual bool close() = 0; virtual bool is_open() = 0; virtual void set_timeout(int timeout) = 0; virtual void set_usbcallback(usbcallback usbcall=0,void* usrdata=0)=0; virtual bool is_connected()=0; virtual int read_bulk(void* data, int len) = 0; virtual int write_bulk(void* data, int len) = 0; virtual int read_int(void* data, int len) = 0; virtual int control_msg(int rtype, int req, int value, int index, int len, void* data) = 0; }; #endif