quick.flutter icon indicating copy to clipboard operation
quick.flutter copied to clipboard

[quick_usb] QuickUsb.openDevice always returns false

Open wfinken opened this issue 2 years ago • 14 comments

Trying to access a keyboard via USB on Windows on the current stable version of Flutter. Devices are in the list and have the appropriate values for vendorId and productId.

Flutter Doctor:

[√] Flutter (Channel stable, 3.0.5, on Microsoft Windows [Version 10.0.22622.440], locale en-US)
    • Flutter version 3.0.5 at C:\Users\wfink\Documents\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (3 weeks ago), 2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at C:\Users\wfink\AppData\Local\Android\Sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = C:\Users\wfink\AppData\Local\Android\Sdk
    • ANDROID_SDK_ROOT = C:\Users\wfink\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio1\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.11.2)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.11.31624.102
    • Windows 10 SDK version 10.0.19041.0

[√] Android Studio (version 2021.1)
    • Android Studio at C:\Program Files\Android\Android Studio1
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.22622.440]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 103.0.5060.134
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 103.0.1264.77
    ! Device emulator-5562 is offline.

[√] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Using the following code:

  void initUsb() async {
    // Initialize the usb provider
    await QuickUsb.init();

    UsbConfiguration? configuration;

    // Get the list of usb devices
    _usbList = await QuickUsb.getDeviceList();
    // Remove the usb device from the list if it is not a desired device
    _usbList = _usbList.where((element) => element.vendorId == 22348).toList();

    for (UsbDevice dev in _usbList) {
      log('device: ${dev.vendorId} : ${dev.productId} : ${dev.identifier}');

      await QuickUsb.requestPermission(_usbList.first);
      log('${dev.productId} requestPermission');

      var hasPermission = await QuickUsb.hasPermission(_usbList.first);
      log('${dev.productId} hasPermission $hasPermission');

      var openDevice = await QuickUsb.openDevice(_usbList.first);
      log('${dev.productId} openDevice $openDevice');

      //configuration = await QuickUsb.getConfiguration(0);
      log('${dev.productId} configuration $configuration');
    }

    // var configuration = await QuickUsb.getConfiguration(0);
    // log('getConfiguration $configuration');

    notifyListeners();
  }

wfinken avatar Aug 05 '22 00:08 wfinken

AFAIK, libusb could not access common HID devices.

You could try the differences

  • https://github.com/woodemi/web_usb.dart
  • https://github.com/woodemi/web_hid.dart

Related: https://github.com/woodemi/quick.flutter/issues/57#issuecomment-1196041325

Sunbreak avatar Aug 05 '22 02:08 Sunbreak

I can see the devices. I just can't open them. And I'm trying to build on Windows/Macos/Linux.

Output of the above function in log:

[log] device: 22348 : 56528 : 27
[log] 56528 requestPermission
[log] 56528 hasPermission true
[log] 56528 openDevice false
[log] 56528 configuration null
[log] device: 22348 : 7672 : 26
[log] 7672 requestPermission
[log] 7672 hasPermission true
[log] 7672 openDevice false
[log] 7672 configuration null
[log] device: 22348 : 59119 : 28
[log] 59119 requestPermission
[log] 59119 hasPermission true
[log] 59119 openDevice false
[log] 59119 configuration null

wfinken avatar Aug 05 '22 03:08 wfinken

Could try https://github.com/woodemi/libusb.dart?

$ git clone https://github.com/woodemi/libusb.dart
$ cd libusb.dart
$ flutter pub get
$ flutter pub run example/listDeviceProducts.dart

Then you could debug the listDeviceProducts.dart within VSCode

Sunbreak avatar Aug 05 '22 03:08 Sunbreak

The errors in the code indicate an issue with ffi.

libubs.ffigen.dart (~200 repeats of the below error) image

Libusb_base.dart (2 errors displayed below) image

wfinken avatar Aug 05 '22 03:08 wfinken

Tested on Windows 11

  • Flutter
> %flutter3.0.x% --version
Flutter 3.0.5 • channel stable • https://github.com/flutter/flutter
Framework • revision f1875d570e (3 weeks ago) • 2022-07-13 11:24:16 -0700
Engine • revision e85ea0e79c
Tools • Dart 2.17.6 • DevTools 2.12.2
  • libusb.dart
> git log -1
commit 9807b5ce0c635153035039eb6c1600db131359a4 (HEAD -> master, origin/master, origin/HEAD)
Author: wangkun <[email protected]>
Date:   Tue Apr 12 12:46:02 2022 +0800

    Release 0.4.23-dev.1+1

    Signed-off-by: wangkun <[email protected]>

> findstr version pubspec.yaml
version: 0.4.23-dev.1+1
  • Run test
> %flutter3.0.x% pub run example\listDeviceProducts.dart
5986:9102 open error: LIBUSB_ERROR_NOT_FOUND
8086:a36d iProduct empty
10de:1ada iProduct empty
8087:0aaa iProduct empty
deviceProductInfo [MapEntry(046d:c52f: USB Receiver), MapEntry(5986:9102: ), MapEntry(8086:a36d: ), MapEntry(10de:1ada: ), MapEntry(8087:0aaa: )]

Sunbreak avatar Aug 05 '22 05:08 Sunbreak

If you mean error of VSCode's code inspection, you should add JSON config into .vscode\settings.json

{
    "dart.flutterSdkPath": "C:\\Users\\sunbr\\w\\google\\flutter-3.0.x"
}

Sunbreak avatar Aug 05 '22 05:08 Sunbreak

Added the flutter path to the settings and still have the same errors in VSCode and trying to run with flutter pub run .\example\main.dart or flutter pub run .\example\listDeviceProducts.dart results in the following errors in console.

