USB Communications

This section describes types and facilities used for accessing USB devices with libusb.

import "io_usb.jncx"

// typedefs

typedef io.StreamOptions io.UsbEndpointOptions;

// enums

enum io.UsbClass;
enum io.UsbControlDirection;
enum io.UsbControlRecipient;
enum io.UsbControlStdRequest;
enum io.UsbControlType;
bitflag enum io.UsbDeviceStringId;
bitflag enum io.UsbEndpointEvents;
enum io.UsbIsoSyncType;
enum io.UsbIsoUsage;
enum io.UsbSpeed;
enum io.UsbTransferType;

// structs

struct io.UsbConfigurationDescriptor;
struct io.UsbControlRequestType;
struct io.UsbControlSetup;
struct io.UsbDeviceDescriptor;
struct io.UsbDeviceStrings;
struct io.UsbEndpointDescriptor;
struct io.UsbInterfaceDescriptor;
struct io.UsbIsoHdr;
struct io.UsbIsoPacket;

// classes

class io.UsbDevice;
class io.UsbEndpoint;
class io.UsbInterface;

// global functions

io.UsbDevice* errorcode io.openUsbDevice(
    uint_t vendorId,
    uint_t productId
);