Fix MATCH_ANY passing to native function.

This commit is contained in:
Luca Longinotti 2013-07-19 10:33:09 +02:00
parent 13d6ddc7c1
commit db11db2fac

View File

@ -2622,9 +2622,15 @@ public final class LibUsb
}
// Mask the values for conversion to int in libusb API.
final int result = hotplugRegisterCallbackNative(context, events,
flags, (vendorId & 0xFFFF), (productId & 0xFFFF),
(deviceClass & 0xFF), callbackHandle, globalHotplugId);
final int result = hotplugRegisterCallbackNative(
context, events, flags,
(vendorId == LibUsb.HOTPLUG_MATCH_ANY) ? (LibUsb.HOTPLUG_MATCH_ANY)
: (vendorId & 0xFFFF),
(productId == LibUsb.HOTPLUG_MATCH_ANY) ? (LibUsb.HOTPLUG_MATCH_ANY)
: (productId & 0xFFFF),
(deviceClass == LibUsb.HOTPLUG_MATCH_ANY) ? (LibUsb.HOTPLUG_MATCH_ANY)
: (deviceClass & 0xFF),
callbackHandle, globalHotplugId);
if (result == LibUsb.SUCCESS)
{