Output
PS C:\Users\wfink\Documents\flutterapps\libusb.dart> flutter pub run .\example\main.dart
Failed to build libusb:main:
lib/src/libusb.ffigen.dart:88:15: Error: Type 'pkg_ffi.Char' not found.
  ffi.Pointer<pkg_ffi.Char> libusb_error_name(
              ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:100:17: Error: Type 'pkg_ffi.Char' not found.
    ffi.Pointer<pkg_ffi.Char> locale,
                ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:110:15: Error: Type 'pkg_ffi.Char' not found.
  ffi.Pointer<pkg_ffi.Char> libusb_strerror(
              ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:176:17: Error: Type 'pkg_ffi.Int' not found.
    ffi.Pointer<pkg_ffi.Int> config,
                ^^^^^^^^^^^
lib/src/libusb.ffigen.dart:713:17: Error: Type 'pkg_ffi.UnsignedChar' not found.
    ffi.Pointer<pkg_ffi.UnsignedChar> endpoints,
                ^^^^^^^^^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:732:17: Error: Type 'pkg_ffi.UnsignedChar' not found.
    ffi.Pointer<pkg_ffi.UnsignedChar> endpoints,
                ^^^^^^^^^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:748:15: Error: Type 'pkg_ffi.UnsignedChar' not found.
  ffi.Pointer<pkg_ffi.UnsignedChar> libusb_dev_mem_alloc(
              ^^^^^^^^^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:766:17: Error: Type 'pkg_ffi.UnsignedChar' not found.
    ffi.Pointer<pkg_ffi.UnsignedChar> buffer,
                ^^^^^^^^^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:915:17: Error: Type 'pkg_ffi.UnsignedChar' not found.
    ffi.Pointer<pkg_ffi.UnsignedChar> data,
                ^^^^^^^^^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:941:17: Error: Type 'pkg_ffi.UnsignedChar' not found.
    ffi.Pointer<pkg_ffi.UnsignedChar> data,
                ^^^^^^^^^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:943:17: Error: Type 'pkg_ffi.Int' not found.
    ffi.Pointer<pkg_ffi.Int> actual_length,
                ^^^^^^^^^^^
lib/src/libusb.ffigen.dart:966:17: Error: Type 'pkg_ffi.UnsignedChar' not found.
    ffi.Pointer<pkg_ffi.UnsignedChar> data,
                ^^^^^^^^^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:968:17: Error: Type 'pkg_ffi.Int' not found.
    ffi.Pointer<pkg_ffi.Int> actual_length,
                ^^^^^^^^^^^
lib/src/libusb.ffigen.dart:991:17: Error: Type 'pkg_ffi.UnsignedChar' not found.
    ffi.Pointer<pkg_ffi.UnsignedChar> data,
                ^^^^^^^^^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:1133:17: Error: Type 'pkg_ffi.Int' not found.
    ffi.Pointer<pkg_ffi.Int> completed,
                ^^^^^^^^^^^
lib/src/libusb.ffigen.dart:1161:17: Error: Type 'pkg_ffi.Int' not found.
    ffi.Pointer<pkg_ffi.Int> completed,
                ^^^^^^^^^^^
lib/src/libusb.ffigen.dart:1729:24: Error: Type 'pkg_ffi.UnsignedChar' not found.
  external ffi.Pointer<pkg_ffi.UnsignedChar> extra;
                       ^^^^^^^^^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:1788:24: Error: Type 'pkg_ffi.UnsignedChar' not found.
  external ffi.Pointer<pkg_ffi.UnsignedChar> extra;
                       ^^^^^^^^^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:1856:24: Error: Type 'pkg_ffi.UnsignedChar' not found.
  external ffi.Pointer<pkg_ffi.UnsignedChar> extra;
                       ^^^^^^^^^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:2074:24: Error: Type 'pkg_ffi.Char' not found.
  external ffi.Pointer<pkg_ffi.Char> rc;
                       ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:2077:24: Error: Type 'pkg_ffi.Char' not found.
  external ffi.Pointer<pkg_ffi.Char> describe;
                       ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:2351:126: Error: Type 'pkg_ffi.Char' not found.
typedef libusb_log_cb = ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<libusb_context>, ffi.Int32, ffi.Pointer<pkg_ffi.Char>)>>;
                                                                                                                             ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:2377:83: Error: Type 'pkg_ffi.Int' not found.
typedef libusb_pollfd_added_cb = ffi.Pointer<ffi.NativeFunction<ffi.Void Function(pkg_ffi.Int, pkg_ffi.Short, ffi.Pointer<ffi.Void>)>>;
                                                                                  ^^^^^^^^^^^
lib/src/libusb.ffigen.dart:2377:96: Error: Type 'pkg_ffi.Short' not found.
typedef libusb_pollfd_added_cb = ffi.Pointer<ffi.NativeFunction<ffi.Void Function(pkg_ffi.Int, pkg_ffi.Short, ffi.Pointer<ffi.Void>)>>;
                                                                                               ^^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:2387:85: Error: Type 'pkg_ffi.Int' not found.
typedef libusb_pollfd_removed_cb = ffi.Pointer<ffi.NativeFunction<ffi.Void Function(pkg_ffi.Int, ffi.Pointer<ffi.Void>)>>;
                                                                                    ^^^^^^^^^^^
lib/src/libusb.ffigen.dart:2439:33: Error: Type 'pkg_ffi.Int' not found.
    .Pointer<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Pointer<libusb_device>, ffi.Int32, ffi.Pointer<ffi.Void>)>>;
                                ^^^^^^^^^^^
lib/src/libusb.ffigen.dart:2452:42: Error: Type 'pkg_ffi.Int' not found.
typedef libusb_hotplug_callback_handle = pkg_ffi.Int;
                                         ^^^^^^^^^^^
lib/src/libusb.ffigen.dart:27:67: Error: 'Int' isn't a type.
  late final _libusb_initPtr = _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<ffi.Pointer<libusb_context>>)>>('libusb_init');
                                                                  ^^^
lib/src/libusb.ffigen.dart:51:119: Error: 'Int' isn't a type.
  late final _libusb_set_debugPtr = _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<libusb_context>, pkg_ffi.Int)>>('libusb_set_debug');
                                                                                                                      ^^^
lib/src/libusb.ffigen.dart:67:104: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<libusb_context>, libusb_log_cb, pkg_ffi.Int)>>('libusb_set_log_cb');
                                                                                                       ^^^
lib/src/libusb.ffigen.dart:85:77: Error: 'Int' isn't a type.
  late final _libusb_has_capabilityPtr = _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Uint32)>>('libusb_has_capability');
                                                                            ^^^
lib/src/libusb.ffigen.dart:96:85: Error: 'Char' isn't a type.
  late final _libusb_error_namePtr = _lookup<ffi.NativeFunction<ffi.Pointer<pkg_ffi.Char> Function(pkg_ffi.Int)>>('libusb_error_name');
                                                                                    ^^^^
lib/src/libusb.ffigen.dart:96:108: Error: 'Int' isn't a type.
  late final _libusb_error_namePtr = _lookup<ffi.NativeFunction<ffi.Pointer<pkg_ffi.Char> Function(pkg_ffi.Int)>>('libusb_error_name');
                                                                                                           ^^^
lib/src/libusb.ffigen.dart:97:88: Error: 'Char' isn't a type.
  late final _libusb_error_name = _libusb_error_namePtr.asFunction<ffi.Pointer<pkg_ffi.Char> Function(int)>();
                                                                                       ^^^^
lib/src/libusb.ffigen.dart:107:72: Error: 'Int' isn't a type.
  late final _libusb_setlocalePtr = _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<pkg_ffi.Char>)>>('libusb_setlocale');
                                                                       ^^^
lib/src/libusb.ffigen.dart:107:105: Error: 'Char' isn't a type.
  late final _libusb_setlocalePtr = _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<pkg_ffi.Char>)>>('libusb_setlocale');
                                                                                                        ^^^^
lib/src/libusb.ffigen.dart:108:99: Error: 'Char' isn't a type.
  late final _libusb_setlocale = _libusb_setlocalePtr.asFunction<int Function(ffi.Pointer<pkg_ffi.Char>)>();
                                                                                                  ^^^^
lib/src/libusb.ffigen.dart:118:83: Error: 'Char' isn't a type.
  late final _libusb_strerrorPtr = _lookup<ffi.NativeFunction<ffi.Pointer<pkg_ffi.Char> Function(ffi.Int32)>>('libusb_strerror');
                                                                                  ^^^^
lib/src/libusb.ffigen.dart:119:84: Error: 'Char' isn't a type.
  late final _libusb_strerror = _libusb_strerrorPtr.asFunction<ffi.Pointer<pkg_ffi.Char> Function(int)>();
                                                                                   ^^^^
lib/src/libusb.ffigen.dart:148:101: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Pointer<libusb_device>>, pkg_ffi.Int)>>('libusb_free_device_list');
                                                                                                    ^^^
lib/src/libusb.ffigen.dart:185:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<pkg_ffi.Int>)>>('libusb_get_configuration');
                                         ^^^
lib/src/libusb.ffigen.dart:185:110: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<pkg_ffi.Int>)>>('libusb_get_configuration');
                                                                                                             ^^^
lib/src/libusb.ffigen.dart:187:115: Error: 'Int' isn't a type.
      _libusb_get_configurationPtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<pkg_ffi.Int>)>();
                                                                                                                  ^^^
