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 using
17 the libusb-win32 filter driver with composite member devices is not supported yet
18 * Add support for the new get_capabilities ioctl on Linux and avoid unnecessary
19 splitting of bulk transfers
20 * Improve support for newer Intel and Renesas USB 3.0 controllers on Windows
21 * Harmonize the device number for root hubs accross platforms
22 * Other bug fixes and improvements
25 * Fix a potential major regression with pthread on Linux
26 * Fix missing thread ID from debug log output on cygwin
27 * Fix possible crash when using longjmp and MinGW's gcc 4.6
28 * Add topology calls: libusb_get_port_number(), libusb_get_parent() & libusb_get_port_path()
29 * Add toggleable debug, using libusb_set_debug() or the LIBUSB_DEBUG environment variable
30 * Define log levels in libusb.h and set timestamp origin to first libusb_init() call
31 * All logging is now sent to to stderr (info was sent to stdout previously)
32 * Update log messages severity and avoid polluting log output on OS-X
33 * Add HID driver support on Windows
34 * Enable interchangeability of MSVC and MinGW DLLs
35 * Additional bug fixes and improvements
38 * Revert removal of critical Windows event handling that was introduced in 1.0.10
39 * Fix a possible deadlock in Windows when submitting transfers
40 * Add timestamped logging
41 * Add NetBSD support (experimental) and BSD libusb_get_device_speed() data
42 * Add bootstrap.sh alongside autogen.sh (bootstrap.sh doesn't invoke configure)
43 * Search for device nodes in /dev for Android support
48 * Add libusb_get_version
49 * Add Visual Studio 2010 project files
50 * Some Windows code cleanup
51 * Fix xusb sample warnings
54 * First libusbx release
55 * Add libusb_get_device_speed (all, except BSD) and libusb_error_name
56 * Add Windows support (WinUSB driver only)
65 * Bug fixes and documentation tweaks
66 * Add more interface class definitions
70 * Increase libusb_handle_events() timeout to 60s for powersaving
73 * Use timerfd when available for timer management
76 2009-11-06: v1.0.4 release
77 * Bug fixes including transfer locking to fix some potential threading races
78 * More flexibility with clock types on Linux
79 * Use new bulk continuation tracking in Linux 2.6.32 for improved handling
80 of short/failed transfers
82 2009-08-27: v1.0.3 release
84 * Add libusb_get_max_iso_packet_size()
86 2009-06-13: v1.0.2 release
89 2009-05-12: v1.0.1 release
93 2008-12-13: v1.0.0 release
96 2008-11-21: v0.9.4 release
98 * Add libusb_attach_kernel_driver()
100 2008-08-23: v0.9.3 release
103 2008-07-19: v0.9.2 release
106 2008-06-28: v0.9.1 release
108 * Introduce contexts to the API
109 * Compatibility with new Linux kernel features
111 2008-05-25: v0.9.0 release
112 * First libusb-1.0 beta release
114 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116 APPENDIX A - How to maintain code compatibility with versions of libusb and
117 libusbx that use MaxPower:
119 If you must to maintain compatibility with versions of the library that aren't
120 using the bMaxPower attribute in struct libusb_config_descriptor, the
121 recommended way is to use the new LIBUSBX_API_VERSION macro with an #ifdef.
122 For instance, if your code was written as follows:
124 if (dev->config[0].MaxPower < 250)
126 Then you should modify it to have:
128 #if defined(LIBUSBX_API_VERSION) && (LIBUSBX_API_VERSION >= 0x01000100)
129 if (dev->config[0].bMaxPower < 250)
131 if (dev->config[0].MaxPower < 250)