tools: ffs-aio-example: use endpoint addresses from descriptors
[firefly-linux-kernel-4.4.55.git] / tools / usb / ffs-aio-example / multibuff / host_app / test.c
index daa3abe6bebdd22b1828a36bba8cd0c70467ca2e..2cbcce6e8dd70a2f2baa62297e492d67f57bf9a9 100644 (file)
 #define VENDOR 0x1d6b
 #define PRODUCT        0x0105
 
-/* endpoints indexes */
-
-#define EP_BULK_IN     (1 | LIBUSB_ENDPOINT_IN)
-#define EP_BULK_OUT    (2 | LIBUSB_ENDPOINT_OUT)
-
 #define BUF_LEN                8192
 
 /*
@@ -159,14 +154,21 @@ void test_exit(struct test_state *state)
 int main(void)
 {
        struct test_state state;
+       struct libusb_config_descriptor *conf;
+       struct libusb_interface_descriptor const *iface;
+       unsigned char addr;
 
        if (test_init(&state))
                return 1;
 
+       libusb_get_config_descriptor(state.found, 0, &conf);
+       iface = &conf->interface[0].altsetting[0];
+       addr = iface->endpoint[0].bEndpointAddress;
+
        while (1) {
                static unsigned char buffer[BUF_LEN];
                int bytes;
-               libusb_bulk_transfer(state.handle, EP_BULK_IN, buffer, BUF_LEN,
+               libusb_bulk_transfer(state.handle, addr, buffer, BUF_LEN,
                                     &bytes, 500);
        }
        test_exit(&state);