lib/src/libusb.ffigen.dart:200:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device>, ffi.Pointer<libusb_device_descriptor>)>>(
                                         ^^^
lib/src/libusb.ffigen.dart:216:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device>, ffi.Pointer<ffi.Pointer<libusb_config_descriptor>>)>>(
                                         ^^^
lib/src/libusb.ffigen.dart:234:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device>, ffi.Uint8, ffi.Pointer<ffi.Pointer<libusb_config_descriptor>>)>>(
                                         ^^^
lib/src/libusb.ffigen.dart:252:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device>, ffi.Uint8, ffi.Pointer<ffi.Pointer<libusb_config_descriptor>>)>>(
                                         ^^^
lib/src/libusb.ffigen.dart:283:19: Error: 'Int' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Pointer<libusb_endpoint_descriptor>,
                  ^^^
lib/src/libusb.ffigen.dart:314:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<ffi.Pointer<libusb_bos_descriptor>>)>>(
                                         ^^^
lib/src/libusb.ffigen.dart:345:19: Error: 'Int' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Pointer<libusb_bos_dev_capability_descriptor>,
                  ^^^
lib/src/libusb.ffigen.dart:378:19: Error: 'Int' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Pointer<libusb_bos_dev_capability_descriptor>,
                  ^^^
lib/src/libusb.ffigen.dart:412:19: Error: 'Int' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Pointer<libusb_bos_dev_capability_descriptor>,
                  ^^^
lib/src/libusb.ffigen.dart:466:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device>, ffi.Pointer<ffi.Uint8>, pkg_ffi.Int)>>('libusb_get_port_numbers');
                                         ^^^
lib/src/libusb.ffigen.dart:466:115: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device>, ffi.Pointer<ffi.Uint8>, pkg_ffi.Int)>>('libusb_get_port_numbers');
                                                                                                                  ^^^
lib/src/libusb.ffigen.dart:485:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Pointer<libusb_device>, ffi.Pointer<ffi.Uint8>, ffi.Uint8)>>(
                                         ^^^
lib/src/libusb.ffigen.dart:521:79: Error: 'Int' isn't a type.
  late final _libusb_get_device_speedPtr = _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device>)>>('libusb_get_device_speed');
                                                                              ^^^
lib/src/libusb.ffigen.dart:535:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device>, pkg_ffi.UnsignedChar)>>('libusb_get_max_packet_size');
                                         ^^^
lib/src/libusb.ffigen.dart:535:91: Error: 'UnsignedChar' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device>, pkg_ffi.UnsignedChar)>>('libusb_get_max_packet_size');
                                                                                          ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:549:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device>, pkg_ffi.UnsignedChar)>>('libusb_get_max_iso_packet_size');
                                         ^^^
lib/src/libusb.ffigen.dart:549:91: Error: 'UnsignedChar' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device>, pkg_ffi.UnsignedChar)>>('libusb_get_max_iso_packet_size');
                                                                                          ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:565:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.IntPtr, ffi.Pointer<ffi.Pointer<libusb_device_handle>>)>>(
                                         ^^^
lib/src/libusb.ffigen.dart:581:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device>, ffi.Pointer<ffi.Pointer<libusb_device_handle>>)>>('libusb_open');
                                         ^^^
lib/src/libusb.ffigen.dart:618:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int)>>('libusb_set_configuration');
                                         ^^^
lib/src/libusb.ffigen.dart:618:98: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int)>>('libusb_set_configuration');
                                                                                                 ^^^
lib/src/libusb.ffigen.dart:632:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int)>>('libusb_claim_interface');
                                         ^^^
lib/src/libusb.ffigen.dart:632:98: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int)>>('libusb_claim_interface');
                                                                                                 ^^^
lib/src/libusb.ffigen.dart:646:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int)>>('libusb_release_interface');
                                         ^^^
lib/src/libusb.ffigen.dart:646:98: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int)>>('libusb_release_interface');
                                                                                                 ^^^
lib/src/libusb.ffigen.dart:680:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int, pkg_ffi.Int)>>(
                                         ^^^
lib/src/libusb.ffigen.dart:680:98: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int, pkg_ffi.Int)>>(
                                                                                                 ^^^
lib/src/libusb.ffigen.dart:680:111: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int, pkg_ffi.Int)>>(
                                                                                                              ^^^
lib/src/libusb.ffigen.dart:696:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.UnsignedChar)>>('libusb_clear_halt');
                                         ^^^
lib/src/libusb.ffigen.dart:696:98: Error: 'UnsignedChar' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.UnsignedChar)>>('libusb_clear_halt');
                                                                                                 ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:707:75: Error: 'Int' isn't a type.
  late final _libusb_reset_devicePtr = _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>)>>('libusb_reset_device');
                                                                          ^^^
lib/src/libusb.ffigen.dart:725:38: Error: 'Int' isn't a type.
          ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Uint32, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int)>>(
                                     ^^^
lib/src/libusb.ffigen.dart:725:118: Error: 'UnsignedChar' isn't a type.
          ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Uint32, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int)>>(
                                                                                                                     ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:725:141: Error: 'Int' isn't a type.
          ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Uint32, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int)>>(
                                                                                                                                            ^^^
lib/src/libusb.ffigen.dart:728:116: Error: 'UnsignedChar' isn't a type.
      _libusb_alloc_streamsPtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, int, ffi.Pointer<pkg_ffi.UnsignedChar>, int)>();
                                                                                                                   ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:743:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int)>>(
                                         ^^^
lib/src/libusb.ffigen.dart:743:110: Error: 'UnsignedChar' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int)>>(
                                                                                                             ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:743:133: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int)>>(
                                                                                                                                    ^^^
lib/src/libusb.ffigen.dart:746:110: Error: 'UnsignedChar' isn't a type.
      _libusb_free_streamsPtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<pkg_ffi.UnsignedChar>, int)>();
                                                                                                             ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:759:54: Error: 'UnsignedChar' isn't a type.
      _lookup<ffi.NativeFunction<ffi.Pointer<pkg_ffi.UnsignedChar> Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Size)>>(
                                                     ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:759:120: Error: 'Size' isn't a type.
      _lookup<ffi.NativeFunction<ffi.Pointer<pkg_ffi.UnsignedChar> Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Size)>>(
                                                                                                                       ^^^^
lib/src/libusb.ffigen.dart:762:63: Error: 'UnsignedChar' isn't a type.
      _libusb_dev_mem_allocPtr.asFunction<ffi.Pointer<pkg_ffi.UnsignedChar> Function(ffi.Pointer<libusb_device_handle>, int)>();
                                                              ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:777:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Size)>>(
                                         ^^^
lib/src/libusb.ffigen.dart:777:110: Error: 'UnsignedChar' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Size)>>(
                                                                                                             ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:777:133: Error: 'Size' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Size)>>(
                                                                                                                                    ^^^^
lib/src/libusb.ffigen.dart:780:110: Error: 'UnsignedChar' isn't a type.
      _libusb_dev_mem_freePtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<pkg_ffi.UnsignedChar>, int)>();
                                                                                                             ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:793:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int)>>('libusb_kernel_driver_active');
                                         ^^^
lib/src/libusb.ffigen.dart:793:98: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int)>>('libusb_kernel_driver_active');
                                                                                                 ^^^
lib/src/libusb.ffigen.dart:807:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int)>>('libusb_detach_kernel_driver');
                                         ^^^
lib/src/libusb.ffigen.dart:807:98: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int)>>('libusb_detach_kernel_driver');
                                                                                                 ^^^
lib/src/libusb.ffigen.dart:821:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int)>>('libusb_attach_kernel_driver');
                                         ^^^
lib/src/libusb.ffigen.dart:821:98: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int)>>('libusb_attach_kernel_driver');
                                                                                                 ^^^
lib/src/libusb.ffigen.dart:835:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int)>>('libusb_set_auto_detach_kernel_driver');
                                         ^^^
lib/src/libusb.ffigen.dart:835:98: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.Int)>>('libusb_set_auto_detach_kernel_driver');
                                                                                                 ^^^
