Record Class SDL_hid_device_info

java.lang.Object
java.lang.Record
club.doki7.sdl3.datatype.SDL_hid_device_info
All Implemented Interfaces:
IPointer, ISDL_hid_device_info

@ValueBasedCandidate @UnsafeConstructor public record SDL_hid_device_info(@NotNull MemorySegment segment) extends Record implements ISDL_hid_device_info

Information about a connected HID device

Since: This struct is available since SDL 3.2.0.

Structure

typedef struct SDL_hid_device_info {
    char* path;
    short vendor_id;
    short product_id;
    wchar_t* serial_number;
    short release_number;
    wchar_t* manufacturer_string;
    wchar_t* product_string;
    short usage_page;
    short usage;
    int interface_number;
    int interface_class;
    int interface_subclass;
    int interface_protocol;
    SDL_hid_bus_type bus_type;
    SDL_hid_device_info* next;
} SDL_hid_device_info;

Contracts

The property segment() should always be not-null (segment != NULL && !segment.equals(MemorySegment.NULL)), and properly aligned to LAYOUT.byteAlignment() bytes. To represent null pointer, you may use a Java null instead. See the documentation of IPointer.segment() for more details.

The constructor of this class is marked as UnsafeConstructor, because it does not perform any runtime check. The constructor can be useful for automatic code generators.

Member documentation

  • Field Details

    • LAYOUT

      public static final StructLayout LAYOUT
    • BYTES

      public static final long BYTES
    • PATH$path

      public static final MemoryLayout.PathElement PATH$path
    • PATH$vendor_id

      public static final MemoryLayout.PathElement PATH$vendor_id
    • PATH$product_id

      public static final MemoryLayout.PathElement PATH$product_id
    • PATH$serial_number

      public static final MemoryLayout.PathElement PATH$serial_number
    • PATH$release_number

      public static final MemoryLayout.PathElement PATH$release_number
    • PATH$manufacturer_string

      public static final MemoryLayout.PathElement PATH$manufacturer_string
    • PATH$product_string

      public static final MemoryLayout.PathElement PATH$product_string
    • PATH$usage_page

      public static final MemoryLayout.PathElement PATH$usage_page
    • PATH$usage

      public static final MemoryLayout.PathElement PATH$usage
    • PATH$interface_number

      public static final MemoryLayout.PathElement PATH$interface_number
    • PATH$interface_class

      public static final MemoryLayout.PathElement PATH$interface_class
    • PATH$interface_subclass

      public static final MemoryLayout.PathElement PATH$interface_subclass
    • PATH$interface_protocol

      public static final MemoryLayout.PathElement PATH$interface_protocol
    • PATH$bus_type

      public static final MemoryLayout.PathElement PATH$bus_type
    • PATH$next

      public static final MemoryLayout.PathElement PATH$next
    • LAYOUT$path

      public static final AddressLayout LAYOUT$path
    • LAYOUT$vendor_id

      public static final ValueLayout.OfShort LAYOUT$vendor_id
    • LAYOUT$product_id

      public static final ValueLayout.OfShort LAYOUT$product_id
    • LAYOUT$serial_number

      public static final AddressLayout LAYOUT$serial_number
    • LAYOUT$release_number

      public static final ValueLayout.OfShort LAYOUT$release_number
    • LAYOUT$manufacturer_string

      public static final AddressLayout LAYOUT$manufacturer_string
    • LAYOUT$product_string

      public static final AddressLayout LAYOUT$product_string
    • LAYOUT$usage_page

      public static final ValueLayout.OfShort LAYOUT$usage_page
    • LAYOUT$usage

      public static final ValueLayout.OfShort LAYOUT$usage
    • LAYOUT$interface_number

      public static final ValueLayout.OfInt LAYOUT$interface_number
    • LAYOUT$interface_class

      public static final ValueLayout.OfInt LAYOUT$interface_class
    • LAYOUT$interface_subclass

      public static final ValueLayout.OfInt LAYOUT$interface_subclass
    • LAYOUT$interface_protocol

      public static final ValueLayout.OfInt LAYOUT$interface_protocol
    • LAYOUT$bus_type

      public static final ValueLayout.OfInt LAYOUT$bus_type
    • LAYOUT$next

      public static final AddressLayout LAYOUT$next
    • SIZE$path

      public static final long SIZE$path
    • SIZE$vendor_id

      public static final long SIZE$vendor_id
    • SIZE$product_id

      public static final long SIZE$product_id
    • SIZE$serial_number

      public static final long SIZE$serial_number
    • SIZE$release_number

      public static final long SIZE$release_number
    • SIZE$manufacturer_string

      public static final long SIZE$manufacturer_string
    • SIZE$product_string

      public static final long SIZE$product_string
    • SIZE$usage_page

      public static final long SIZE$usage_page
    • SIZE$usage

      public static final long SIZE$usage
    • SIZE$interface_number

      public static final long SIZE$interface_number
    • SIZE$interface_class

      public static final long SIZE$interface_class
    • SIZE$interface_subclass

      public static final long SIZE$interface_subclass
    • SIZE$interface_protocol

      public static final long SIZE$interface_protocol
    • SIZE$bus_type

      public static final long SIZE$bus_type
    • SIZE$next

      public static final long SIZE$next
    • OFFSET$path

      public static final long OFFSET$path
    • OFFSET$vendor_id

      public static final long OFFSET$vendor_id
    • OFFSET$product_id

      public static final long OFFSET$product_id
    • OFFSET$serial_number

      public static final long OFFSET$serial_number
    • OFFSET$release_number

      public static final long OFFSET$release_number
    • OFFSET$manufacturer_string

      public static final long OFFSET$manufacturer_string
    • OFFSET$product_string

      public static final long OFFSET$product_string
    • OFFSET$usage_page

      public static final long OFFSET$usage_page
    • OFFSET$usage

      public static final long OFFSET$usage
    • OFFSET$interface_number

      public static final long OFFSET$interface_number
    • OFFSET$interface_class

      public static final long OFFSET$interface_class
    • OFFSET$interface_subclass

      public static final long OFFSET$interface_subclass
    • OFFSET$interface_protocol

      public static final long OFFSET$interface_protocol
    • OFFSET$bus_type

      public static final long OFFSET$bus_type
    • OFFSET$next

      public static final long OFFSET$next
  • Constructor Details

    • SDL_hid_device_info

      public SDL_hid_device_info(@NotNull @NotNull MemorySegment segment)
      Creates an instance of a SDL_hid_device_info record class.
      Parameters:
      segment - the value for the segment record component
  • Method Details