Beispiel #1
0
static int
readUsbBytes1 (unsigned char *buffer, int length, int wait) {
  int timeout = 100;

  return usbReadData(usb->device, usb->definition.inputEndpoint, buffer, length,
                     (wait? timeout: 0), timeout);
}
Beispiel #2
0
static ssize_t
readUsbData (
  GioHandle *handle, void *buffer, size_t size,
  int initialTimeout, int subsequentTimeout
) {
  UsbChannel *channel = handle->channel;

  {
    GioUsbReadDataMethod *method = handle->properties.readData;

    if (method) {
      return method(channel->device, channel->definition, buffer, size, initialTimeout, subsequentTimeout);
    }
  }

  {
    unsigned char endpoint = channel->definition->inputEndpoint;

    if (!endpoint) {
      errno = EAGAIN;
      return -1;
    }

    return usbReadData(channel->device, endpoint,
                       buffer, size, initialTimeout, subsequentTimeout);
  }
}
Beispiel #3
0
static ssize_t
readUsbData (
  GioHandle *handle, void *buffer, size_t size,
  int initialTimeout, int subsequentTimeout
) {
  UsbChannel *channel = handle->channel;

  {
    GioUsbReadDataMethod *method = handle->properties.readData;

    if (method) {
      return method(channel->device, &channel->definition, buffer, size, initialTimeout, subsequentTimeout);
    }
  }

  return usbReadData(channel->device, channel->definition.inputEndpoint,
                     buffer, size, initialTimeout, subsequentTimeout);
}