lib/src/libusb.ffigen.dart:847:115: Error: 'Int' isn't a type.
  late final _libusb_alloc_transferPtr = _lookup<ffi.NativeFunction<ffi.Pointer<libusb_transfer> Function(pkg_ffi.Int)>>('libusb_alloc_transfer');
                                                                                                                  ^^^
lib/src/libusb.ffigen.dart:858:78: Error: 'Int' isn't a type.
  late final _libusb_submit_transferPtr = _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_transfer>)>>('libusb_submit_transfer');
                                                                             ^^^
lib/src/libusb.ffigen.dart:869:78: Error: 'Int' isn't a type.
  late final _libusb_cancel_transferPtr = _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_transfer>)>>('libusb_cancel_transfer');
                                                                             ^^^
lib/src/libusb.ffigen.dart:933:19: Error: 'Int' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Uint8, ffi.Uint8, ffi.Uint16, ffi.Uint16, ffi.Pointer<pkg_ffi.UnsignedChar>,
                  ^^^
lib/src/libusb.ffigen.dart:933:133: Error: 'UnsignedChar' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Uint8, ffi.Uint8, ffi.Uint16, ffi.Uint16, ffi.Pointer<pkg_ffi.UnsignedChar>,
                                                                                                                                    ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:934:35: Error: 'UnsignedInt' isn't a type.
              ffi.Uint16, pkg_ffi.UnsignedInt)>>('libusb_control_transfer');
                                  ^^^^^^^^^^^
lib/src/libusb.ffigen.dart:936:107: Error: 'UnsignedChar' isn't a type.
      .asFunction<int Function(ffi.Pointer<libusb_device_handle>, int, int, int, int, ffi.Pointer<pkg_ffi.UnsignedChar>, int, int)>();
                                                                                                          ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:958:19: Error: 'Int' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.UnsignedChar, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int,
                  ^^^
lib/src/libusb.ffigen.dart:958:75: Error: 'UnsignedChar' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.UnsignedChar, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int,
                                                                          ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:958:109: Error: 'UnsignedChar' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.UnsignedChar, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int,
                                                                                                            ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:958:132: Error: 'Int' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.UnsignedChar, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int,
                                                                                                                                   ^^^
lib/src/libusb.ffigen.dart:959:35: Error: 'Int' isn't a type.
              ffi.Pointer<pkg_ffi.Int>, pkg_ffi.UnsignedInt)>>('libusb_bulk_transfer');
                                  ^^^
lib/src/libusb.ffigen.dart:959:49: Error: 'UnsignedInt' isn't a type.
              ffi.Pointer<pkg_ffi.Int>, pkg_ffi.UnsignedInt)>>('libusb_bulk_transfer');
                                                ^^^^^^^^^^^
lib/src/libusb.ffigen.dart:961:92: Error: 'UnsignedChar' isn't a type.
      .asFunction<int Function(ffi.Pointer<libusb_device_handle>, int, ffi.Pointer<pkg_ffi.UnsignedChar>, int, ffi.Pointer<pkg_ffi.Int>, int)>();
                                                                                           ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:961:132: Error: 'Int' isn't a type.
      .asFunction<int Function(ffi.Pointer<libusb_device_handle>, int, ffi.Pointer<pkg_ffi.UnsignedChar>, int, ffi.Pointer<pkg_ffi.Int>, int)>();
                                                                                                                                   ^^^
lib/src/libusb.ffigen.dart:983:19: Error: 'Int' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.UnsignedChar, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int,
                  ^^^
lib/src/libusb.ffigen.dart:983:75: Error: 'UnsignedChar' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.UnsignedChar, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int,
                                                                          ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:983:109: Error: 'UnsignedChar' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.UnsignedChar, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int,
                                                                                                            ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:983:132: Error: 'Int' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, pkg_ffi.UnsignedChar, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int,
                                                                                                                                   ^^^
lib/src/libusb.ffigen.dart:984:35: Error: 'Int' isn't a type.
              ffi.Pointer<pkg_ffi.Int>, pkg_ffi.UnsignedInt)>>('libusb_interrupt_transfer');
                                  ^^^
lib/src/libusb.ffigen.dart:984:49: Error: 'UnsignedInt' isn't a type.
              ffi.Pointer<pkg_ffi.Int>, pkg_ffi.UnsignedInt)>>('libusb_interrupt_transfer');
                                                ^^^^^^^^^^^
lib/src/libusb.ffigen.dart:986:92: Error: 'UnsignedChar' isn't a type.
      .asFunction<int Function(ffi.Pointer<libusb_device_handle>, int, ffi.Pointer<pkg_ffi.UnsignedChar>, int, ffi.Pointer<pkg_ffi.Int>, int)>();
                                                                                           ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:986:132: Error: 'Int' isn't a type.
      .asFunction<int Function(ffi.Pointer<libusb_device_handle>, int, ffi.Pointer<pkg_ffi.UnsignedChar>, int, ffi.Pointer<pkg_ffi.Int>, int)>();
                                                                                                                                   ^^^
lib/src/libusb.ffigen.dart:1003:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Uint8, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int)>>(
                                         ^^^
lib/src/libusb.ffigen.dart:1003:121: Error: 'UnsignedChar' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Uint8, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int)>>(
                                                                                                                        ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:1003:144: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_device_handle>, ffi.Uint8, ffi.Pointer<pkg_ffi.UnsignedChar>, pkg_ffi.Int)>>(
                                                                                                                                               ^^^
lib/src/libusb.ffigen.dart:1006:92: Error: 'UnsignedChar' isn't a type.
      .asFunction<int Function(ffi.Pointer<libusb_device_handle>, int, ffi.Pointer<pkg_ffi.UnsignedChar>, int)>();
                                                                                           ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:1016:78: Error: 'Int' isn't a type.
  late final _libusb_try_lock_eventsPtr = _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>)>>('libusb_try_lock_events');
                                                                             ^^^
lib/src/libusb.ffigen.dart:1050:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>)>>('libusb_event_handling_ok');
                                         ^^^
lib/src/libusb.ffigen.dart:1062:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>)>>('libusb_event_handler_active');
                                         ^^^
lib/src/libusb.ffigen.dart:1111:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_libusb.Timeval>)>>('libusb_wait_for_event');
                                         ^^^
lib/src/libusb.ffigen.dart:1126:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_libusb.Timeval>)>>('libusb_handle_events_timeout');
                                         ^^^
lib/src/libusb.ffigen.dart:1143:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_libusb.Timeval>, ffi.Pointer<pkg_ffi.Int>)>>(
                                         ^^^
lib/src/libusb.ffigen.dart:1143:137: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_libusb.Timeval>, ffi.Pointer<pkg_ffi.Int>)>>(
                                                                                                                                        ^^^
lib/src/libusb.ffigen.dart:1146:114: Error: 'Int' isn't a type.
      .asFunction<int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_libusb.Timeval>, ffi.Pointer<pkg_ffi.Int>)>();
                                                                                                                 ^^^
lib/src/libusb.ffigen.dart:1156:76: Error: 'Int' isn't a type.
  late final _libusb_handle_eventsPtr = _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>)>>('libusb_handle_events');
                                                                           ^^^
lib/src/libusb.ffigen.dart:1170:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_ffi.Int>)>>('libusb_handle_events_completed');
                                         ^^^
lib/src/libusb.ffigen.dart:1170:104: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_ffi.Int>)>>('libusb_handle_events_completed');
                                                                                                       ^^^
lib/src/libusb.ffigen.dart:1172:115: Error: 'Int' isn't a type.
      _libusb_handle_events_completedPtr.asFunction<int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_ffi.Int>)>();
                                                                                                                  ^^^
