From f17d190f0f737b55230062ab5e601ed7fcdd2f02 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Tue, 25 Sep 2012 00:35:32 +0100 Subject: libusbx-1.0.14 --- ChangeLog | 144 ++++++++++++++++++++++++++++++++++++++++++++++-- NEWS | 135 +-------------------------------------------- libusb/libusb.h | 4 +- libusb/os/windows_usb.c | 2 +- libusb/version.h | 2 +- libusb/version_nano.h | 2 +- 6 files changed, 146 insertions(+), 143 deletions(-) diff --git a/ChangeLog b/ChangeLog index 359365c..c22883b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,139 @@ -For the latest change log, please visit: -http://log.libusbx.org - -Alternatively, if you have retrieved the libusbx git repository, -simply navigate to it and issue the command 'git log'. +For detailed information about the changes below, please see the git log or +visit: http://log.libusbx.org + +2012-09-26: v1.0.14 +* Reverts the previous API change with regards to bMaxPower. + If this doesn't matter to you, you are encouraged to keep using v1.0.13, + as it will use the same attribute as v2.0, to be released soon. +* Note that LIBUSBX_API_VERSION is *decreased* to 0x010000FF and the previous + guidelines with regards to concurent use of MaxPower/bMaxPower still apply. + +2012-09-20: v1.0.13 +* [MAJOR] Fix a typo in the API with struct libusb_config_descriptor where + MaxPower was used instead of bMaxPower, as defined in the specs. If your + application was accessing the MaxPower attribute, and you need to maintain + compatibility with libusb or older versions, see APPENDIX A below. +* Fix broken support for the 0.1 -> 1.0 libusb-compat layer +* Fix unwanted cancellation of pending timeouts as well as major timeout related bugs +* Fix handling of HID and composite devices on Windows +* Introduce LIBUSBX_API_VERSION macro +* Add Cypress FX/FX2 firmware upload sample, based on fxload from + http://linux-hotplug.sourceforge.net +* Add libusb0 (libusb-win32) and libusbK driver support on Windows. Note that while + the drivers allow it, isochronous transfers are not supported yet in libusbx. Also + not supported yet is the use of libusb-win32 filter drivers on composite interfaces +* Add support for the new get_capabilities ioctl on Linux and avoid unnecessary + splitting of bulk transfers +* Improve support for newer Intel and Renesas USB 3.0 controllers on Windows +* Harmonize the device number for root hubs across platforms +* Other bug fixes and improvements + +2012-06-15: v1.0.12 +* Fix a potential major regression with pthread on Linux +* Fix missing thread ID from debug log output on cygwin +* Fix possible crash when using longjmp and MinGW's gcc 4.6 +* Add topology calls: libusb_get_port_number(), libusb_get_parent() & libusb_get_port_path() +* Add toggleable debug, using libusb_set_debug() or the LIBUSB_DEBUG environment variable +* Define log levels in libusb.h and set timestamp origin to first libusb_init() call +* All logging is now sent to to stderr (info was sent to stdout previously) +* Update log messages severity and avoid polluting log output on OS-X +* Add HID driver support on Windows +* Enable interchangeability of MSVC and MinGW DLLs +* Additional bug fixes and improvements + +2012-05-08: v1.0.11 +* Revert removal of critical Windows event handling that was introduced in 1.0.10 +* Fix a possible deadlock in Windows when submitting transfers +* Add timestamped logging +* Add NetBSD support (experimental) and BSD libusb_get_device_speed() data +* Add bootstrap.sh alongside autogen.sh (bootstrap.sh doesn't invoke configure) +* Search for device nodes in /dev for Android support +* Other bug fixes + +2012-04-17: v1.0.10 +* Public release +* Add libusb_get_version +* Add Visual Studio 2010 project files +* Some Windows code cleanup +* Fix xusb sample warnings + +2012-04-02: v1.0.9 +* First libusbx release +* Add libusb_get_device_speed (all, except BSD) and libusb_error_name +* Add Windows support (WinUSB driver only) +* Add OpenBSD support +* Add xusb sample +* Tons of bug fixes + +2010-05-07: v1.0.8 +* Bug fixes + +2010-04-19: v1.0.7 +* Bug fixes and documentation tweaks +* Add more interface class definitions + +2009-11-22: v1.0.6 +* Bug fixes +* Increase libusb_handle_events() timeout to 60s for powersaving + +2009-11-15: v1.0.5 + * Use timerfd when available for timer management + * Small fixes/updates + +2009-11-06: v1.0.4 release + * Bug fixes including transfer locking to fix some potential threading races + * More flexibility with clock types on Linux + * Use new bulk continuation tracking in Linux 2.6.32 for improved handling + of short/failed transfers + +2009-08-27: v1.0.3 release + * Bug fixes + * Add libusb_get_max_iso_packet_size() + +2009-06-13: v1.0.2 release + * Bug fixes + +2009-05-12: v1.0.1 release + * Bug fixes + * Darwin backend + +2008-12-13: v1.0.0 release + * Bug fixes + +2008-11-21: v0.9.4 release + * Bug fixes + * Add libusb_attach_kernel_driver() + +2008-08-23: v0.9.3 release + * Bug fixes + +2008-07-19: v0.9.2 release + * Bug fixes + +2008-06-28: v0.9.1 release + * Bug fixes + * Introduce contexts to the API + * Compatibility with new Linux kernel features + +2008-05-25: v0.9.0 release + * First libusb-1.0 beta release + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +APPENDIX A - How to maintain code compatibility with versions of libusb and +libusbx that use MaxPower: + +If you must to maintain compatibility with versions of the library that aren't +using the bMaxPower attribute in struct libusb_config_descriptor, the +recommended way is to use the new LIBUSBX_API_VERSION macro with an #ifdef. +For instance, if your code was written as follows: + + if (dev->config[0].MaxPower < 250) + +Then you should modify it to have: + +#if defined(LIBUSBX_API_VERSION) && (LIBUSBX_API_VERSION >= 0x01000100) + if (dev->config[0].bMaxPower < 250) +#else + if (dev->config[0].MaxPower < 250) +#endif diff --git a/NEWS b/NEWS index ed25d5f..9c04694 100644 --- a/NEWS +++ b/NEWS @@ -1,133 +1,2 @@ -This file lists notable changes in each release. -For fine grained history, please see the git log at: -http://log.libusbx.org - -2012-09-20: v1.0.13 -* [MAJOR] Fix a typo in the API with struct libusb_config_descriptor where - MaxPower was used instead of bMaxPower, as defined in the specs. If your - application was accessing the MaxPower attribute, and you need to maintain - compatibility with libusb or older versions, see APPENDIX A below. -* Fix broken support for the 0.1 -> 1.0 libusb-compat layer -* Fix unwanted cancellation of pending timeouts as well as major timeout related bugs -* Fix handling of HID and composite devices on Windows -* Introduce LIBUSBX_API_VERSION macro -* Add Cypress FX/FX2 firmware upload sample, based fxload from - http://linux-hotplug.sourceforge.net -* Add libusb0 (libusb-win32) and libusbK driver support on Windows. Note that while - the drivers allow it, isochronous transfers are not supported yet in libusbx. Also - not supported yet is the use of libusb-win32 filter drivers on composite interfaces -* Add support for the new get_capabilities ioctl on Linux and avoid unnecessary - splitting of bulk transfers -* Improve support for newer Intel and Renesas USB 3.0 controllers on Windows -* Harmonize the device number for root hubs accross platforms -* Other bug fixes and improvements - -2012-06-15: v1.0.12 -* Fix a potential major regression with pthread on Linux -* Fix missing thread ID from debug log output on cygwin -* Fix possible crash when using longjmp and MinGW's gcc 4.6 -* Add topology calls: libusb_get_port_number(), libusb_get_parent() & libusb_get_port_path() -* Add toggleable debug, using libusb_set_debug() or the LIBUSB_DEBUG environment variable -* Define log levels in libusb.h and set timestamp origin to first libusb_init() call -* All logging is now sent to to stderr (info was sent to stdout previously) -* Update log messages severity and avoid polluting log output on OS-X -* Add HID driver support on Windows -* Enable interchangeability of MSVC and MinGW DLLs -* Additional bug fixes and improvements - -2012-05-08: v1.0.11 -* Revert removal of critical Windows event handling that was introduced in 1.0.10 -* Fix a possible deadlock in Windows when submitting transfers -* Add timestamped logging -* Add NetBSD support (experimental) and BSD libusb_get_device_speed() data -* Add bootstrap.sh alongside autogen.sh (bootstrap.sh doesn't invoke configure) -* Search for device nodes in /dev for Android support -* Other bug fixes - -2012-04-17: v1.0.10 -* Public release -* Add libusb_get_version -* Add Visual Studio 2010 project files -* Some Windows code cleanup -* Fix xusb sample warnings - -2012-04-02: v1.0.9 -* First libusbx release -* Add libusb_get_device_speed (all, except BSD) and libusb_error_name -* Add Windows support (WinUSB driver only) -* Add OpenBSD support -* Add xusb sample -* Tons of bug fixes - -2010-05-07: v1.0.8 -* Bug fixes - -2010-04-19: v1.0.7 -* Bug fixes and documentation tweaks -* Add more interface class definitions - -2009-11-22: v1.0.6 -* Bug fixes -* Increase libusb_handle_events() timeout to 60s for powersaving - -2009-11-15: v1.0.5 - * Use timerfd when available for timer management - * Small fixes/updates - -2009-11-06: v1.0.4 release - * Bug fixes including transfer locking to fix some potential threading races - * More flexibility with clock types on Linux - * Use new bulk continuation tracking in Linux 2.6.32 for improved handling - of short/failed transfers - -2009-08-27: v1.0.3 release - * Bug fixes - * Add libusb_get_max_iso_packet_size() - -2009-06-13: v1.0.2 release - * Bug fixes - -2009-05-12: v1.0.1 release - * Bug fixes - * Darwin backend - -2008-12-13: v1.0.0 release - * Bug fixes - -2008-11-21: v0.9.4 release - * Bug fixes - * Add libusb_attach_kernel_driver() - -2008-08-23: v0.9.3 release - * Bug fixes - -2008-07-19: v0.9.2 release - * Bug fixes - -2008-06-28: v0.9.1 release - * Bug fixes - * Introduce contexts to the API - * Compatibility with new Linux kernel features - -2008-05-25: v0.9.0 release - * First libusb-1.0 beta release - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -APPENDIX A - How to maintain code compatibility with versions of libusb and -libusbx that use MaxPower: - -If you must to maintain compatibility with versions of the library that aren't -using the bMaxPower attribute in struct libusb_config_descriptor, the -recommended way is to use the new LIBUSBX_API_VERSION macro with an #ifdef. -For instance, if your code was written as follows: - - if (dev->config[0].MaxPower < 250) - -Then you should modify it to have: - -#if defined(LIBUSBX_API_VERSION) && (LIBUSBX_API_VERSION >= 0x01000100) - if (dev->config[0].bMaxPower < 250) -#else - if (dev->config[0].MaxPower < 250) -#endif +For the latest libusbx news, please refer to the ChangeLog file, or visit: +http://libusbx.org diff --git a/libusb/libusb.h b/libusb/libusb.h index 7972ef9..da94c9b 100644 --- a/libusb/libusb.h +++ b/libusb/libusb.h @@ -130,7 +130,7 @@ typedef unsigned __int32 uint32_t; * Internally, LIBUSBX_API_VERSION is defined as follows: * (libusbx major << 24) | (libusbx minor << 16) | (16 bit incremental) */ -#define LIBUSBX_API_VERSION 0x01000100 +#define LIBUSBX_API_VERSION 0x010000FF #ifdef __cplusplus extern "C" { @@ -627,7 +627,7 @@ struct libusb_config_descriptor { /** Maximum power consumption of the USB device from this bus in this * configuration when the device is fully opreation. Expressed in units * of 2 mA. */ - uint8_t bMaxPower; + uint8_t MaxPower; /** Array of interfaces supported by this configuration. The length of * this array is determined by the bNumInterfaces field. */ diff --git a/libusb/os/windows_usb.c b/libusb/os/windows_usb.c index 9fdccdb..fce4d43 100644 --- a/libusb/os/windows_usb.c +++ b/libusb/os/windows_usb.c @@ -3192,7 +3192,7 @@ static int _hid_get_config_descriptor(struct hid_device_priv* dev, void *data, s cd->bConfigurationValue = 1; cd->iConfiguration = 0; cd->bmAttributes = 1 << 7; /* bus powered */ - cd->bMaxPower = 50; + cd->MaxPower = 50; id->bLength = LIBUSB_DT_INTERFACE_SIZE; id->bDescriptorType = LIBUSB_DT_INTERFACE; diff --git a/libusb/version.h b/libusb/version.h index dbc8acf..1970a01 100644 --- a/libusb/version.h +++ b/libusb/version.h @@ -7,7 +7,7 @@ #define LIBUSB_MINOR 0 #endif #ifndef LIBUSB_MICRO -#define LIBUSB_MICRO 13 +#define LIBUSB_MICRO 14 #endif #ifndef LIBUSB_NANO #define LIBUSB_NANO 0 diff --git a/libusb/version_nano.h b/libusb/version_nano.h index 327d562..9c8b259 100644 --- a/libusb/version_nano.h +++ b/libusb/version_nano.h @@ -1 +1 @@ -#define LIBUSB_NANO 10575 +#define LIBUSB_NANO 10576 -- cgit v1.2.1