sdlxHidGetReportDescriptor function hidapi

Uint8List sdlxHidGetReportDescriptor(
  1. Pointer<SdlHidDevice> dev, {
  2. int bufSize = 4096,
})

Get a report descriptor from a HID device.

User has to provide a preallocated buffer where descriptor will be copied to. The recommended size for a preallocated buffer is 4096 bytes.

\param dev a device handle returned from SDL_hid_open(). \param buf the buffer to copy descriptor into. \param buf_size the size of the buffer in bytes. \returns the number of bytes actually copied or -1 on failure; call SDL_GetError() for more information.

\since This function is available since SDL 3.2.0.

extern SDL_DECLSPEC int SDLCALL SDL_hid_get_report_descriptor(SDL_hid_device *dev, unsigned char *buf, size_t buf_size)

Implementation

Uint8List sdlxHidGetReportDescriptor(
  Pointer<SdlHidDevice> dev, {
  int bufSize = 4096,
}) {
  var bytes = 0;
  late Uint8List data;
  final dataPointer = ffi.calloc<Uint8>(bufSize);
  bytes = sdlHidGetReportDescriptor(dev, dataPointer, bufSize);
  if (bytes > 0) {
    data = Uint8List.fromList(dataPointer.asTypedList(bytes).sublist(0));
  } else {
    data = Uint8List(0);
  }
  dataPointer.callocFree();
  return data;
}