lib/src/libusb.ffigen.dart:1185:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_libusb.Timeval>)>>('libusb_handle_events_locked');
                                         ^^^
lib/src/libusb.ffigen.dart:1198:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>)>>('libusb_pollfds_handle_timeouts');
                                         ^^^
lib/src/libusb.ffigen.dart:1212:42: Error: 'Int' isn't a type.
      _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_libusb.Timeval>)>>('libusb_get_next_timeout');
                                         ^^^
lib/src/libusb.ffigen.dart:1319:19: Error: 'Int' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Int32, ffi.Int32, pkg_ffi.Int, pkg_ffi.Int, pkg_ffi.Int, libusb_hotplug_callback_fn,
                  ^^^
lib/src/libusb.ffigen.dart:1319:91: Error: 'Int' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Int32, ffi.Int32, pkg_ffi.Int, pkg_ffi.Int, pkg_ffi.Int, libusb_hotplug_callback_fn,
                                                                                          ^^^
lib/src/libusb.ffigen.dart:1319:104: Error: 'Int' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Int32, ffi.Int32, pkg_ffi.Int, pkg_ffi.Int, pkg_ffi.Int, libusb_hotplug_callback_fn,
                                                                                                       ^^^
lib/src/libusb.ffigen.dart:1319:117: Error: 'Int' isn't a type.
          pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Int32, ffi.Int32, pkg_ffi.Int, pkg_ffi.Int, pkg_ffi.Int, libusb_hotplug_callback_fn,
                                                                                                                    ^^^
lib/src/libusb.ffigen.dart:1361:73: Error: 'Int' isn't a type.
  late final _libusb_set_optionPtr = _lookup<ffi.NativeFunction<pkg_ffi.Int Function(ffi.Pointer<libusb_context>, ffi.Int32)>>('libusb_set_option');
                                                                        ^^^
lib/src/libusb_base.dart:5:12: Error: Couldn't find constructor 'Long'.
  @pkg_ffi.Long()
           ^^^^
lib/src/libusb.ffigen.dart:1732:12: Error: Couldn't find constructor 'Int'.
  @pkg_ffi.Int()
           ^^^
lib/src/libusb.ffigen.dart:1791:12: Error: Couldn't find constructor 'Int'.
  @pkg_ffi.Int()
           ^^^
lib/src/libusb.ffigen.dart:1804:12: Error: Couldn't find constructor 'Int'.
  @pkg_ffi.Int()
           ^^^
lib/src/libusb.ffigen.dart:1859:12: Error: Couldn't find constructor 'Int'.
  @pkg_ffi.Int()
           ^^^
lib/src/libusb.ffigen.dart:2277:12: Error: Couldn't find constructor 'UnsignedInt'.
  @pkg_ffi.UnsignedInt()
           ^^^^^^^^^^^
lib/src/libusb.ffigen.dart:2281:12: Error: Couldn't find constructor 'UnsignedInt'.
  @pkg_ffi.UnsignedInt()
           ^^^^^^^^^^^
lib/src/libusb.ffigen.dart:2357:12: Error: Couldn't find constructor 'Int'.
  @pkg_ffi.Int()
           ^^^
lib/src/libusb.ffigen.dart:2364:12: Error: Couldn't find constructor 'Short'.
  @pkg_ffi.Short()
           ^^^^^
lib/src/libusb.ffigen.dart:100:25: Error: 'Char' isn't a type.
    ffi.Pointer<pkg_ffi.Char> locale,
                        ^^^^
lib/src/libusb.ffigen.dart:176:25: Error: 'Int' isn't a type.
    ffi.Pointer<pkg_ffi.Int> config,
                        ^^^
lib/src/libusb.ffigen.dart:713:25: Error: 'UnsignedChar' isn't a type.
    ffi.Pointer<pkg_ffi.UnsignedChar> endpoints,
                        ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:732:25: Error: 'UnsignedChar' isn't a type.
    ffi.Pointer<pkg_ffi.UnsignedChar> endpoints,
                        ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:766:25: Error: 'UnsignedChar' isn't a type.
    ffi.Pointer<pkg_ffi.UnsignedChar> buffer,
                        ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:915:25: Error: 'UnsignedChar' isn't a type.
    ffi.Pointer<pkg_ffi.UnsignedChar> data,
                        ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:941:25: Error: 'UnsignedChar' isn't a type.
    ffi.Pointer<pkg_ffi.UnsignedChar> data,
                        ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:943:25: Error: 'Int' isn't a type.
    ffi.Pointer<pkg_ffi.Int> actual_length,
                        ^^^
lib/src/libusb.ffigen.dart:966:25: Error: 'UnsignedChar' isn't a type.
    ffi.Pointer<pkg_ffi.UnsignedChar> data,
                        ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:968:25: Error: 'Int' isn't a type.
    ffi.Pointer<pkg_ffi.Int> actual_length,
                        ^^^
lib/src/libusb.ffigen.dart:991:25: Error: 'UnsignedChar' isn't a type.
    ffi.Pointer<pkg_ffi.UnsignedChar> data,
                        ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:1133:25: Error: 'Int' isn't a type.
    ffi.Pointer<pkg_ffi.Int> completed,
                        ^^^
lib/src/libusb.ffigen.dart:1161:25: Error: 'Int' isn't a type.
    ffi.Pointer<pkg_ffi.Int> completed,
                        ^^^
lib/src/libusb.ffigen.dart:1729:32: Error: 'UnsignedChar' isn't a type.
  external ffi.Pointer<pkg_ffi.UnsignedChar> extra;
                               ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:1788:32: Error: 'UnsignedChar' isn't a type.
  external ffi.Pointer<pkg_ffi.UnsignedChar> extra;
                               ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:1856:32: Error: 'UnsignedChar' isn't a type.
  external ffi.Pointer<pkg_ffi.UnsignedChar> extra;
                               ^^^^^^^^^^^^
lib/src/libusb.ffigen.dart:2074:32: Error: 'Char' isn't a type.
  external ffi.Pointer<pkg_ffi.Char> rc;
                               ^^^^
lib/src/libusb.ffigen.dart:2077:32: Error: 'Char' isn't a type.
  external ffi.Pointer<pkg_ffi.Char> describe;
                               ^^^^
lib/src/libusb.ffigen.dart:1733:16: Error: Field 'extra_length' requires exactly one annotation to declare its native type, which cannot be Void. dart:ffi Structs and Unions cannot have regular Dart fields.
  external int extra_length;
               ^
lib/src/libusb.ffigen.dart:1792:16: Error: Field 'extra_length' requires exactly one annotation to declare its native type, which cannot be Void. dart:ffi Structs and Unions cannot have regular Dart fields.
  external int extra_length;
               ^
lib/src/libusb.ffigen.dart:1805:16: Error: Field 'num_altsetting' requires exactly one annotation to declare its native type, which cannot be Void. dart:ffi Structs and Unions cannot have regular Dart fields.
  external int num_altsetting;
               ^
lib/src/libusb.ffigen.dart:1860:16: Error: Field 'extra_length' requires exactly one annotation to declare its native type, which cannot be Void. dart:ffi Structs and Unions cannot have regular Dart fields.
  external int extra_length;
               ^
lib/src/libusb.ffigen.dart:2278:16: Error: Field 'length' requires exactly one annotation to declare its native type, which cannot be Void. dart:ffi Structs and Unions cannot have regular Dart fields.
  external int length;
               ^
lib/src/libusb.ffigen.dart:2282:16: Error: Field 'actual_length' requires exactly one annotation to declare its native type, which cannot be Void. dart:ffi Structs and Unions cannot have regular Dart fields.
  external int actual_length;
               ^
lib/src/libusb.ffigen.dart:2358:16: Error: Field 'fd' requires exactly one annotation to declare its native type, which cannot be Void. dart:ffi Structs and Unions cannot have regular Dart fields.
  external int fd;
               ^
