1 This file lists notable changes in each release.
2 For fine grained history, please see the git log at:
5 2012-09-16: v1.0.13-rc1
6 * [MAJOR] Fix a typo in the API with struct libusb_config_descriptor where
7 MaxPower was used instead of bMaxPower, as defined in the specs. If your
8 application was accessing the MaxPower attribute, and you need to maintain
9 compatibility with libusb or older versions, see APPENDIX A below.
10 * Fix broken support for the 0.1 -> 1.0 libusb-compat layer
11 * Fix unwanted cancellation of pending timeouts as well as major timeout related bugs
12 * Fix handling of HID and composite devices on Windows
13 * Introduce LIBUSBX_API_VERSION macro
14 * Add Cypress FX/FX2 firmware upload sample, based fxload from
15 http://linux-hotplug.sourceforge.net
16 * Add libusb0 (libusb-win32) and libusbK driver support on Windows. Note that
17 isochronous transfers are not supported yet for these drivers, and that using the
18 libusb-win32 filter driver against a composite member devices is also not supported
19 * Add support for the new get_capabilities ioctl on Linux and avoid unnecessary
20 splitting of bulk transfers
21 * Improve support for newer Intel and Renesas USB 3.0 controllers on Windows
22 * Harmonize the device number for root hubs accross platforms
23 * Other bug fixes and improvements
26 * Fix a potential major regression with pthread on Linux
27 * Fix missing thread ID from debug log output on cygwin
28 * Fix possible crash when using longjmp and MinGW's gcc 4.6
29 * Add topology calls: libusb_get_port_number(), libusb_get_parent() & libusb_get_port_path()
30 * Add toggleable debug, using libusb_set_debug() or the LIBUSB_DEBUG environment variable
31 * Define log levels in libusb.h and set timestamp origin to first libusb_init() call
32 * All logging is now sent to to stderr (info was sent to stdout previously)
33 * Update log messages severity and avoid polluting log output on OS-X
34 * Add HID driver support on Windows
35 * Enable interchangeability of MSVC and MinGW DLLs
36 * Additional bug fixes and improvements
39 * Revert removal of critical Windows event handling that was introduced in 1.0.10
40 * Fix a possible deadlock in Windows when submitting transfers
41 * Add timestamped logging
42 * Add NetBSD support (experimental) and BSD libusb_get_device_speed() data
43 * Add bootstrap.sh alongside autogen.sh (bootstrap.sh doesn't invoke configure)
44 * Search for device nodes in /dev for Android support
49 * Add libusb_get_version
50 * Add Visual Studio 2010 project files
51 * Some Windows code cleanup
52 * Fix xusb sample warnings
55 * First libusbx release
56 * Add libusb_get_device_speed (all, except BSD) and libusb_error_name
57 * Add Windows support (WinUSB driver only)
66 * Bug fixes and documentation tweaks
67 * Add more interface class definitions
71 * Increase libusb_handle_events() timeout to 60s for powersaving
74 * Use timerfd when available for timer management
77 2009-11-06: v1.0.4 release
78 * Bug fixes including transfer locking to fix some potential threading races
79 * More flexibility with clock types on Linux
80 * Use new bulk continuation tracking in Linux 2.6.32 for improved handling
81 of short/failed transfers
83 2009-08-27: v1.0.3 release
85 * Add libusb_get_max_iso_packet_size()
87 2009-06-13: v1.0.2 release
90 2009-05-12: v1.0.1 release
94 2008-12-13: v1.0.0 release
97 2008-11-21: v0.9.4 release
99 * Add libusb_attach_kernel_driver()
101 2008-08-23: v0.9.3 release
104 2008-07-19: v0.9.2 release
107 2008-06-28: v0.9.1 release
109 * Introduce contexts to the API
110 * Compatibility with new Linux kernel features
112 2008-05-25: v0.9.0 release
113 * First libusb-1.0 beta release
115 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
117 APPENDIX A - How to maintain code compatibility with versions of libusb and
118 libusbx that use MaxPower:
120 If you must to maintain compatibility with versions of the library that aren't
121 using the bMaxPower attribute in struct libusb_config_descriptor, the
122 recommended way is to use the new LIBUSBX_API_VERSION macro with an #ifdef.
123 For instance, if your code was written as follows:
125 if (dev->config[0].MaxPower < 250)
127 Then you should modify it to have:
129 #if defined(LIBUSBX_API_VERSION) && (LIBUSBX_API_VERSION >= 0x01000100)
130 if (dev->config[0].bMaxPower < 250)
132 if (dev->config[0].MaxPower < 250)