Changelog
Klaus Reimer
Renamed os and architecture identifiers to the naming conventions of
the JNA project. So the platforms are now named: linux-x86,
linux-x86-64, linux-arm, linux-aarch64, darwin-x86-64, win32-x86 and
win32-x86-64.
Add missing SPEED_SUPER_PLUS constant.
Wrap new libusb functions: setOption, devMemAlloc, devMemFree, interruptEventHandler, getPollfds, freePollfds.
Updated to libusb 1.0.22.
Dropped support for 32 bit macOS because XCode no longer supports it.
Added support for 64 bit ARM platform.
Split project into usb4java (Main library), usb4java-javax
(javax-usb extension) and libusb4java (Native code).
Add hotplug support to low-level API.
Add asynchronous I/O support to low-level API.
Using reunited libusb/libusbx 1.0.16 as backend.
Add new libusb constants: LOW_SPEED_OPERATION, FULL_SPEED_OPERATION,
HIGH_SPEED_OPERATION, SUPER_SPEED_OPERATION, BM_LPM_SUPPORT,
BM_LTM_SUPPORT, BT_WIRELESS_USB_DEVICE_CAPABILITY, BT_USB_2_0_EXTENSION,
BT_SS_USB_DEVICE_CAPABILITY, BT_CONTAINER_ID, CAP_HAS_HOTPLUG,
CAP_HAS_HID_ACCESS, CAP_SUPPORTS_DETACH_KERNEL_DRIVER, DT_BOS,
DT_DEVICE_CAPABILITY, DT_SS_ENDPOINT_COMPANION
Wrap new libusb methods: getPortNumbers, setAutoDetachKernelDriver,
setLocale, strError.
Implement support for SuperSpeed Endpoint Companion Descriptor.
Implement support for BOS Descriptor, BOS Device Capability
Descriptor, USB 2.0 Extension Descriptor, SuperSpeed USB Device
Capability Descriptor and Container ID descriptor.
Using uninitialized descriptors now throw an IllegalStateException
instead of crashing.
Rewritten library to use libusb 1.0 as backend.
Made library loading more universal to support loading shared libraries
for platforms not officially supported by usb4java.
Add native library for linux-arm platform (Raspberry Pi).
Native libraries are no longer extracted to a temporary directory when
they are not in a JAR file.
Improve error handling during native lib loading so javax-usb no
longer hides the important exceptions.
Fix logic error in AbstractIrpQueue#isBusy().
Refactored project structure back into a single project. Native
libraries are now included in the main JAR file.
Corrected endpoint index in JNI libraries.
Refactored loading of native libraries. The libraries are now a
standard Java dependency and are automatically extracted during
runtime. So no java.library.path or LD_LIBRARY_PATH tinkering
needed anymore. Just put the two JARs into your class path and
that's it.
Improved error messages when loading the JNI library fails.
Fixed library paths in dylibs so they can be placed in
*.app/Contents/MacOS.
Now trying to load the JNI library with the following library names:
usb4java, usb4java32, libusb4java, libusb4java32.
Fixed missing support for custom buffer offsets and lengths.
Fixed problem with empty control requests on Mac OS X.
Implemented configuration to control the communication timeout.
Implemented configuration to control the scan mode and to improve
scan performance by filtering for specific vendor and product ids.
libusb reports broken bus root devices when detaching USB devices
and when user has no root permissions on linux. Fixed it by
only trusting root devices which are also in the device list of a bus.