lib/src/libusb.ffigen.dart:2365:16: Error: Field 'events' requires exactly one annotation to declare its native type, which cannot be Void. dart:ffi Structs and Unions cannot have regular Dart fields.
  external int events;
               ^
lib/src/libusb_base.dart:6:16: Error: Field 'tv_sec' requires exactly one annotation to declare its native type, which cannot be Void. dart:ffi Structs and Unions cannot have regular Dart fields.
  external int tv_sec;
               ^
lib/src/libusb.ffigen.dart:28:45: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<Pointer<libusb_context>>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_init = _libusb_initPtr.asFunction<int Function(ffi.Pointer<ffi.Pointer<libusb_context>>)>();
                                            ^
lib/src/libusb.ffigen.dart:52:55: Error: Expected type 'NativeFunction<Void Function(Pointer<libusb_context>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Void' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_set_debug = _libusb_set_debugPtr.asFunction<void Function(ffi.Pointer<libusb_context>, int)>();
                                                      ^
lib/src/libusb.ffigen.dart:68:57: Error: Expected type 'NativeFunction<Void Function(Pointer<libusb_context>, Pointer<NativeFunction<Void Function(Pointer<libusb_context>, Int32, Pointer<invalid-type>)>>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Void' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Int32' is from 'dart:ffi'.
  late final _libusb_set_log_cb = _libusb_set_log_cbPtr.asFunction<void Function(ffi.Pointer<libusb_context>, libusb_log_cb, int)>();
                                                        ^
lib/src/libusb.ffigen.dart:86:65: Error: Expected type 'NativeFunction<invalid-type Function(Uint32)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Uint32' is from 'dart:ffi'.
  late final _libusb_has_capability = _libusb_has_capabilityPtr.asFunction<int Function(int)>();
                                                                ^
lib/src/libusb.ffigen.dart:97:57: Error: Expected type 'NativeFunction<Pointer<invalid-type> Function(invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
  late final _libusb_error_name = _libusb_error_namePtr.asFunction<ffi.Pointer<pkg_ffi.Char> Function(int)>();
                                                        ^
lib/src/libusb.ffigen.dart:108:55: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<invalid-type>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
  late final _libusb_setlocale = _libusb_setlocalePtr.asFunction<int Function(ffi.Pointer<pkg_ffi.Char>)>();
                                                      ^
lib/src/libusb.ffigen.dart:149:69: Error: Expected type 'NativeFunction<Void Function(Pointer<Pointer<libusb_device>>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Void' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_free_device_list = _libusb_free_device_listPtr.asFunction<void Function(ffi.Pointer<ffi.Pointer<libusb_device>>, int)>();
                                                                    ^
lib/src/libusb.ffigen.dart:187:36: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, Pointer<invalid-type>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      _libusb_get_configurationPtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<pkg_ffi.Int>)>();
                                   ^
lib/src/libusb.ffigen.dart:203:40: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device>, Pointer<libusb_device_descriptor>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'libusb_device_descriptor' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      _libusb_get_device_descriptorPtr.asFunction<int Function(ffi.Pointer<libusb_device>, ffi.Pointer<libusb_device_descriptor>)>();
                                       ^
lib/src/libusb.ffigen.dart:219:8: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device>, Pointer<Pointer<libusb_config_descriptor>>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'libusb_config_descriptor' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      .asFunction<int Function(ffi.Pointer<libusb_device>, ffi.Pointer<ffi.Pointer<libusb_config_descriptor>>)>();
       ^
lib/src/libusb.ffigen.dart:237:8: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device>, Uint8, Pointer<Pointer<libusb_config_descriptor>>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Uint8' is from 'dart:ffi'.
 - 'libusb_config_descriptor' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      .asFunction<int Function(ffi.Pointer<libusb_device>, int, ffi.Pointer<ffi.Pointer<libusb_config_descriptor>>)>();
       ^
lib/src/libusb.ffigen.dart:255:8: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device>, Uint8, Pointer<Pointer<libusb_config_descriptor>>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Uint8' is from 'dart:ffi'.
 - 'libusb_config_descriptor' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      .asFunction<int Function(ffi.Pointer<libusb_device>, int, ffi.Pointer<ffi.Pointer<libusb_config_descriptor>>)>();
       ^
lib/src/libusb.ffigen.dart:285:109: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>, Pointer<libusb_endpoint_descriptor>, Pointer<Pointer<libusb_ss_endpoint_companion_descriptor>>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'libusb_endpoint_descriptor' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'libusb_ss_endpoint_companion_descriptor' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_get_ss_endpoint_companion_descriptor = _libusb_get_ss_endpoint_companion_descriptorPtr.asFunction<
                                                                                                            ^
lib/src/libusb.ffigen.dart:317:37: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, Pointer<Pointer<libusb_bos_descriptor>>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'libusb_bos_descriptor' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      _libusb_get_bos_descriptorPtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<ffi.Pointer<libusb_bos_descriptor>>)>();
                                    ^
lib/src/libusb.ffigen.dart:347:101: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>, Pointer<libusb_bos_dev_capability_descriptor>, Pointer<Pointer<libusb_usb_2_0_extension_descriptor>>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'libusb_bos_dev_capability_descriptor' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'libusb_usb_2_0_extension_descriptor' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_get_usb_2_0_extension_descriptor = _libusb_get_usb_2_0_extension_descriptorPtr.asFunction<
                                                                                                    ^
lib/src/libusb.ffigen.dart:380:115: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>, Pointer<libusb_bos_dev_capability_descriptor>, Pointer<Pointer<libusb_ss_usb_device_capability_descriptor>>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'libusb_bos_dev_capability_descriptor' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'libusb_ss_usb_device_capability_descriptor' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_get_ss_usb_device_capability_descriptor = _libusb_get_ss_usb_device_capability_descriptorPtr.asFunction<
                                                                                                                  ^
lib/src/libusb.ffigen.dart:414:91: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>, Pointer<libusb_bos_dev_capability_descriptor>, Pointer<Pointer<libusb_container_id_descriptor>>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'libusb_bos_dev_capability_descriptor' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'libusb_container_id_descriptor' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_get_container_id_descriptor = _libusb_get_container_id_descriptorPtr.asFunction<
                                                                                          ^
lib/src/libusb.ffigen.dart:468:35: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device>, Pointer<Uint8>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Uint8' is from 'dart:ffi'.
      _libusb_get_port_numbersPtr.asFunction<int Function(ffi.Pointer<libusb_device>, ffi.Pointer<ffi.Uint8>, int)>();
                                  ^
lib/src/libusb.ffigen.dart:488:32: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>, Pointer<libusb_device>, Pointer<Uint8>, Uint8)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'libusb_device' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Uint8' is from 'dart:ffi'.
      _libusb_get_port_pathPtr.asFunction<int Function(ffi.Pointer<libusb_context>, ffi.Pointer<libusb_device>, ffi.Pointer<ffi.Uint8>, int)>();
                               ^
lib/src/libusb.ffigen.dart:522:69: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_get_device_speed = _libusb_get_device_speedPtr.asFunction<int Function(ffi.Pointer<libusb_device>)>();
                                                                    ^
lib/src/libusb.ffigen.dart:536:75: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_get_max_packet_size = _libusb_get_max_packet_sizePtr.asFunction<int Function(ffi.Pointer<libusb_device>, int)>();
                                                                          ^
lib/src/libusb.ffigen.dart:550:83: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_get_max_iso_packet_size = _libusb_get_max_iso_packet_sizePtr.asFunction<int Function(ffi.Pointer<libusb_device>, int)>();
                                                                                  ^
