diff options
author | Pete Batard <pete@akeo.ie> | 2012-03-28 11:43:00 +0100 |
---|---|---|
committer | Pete Batard <pete@akeo.ie> | 2012-03-28 17:48:12 +0100 |
commit | d577d4f3f8e3116279e210df385caf96aad82839 (patch) | |
tree | b12494c9f0896be2d929915101e084c6620edad1 | |
parent | c0e7b289fdb35687b90263b14426319d2b96b132 (diff) | |
download | libusb-d577d4f3f8e3116279e210df385caf96aad82839.tar.gz |
Samples: fix a "value is always 0" Clang warning in xusb.c
* Remove the use of os_fd[i].recipient and alter comments with
regards to Windows Extended Props test limitations with WinUSB
-rw-r--r-- | examples/xusb.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/examples/xusb.c b/examples/xusb.c index b94aa1f..f1682ad 100644 --- a/examples/xusb.c +++ b/examples/xusb.c @@ -541,12 +541,7 @@ void read_ms_winsub_feature_descriptors(libusb_device_handle *handle, uint8_t bR uint16_t header_size; } os_fd[2] = { {"Extended Compat ID", LIBUSB_RECIPIENT_DEVICE, 0x0004, 0x10}, - {"Extended Properties", LIBUSB_RECIPIENT_DEVICE, 0x0005, 0x0A} - // NB: LIBUSB_RECIPIENT_INTERFACE should be used for the Extended Properties. - // However, for Interface requests, the WinUSB DLL forces the low byte of wIndex - // to the interface number, regardless of what you set it to, so we have to - // fallback to Device and hope the firmware answers both equally. - // See http://www.lvr.com/forum/index.php?topic=331 + {"Extended Properties", LIBUSB_RECIPIENT_INTERFACE, 0x0005, 0x0A} }; if (iface_number < 0) return; @@ -555,7 +550,13 @@ void read_ms_winsub_feature_descriptors(libusb_device_handle *handle, uint8_t bR printf("\nReading %s OS Feature Descriptor (wIndex = 0x%04d):\n", os_fd[i].desc, os_fd[i].index); // Read the header part - r = libusb_control_transfer(handle, (uint8_t)(LIBUSB_ENDPOINT_IN|LIBUSB_REQUEST_TYPE_VENDOR|os_fd[i].recipient), + r = libusb_control_transfer(handle, (uint8_t)(LIBUSB_ENDPOINT_IN|LIBUSB_REQUEST_TYPE_VENDOR|LIBUSB_RECIPIENT_DEVICE), + // NB: We should use os_fd[i].recipient instead of LIBUSB_RECIPIENT_DEVICE above, as + // LIBUSB_RECIPIENT_INTERFACE should be used for the Extended Properties. + // However, for Interface requests, the WinUSB DLL forces the low byte of wIndex + // to the interface number, regardless of what you set it to, so we have to + // fallback to Device and hope the firmware answers both equally. + // See http://www.lvr.com/forum/index.php?topic=331 bRequest, (uint16_t)(((iface_number)<< 8)|0x00), os_fd[i].index, os_desc, os_fd[i].header_size, 1000); if (r < os_fd[i].header_size) { perr(" Failed: %s", (r<0)?libusb_error_name((enum libusb_error)r):"header size is too small"); |