static void* message_thread(void* arg) { int *endpoints = (int *)arg; int ret = 0; int num = 0; char message[50]; while (sDevice && ret >= 0) { char buffer[16384]; ret = usb_device_bulk_transfer(sDevice, endpoints[0], buffer, sizeof(buffer), 1000); if (ret < 0 && errno == ETIMEDOUT) { ret = 0; } if (ret > 0) { printf("[RECV] "); fwrite(buffer, 1, ret, stdout); printf("\n"); // Respond by sending a message back sprintf(message, "Message from Android accessory #%d", num++); printf("[SENT] %s\n", message); fflush(stdout); usb_device_bulk_transfer(sDevice, endpoints[1], message, strlen(message), 1000); } } return NULL; }
int MtpPacket::transfer(struct usb_request* request) { int result = usb_device_bulk_transfer(request->dev, request->endpoint, request->buffer, request->buffer_length, 0); request->actual_length = result; return result; }
int hu_bulk_send (byte * buf, int len) { int ret = usb_device_bulk_transfer (current_device, write_ep, buf, len, 1000); return (ret); }
int hu_bulk_recv (byte * buf, int len) { int ret = usb_device_bulk_transfer (current_device, read_ep, buf, len, 1000); return (ret); }