lib/src/libusb.ffigen.dart:568:34: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>, IntPtr, Pointer<Pointer<libusb_device_handle>>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'IntPtr' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      _libusb_wrap_sys_devicePtr.asFunction<int Function(ffi.Pointer<libusb_context>, int, ffi.Pointer<ffi.Pointer<libusb_device_handle>>)>();
                                 ^
lib/src/libusb.ffigen.dart:582:45: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device>, Pointer<Pointer<libusb_device_handle>>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_open = _libusb_openPtr.asFunction<int Function(ffi.Pointer<libusb_device>, ffi.Pointer<ffi.Pointer<libusb_device_handle>>)>();
                                            ^
lib/src/libusb.ffigen.dart:619:71: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_set_configuration = _libusb_set_configurationPtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, int)>();
                                                                      ^
lib/src/libusb.ffigen.dart:633:67: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_claim_interface = _libusb_claim_interfacePtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, int)>();
                                                                  ^
lib/src/libusb.ffigen.dart:647:71: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_release_interface = _libusb_release_interfacePtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, int)>();
                                                                      ^
lib/src/libusb.ffigen.dart:683:44: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, invalid-type, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      _libusb_set_interface_alt_settingPtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, int, int)>();
                                           ^
lib/src/libusb.ffigen.dart:697:57: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_clear_halt = _libusb_clear_haltPtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, int)>();
                                                        ^
lib/src/libusb.ffigen.dart:708:61: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_reset_device = _libusb_reset_devicePtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>)>();
                                                            ^
lib/src/libusb.ffigen.dart:728:32: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, Uint32, Pointer<invalid-type>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Uint32' is from 'dart:ffi'.
      _libusb_alloc_streamsPtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, int, ffi.Pointer<pkg_ffi.UnsignedChar>, int)>();
                               ^
lib/src/libusb.ffigen.dart:746:31: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, Pointer<invalid-type>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      _libusb_free_streamsPtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<pkg_ffi.UnsignedChar>, int)>();
                              ^
lib/src/libusb.ffigen.dart:762:32: Error: Expected type 'NativeFunction<Pointer<invalid-type> Function(Pointer<libusb_device_handle>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      _libusb_dev_mem_allocPtr.asFunction<ffi.Pointer<pkg_ffi.UnsignedChar> Function(ffi.Pointer<libusb_device_handle>, int)>();
                               ^
lib/src/libusb.ffigen.dart:780:31: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, Pointer<invalid-type>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      _libusb_dev_mem_freePtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, ffi.Pointer<pkg_ffi.UnsignedChar>, int)>();
                              ^
lib/src/libusb.ffigen.dart:794:77: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_kernel_driver_active = _libusb_kernel_driver_activePtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, int)>();
                                                                            ^
lib/src/libusb.ffigen.dart:808:77: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_detach_kernel_driver = _libusb_detach_kernel_driverPtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, int)>();
                                                                            ^
lib/src/libusb.ffigen.dart:822:77: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_attach_kernel_driver = _libusb_attach_kernel_driverPtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, int)>();
                                                                            ^
lib/src/libusb.ffigen.dart:837:48: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      _libusb_set_auto_detach_kernel_driverPtr.asFunction<int Function(ffi.Pointer<libusb_device_handle>, int)>();
                                               ^
lib/src/libusb.ffigen.dart:848:65: Error: Expected type 'NativeFunction<Pointer<libusb_transfer> Function(invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_transfer' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_alloc_transfer = _libusb_alloc_transferPtr.asFunction<ffi.Pointer<libusb_transfer> Function(int)>();
                                                                ^
lib/src/libusb.ffigen.dart:859:67: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_transfer>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_transfer' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_submit_transfer = _libusb_submit_transferPtr.asFunction<int Function(ffi.Pointer<libusb_transfer>)>();
                                                                  ^
lib/src/libusb.ffigen.dart:870:67: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_transfer>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_transfer' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_cancel_transfer = _libusb_cancel_transferPtr.asFunction<int Function(ffi.Pointer<libusb_transfer>)>();
                                                                  ^
lib/src/libusb.ffigen.dart:936:8: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, Uint8, Uint8, Uint16, Uint16, Pointer<invalid-type>, Uint16, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Uint8' is from 'dart:ffi'.
 - 'Uint16' is from 'dart:ffi'.
      .asFunction<int Function(ffi.Pointer<libusb_device_handle>, int, int, int, int, ffi.Pointer<pkg_ffi.UnsignedChar>, int, int)>();
       ^
lib/src/libusb.ffigen.dart:961:8: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, invalid-type, Pointer<invalid-type>, invalid-type, Pointer<invalid-type>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      .asFunction<int Function(ffi.Pointer<libusb_device_handle>, int, ffi.Pointer<pkg_ffi.UnsignedChar>, int, ffi.Pointer<pkg_ffi.Int>, int)>();
       ^
lib/src/libusb.ffigen.dart:986:8: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, invalid-type, Pointer<invalid-type>, invalid-type, Pointer<invalid-type>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      .asFunction<int Function(ffi.Pointer<libusb_device_handle>, int, ffi.Pointer<pkg_ffi.UnsignedChar>, int, ffi.Pointer<pkg_ffi.Int>, int)>();
       ^
lib/src/libusb.ffigen.dart:1006:8: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_device_handle>, Uint8, Pointer<invalid-type>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_device_handle' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Uint8' is from 'dart:ffi'.
      .asFunction<int Function(ffi.Pointer<libusb_device_handle>, int, ffi.Pointer<pkg_ffi.UnsignedChar>, int)>();
       ^
lib/src/libusb.ffigen.dart:1017:67: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_try_lock_events = _libusb_try_lock_eventsPtr.asFunction<int Function(ffi.Pointer<libusb_context>)>();
                                                                  ^
lib/src/libusb.ffigen.dart:1051:71: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_event_handling_ok = _libusb_event_handling_okPtr.asFunction<int Function(ffi.Pointer<libusb_context>)>();
                                                                      ^
lib/src/libusb.ffigen.dart:1063:77: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_event_handler_active = _libusb_event_handler_activePtr.asFunction<int Function(ffi.Pointer<libusb_context>)>();
                                                                            ^
lib/src/libusb.ffigen.dart:1113:33: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>, Pointer<Timeval>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Timeval' is from 'package:libusb/src/libusb_base.dart' ('lib/src/libusb_base.dart').
      _libusb_wait_for_eventPtr.asFunction<int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_libusb.Timeval>)>();
                                ^
lib/src/libusb.ffigen.dart:1128:40: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>, Pointer<Timeval>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Timeval' is from 'package:libusb/src/libusb_base.dart' ('lib/src/libusb_base.dart').
      _libusb_handle_events_timeoutPtr.asFunction<int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_libusb.Timeval>)>();
                                       ^
lib/src/libusb.ffigen.dart:1146:8: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>, Pointer<Timeval>, Pointer<invalid-type>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Timeval' is from 'package:libusb/src/libusb_base.dart' ('lib/src/libusb_base.dart').
      .asFunction<int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_libusb.Timeval>, ffi.Pointer<pkg_ffi.Int>)>();
       ^
lib/src/libusb.ffigen.dart:1157:63: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_handle_events = _libusb_handle_eventsPtr.asFunction<int Function(ffi.Pointer<libusb_context>)>();
                                                              ^
lib/src/libusb.ffigen.dart:1172:42: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>, Pointer<invalid-type>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      _libusb_handle_events_completedPtr.asFunction<int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_ffi.Int>)>();
                                         ^
lib/src/libusb.ffigen.dart:1187:39: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>, Pointer<Timeval>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Timeval' is from 'package:libusb/src/libusb_base.dart' ('lib/src/libusb_base.dart').
      _libusb_handle_events_lockedPtr.asFunction<int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_libusb.Timeval>)>();
                                      ^
