libusb_hotplug_register_callback method
- Pointer<
libusb_context> ctx, - int events,
- int flags,
- int vendor_id,
- int product_id,
- int dev_class,
- Pointer<
NativeFunction< cb_fn,libusb_hotplug_callback_fn> > - Pointer<
Void> user_data, - Pointer<
Int32> callback_handle,
\ingroup libusb_hotplug Register a hotplug callback function
Register a callback with the libusb_context. The callback will fire when a matching event occurs on a matching device. The callback is armed until either it is deregistered with libusb_hotplug_deregister_callback() or the supplied callback returns 1 to indicate it is finished processing events.
If the \ref LIBUSB_HOTPLUG_ENUMERATE is passed the callback will be called with a \ref LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED for all devices already plugged into the machine. Note that libusb modifies its internal device list from a separate thread, while calling hotplug callbacks from libusb_handle_events(), so it is possible for a device to already be present on, or removed from, its internal device list, while the hotplug callbacks still need to be dispatched. This means that when using \ref LIBUSB_HOTPLUG_ENUMERATE, your callback may be called twice for the arrival of the same device, once from libusb_hotplug_register_callback() and once from libusb_handle_events(); and/or your callback may be called for the removal of a device for which an arrived call was never made.
Since version 1.0.16, \ref LIBUSB_API_VERSION >= 0x01000102
\paramin
ctx context to register this callback with
\paramin
events bitwise or of events that will trigger this callback. See \ref
libusb_hotplug_event
\paramin
flags hotplug callback flags. See \ref libusb_hotplug_flag
\paramin
vendor_id the vendor id to match or \ref LIBUSB_HOTPLUG_MATCH_ANY
\paramin
product_id the product id to match or \ref LIBUSB_HOTPLUG_MATCH_ANY
\paramin
dev_class the device class to match or \ref LIBUSB_HOTPLUG_MATCH_ANY
\paramin
cb_fn the function to be invoked on a matching event/device
\paramin
user_data user data to pass to the callback function
\paramout
callback_handle pointer to store the handle of the allocated callback (can be NULL)
\returns LIBUSB_SUCCESS on success LIBUSB_ERROR code on failure
Implementation
int libusb_hotplug_register_callback(
ffi.Pointer<libusb_context> ctx,
int events,
int flags,
int vendor_id,
int product_id,
int dev_class,
ffi.Pointer<ffi.NativeFunction<libusb_hotplug_callback_fn>> cb_fn,
ffi.Pointer<ffi.Void> user_data,
ffi.Pointer<ffi.Int32> callback_handle,
) {
return _libusb_hotplug_register_callback(
ctx,
events,
flags,
vendor_id,
product_id,
dev_class,
cb_fn,
user_data,
callback_handle,
);
}