sdlxHidGetIndexedString function hidapi

String? sdlxHidGetIndexedString(
  1. Pointer<SdlHidDevice> dev,
  2. int stringIndex, {
  3. int maxlen = 256,
})

Get a string from a HID device, based on its string index.

\param dev a device handle returned from SDL_hid_open(). \param string_index the index of the string to get. \param string a wide string buffer to put the data into. \param maxlen the length of the buffer in multiples of wchar_t. \returns 0 on success or a negative error code 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_indexed_string(SDL_hid_device *dev, int string_index, wchar_t *string, size_t maxlen)

Implementation

String? sdlxHidGetIndexedString(
  Pointer<SdlHidDevice> dev,
  int stringIndex, {
  int maxlen = 256,
}) {
  String? result;
  final stringPointer = ffi.calloc<WChar>(maxlen);
  final errorcode = sdlHidGetIndexedString(
    dev,
    stringIndex,
    stringPointer,
    maxlen,
  );
  if (errorcode == 0) {
    result = stringPointer.toDartString();
    if (result.isEmpty) {
      result = null;
    }
  } else {
    result = null;
  }
  stringPointer.callocFree();
  return result;
}