lib/src/libusb.ffigen.dart:1199:83: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
  late final _libusb_pollfds_handle_timeouts = _libusb_pollfds_handle_timeoutsPtr.asFunction<int Function(ffi.Pointer<libusb_context>)>();
                                                                                  ^
lib/src/libusb.ffigen.dart:1214:35: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>, Pointer<Timeval>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Timeval' is from 'package:libusb/src/libusb_base.dart' ('lib/src/libusb_base.dart').
      _libusb_get_next_timeoutPtr.asFunction<int Function(ffi.Pointer<libusb_context>, ffi.Pointer<pkg_libusb.Timeval>)>();
                                  ^
lib/src/libusb.ffigen.dart:1321:87: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>, Int32, Int32, invalid-type, invalid-type, invalid-type, Pointer<NativeFunction<invalid-type Function(Pointer<libusb_context>, Pointer<libusb_device>, Int32, Pointer<Void>)>>, Pointer<Void>, Pointer<invalid-type>)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Int32' is from 'dart:ffi'.
 - 'libusb_device' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Void' is from 'dart:ffi'.
  late final _libusb_hotplug_register_callback = _libusb_hotplug_register_callbackPtr.asFunction<
                                                                                      ^
lib/src/libusb.ffigen.dart:1349:46: Error: Expected type 'NativeFunction<Void Function(Pointer<libusb_context>, invalid-type)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Void' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
      _libusb_hotplug_deregister_callbackPtr.asFunction<void Function(ffi.Pointer<libusb_context>, int)>();
                                             ^
lib/src/libusb.ffigen.dart:1362:57: Error: Expected type 'NativeFunction<invalid-type Function(Pointer<libusb_context>, Int32)>' to be a valid and instantiated subtype of 'NativeType'.
 - 'NativeFunction' is from 'dart:ffi'.
 - 'Pointer' is from 'dart:ffi'.
 - 'libusb_context' is from 'package:libusb/src/libusb.ffigen.dart' ('lib/src/libusb.ffigen.dart').
 - 'Int32' is from 'dart:ffi'.
  late final _libusb_set_option = _libusb_set_optionPtr.asFunction<int Function(ffi.Pointer<libusb_context>, int)>();
                                                        ^
pub finished with exit code 1
PS C:\Users\wfink\Documents\flutterapps\libusb.dart> 
Flutter Doctor Output
PS C:\Users\wfink\Documents\flutterapps\libusb.dart> flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.0.5, on Microsoft Windows [Version 10.0.22622.440], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.11.2)
[√] Android Studio (version 2021.1)
[√] Connected device (3 available)
    ! Device emulator-5562 is offline.
[√] HTTP Host Availability

• No issues found!
PS C:\Users\wfink\Documents\flutterapps\libusb.dart> 
flutter --version
PS C:\Users\wfink\Documents\flutterapps\libusb.dart> flutter --version
Flutter 3.0.5 • channel stable • https://github.com/flutter/flutter.git
Framework • revision f1875d570e (4 weeks ago) • 2022-07-13 11:24:16 -0700
Engine • revision e85ea0e79c
Tools • Dart 2.17.6 • DevTools 2.12.2
PS C:\Users\wfink\Documents\flutterapps\libusb.dart> 
VSCode intellisense errors

image

git log -1
PS C:\Users\wfink\Documents\flutterapps\libusb.dart> git log -1
commit 9807b5ce0c635153035039eb6c1600db131359a4 (HEAD -> master, origin/master, origin/HEAD)
Author: wangkun <[email protected]>
Date:   Tue Apr 12 12:46:02 2022 +0800

    Release 0.4.23-dev.1+1

    Signed-off-by: wangkun <[email protected]>
PS C:\Users\wfink\Documents\flutterapps\libusb.dart> 

wfinken avatar Aug 08 '22 03:08 wfinken

If I change import 'package:ffi/ffi.dart' as pkg_ffi; to import 'package:dart/ffi' as pkg_ffi the code executes fine with output below.

PS C:\Users\wfink\Documents\flutterapps\libusb.dart> flutter pub run .\example\listDeviceProducts.dart
1235:801c open error: LIBUSB_ERROR_NOT_SUPPORTED
8086:a36d iProduct empty
8087:0029 iProduct empty
0424:2514 iProduct empty
574c:dcd0 open error: LIBUSB_ERROR_NO_DEVICE
2833:0211 open error: LIBUSB_ERROR_NOT_FOUND
1a86:e026 iProduct empty
1912:0014 iProduct empty
2109:2813 open error: LIBUSB_ERROR_NOT_SUPPORTED
574c:1df8 open error: LIBUSB_ERROR_NO_DEVICE
1a40:0101 open error: LIBUSB_ERROR_NOT_SUPPORTED
2833:0211 open error: LIBUSB_ERROR_NOT_FOUND
574c:e6ef open error: LIBUSB_ERROR_NO_DEVICE
046d:c52b open error: LIBUSB_ERROR_NO_DEVICE
046d:085c open error: LIBUSB_ERROR_NOT_FOUND
deviceProductInfo [MapEntry(1235:801c: ), MapEntry(8086:a36d: ), MapEntry(8087:0029: ), MapEntry(0fd9:006d: Stream Deck), MapEntry(0424:2514: ), MapEntry(574c:dcd0: ), MapEntry(2833:0211: ), MapEntry(1a86:e026: ), MapEntry(1912:0014: ), MapEntry(2109:2813: ), MapEntry(574c:1df8: ), MapEntry(1a40:0101: ), , MapEntry(574c:e6ef: ), MapEntry(1b1c:0a51: Hid Interface), MapEntry(046d:c52b: ), MapEntry(046d:085c: ), MapEntry(0d8c:0005:
Blue )]
PS C:\Users\wfink\Documents\flutterapps\libusb.dart> 

wfinken avatar Aug 08 '22 03:08 wfinken

Oh, I see. Since Dart 2.17 ABI-specific integer types are moved from package:ffi to dart:ffi

We shoud use import 'package:dart/ffi' as pkg_ffi for Flutter 3.0+

Sunbreak avatar Aug 08 '22 07:08 Sunbreak

Let me know if you need me to do any additional testing. I'm not sure this is going to work for what I want anyway but I'm hoping it will. Thanks!

wfinken avatar Aug 08 '22 21:08 wfinken

@wfinken : Did it solve your problem with QuickUsb.openDevice? I have the same problem on Windows. On macOS everything works fine. Thank you for posting your search by te way.

juliendeuse-1 avatar Sep 16 '22 08:09 juliendeuse-1

Hello, same problem here. I'm trying to open a usb pos printer but I got false from openDevice, as well.

I really donot understand how libusb can help us with that. I apreciate it a lot, if you can give us more information.

Thank you!

ot-repo avatar Oct 02 '22 18:10 ot-repo

Hi ot-repo,

I found a solution to my problem and it was not the one suggested in this post. QuickUSB.openDevice did not work in my case on Windows but it did work on MacOS and Linux.

I made it work on Windows by installing the latest winUSB driver on my device. You can do it with zadig.

Here is the link to the StackOverflow post that made me think of this solution. The driver I had on my device was also usbser: https://stackoverflow.com/a/45985549/10191213

Hope it's the same problem in your case.

juliendeuse-1 avatar Oct 03 '22 08:10 juliendeuse-1

Hi juliendeuse-1,

thanks for the quick reply. After long search I ended up with this library, which works on windows and android without any driver installation. IOS not yet tested.

https://pub.dev/packages/flutter_pos_printer_platform

Best Regards

ot-repo avatar Oct 08 '22 21:10 ot-repo