34 #ifndef HID_API_NO_EXPORT_DEFINE
35 #define HID_API_EXPORT __declspec(dllexport)
39 #define HID_API_EXPORT
44#define HID_API_EXPORT_CALL HID_API_EXPORT HID_API_CALL
50#define HID_API_VERSION_MAJOR 0
55#define HID_API_VERSION_MINOR 15
60#define HID_API_VERSION_PATCH 0
63#define HID_API_AS_STR_IMPL(x) #x
64#define HID_API_AS_STR(x) HID_API_AS_STR_IMPL(x)
65#define HID_API_TO_VERSION_STR(v1, v2, v3) HID_API_AS_STR(v1.v2.v3)
79#define HID_API_MAKE_VERSION(mj, mn, p) (((mj) << 24) | ((mn) << 8) | (p))
89#define HID_API_VERSION HID_API_MAKE_VERSION(HID_API_VERSION_MAJOR, HID_API_VERSION_MINOR, HID_API_VERSION_PATCH)
95#define HID_API_VERSION_STR HID_API_TO_VERSION_STR(HID_API_VERSION_MAJOR, HID_API_VERSION_MINOR, HID_API_VERSION_PATCH)
103#define HID_API_MAX_REPORT_DESCRIPTOR_SIZE 4096
int HID_API_EXPORT HID_API_CALL hid_set_nonblocking(hid_device *dev, int nonblock)
Set the device handle to be non-blocking.
int HID_API_EXPORT HID_API_CALL hid_init(void)
Initialize the HIDAPI library.
hid_bus_type
HID underlying bus types.
Definition: hidapi.h:122
int HID_API_EXPORT_CALL hid_get_indexed_string(hid_device *dev, int string_index, wchar_t *string, size_t maxlen)
Get a string from a HID device, based on its string index.
int HID_API_EXPORT HID_API_CALL hid_read(hid_device *dev, unsigned char *data, size_t length)
Read an Input report from a HID device.
int HID_API_EXPORT HID_API_CALL hid_get_input_report(hid_device *dev, unsigned char *data, size_t length)
Get a input report from a HID device.
struct hid_device_info HID_API_EXPORT *HID_API_CALL hid_get_device_info(hid_device *dev)
Get The struct hid_device_info from a HID device.
int HID_API_EXPORT_CALL hid_get_serial_number_string(hid_device *dev, wchar_t *string, size_t maxlen)
Get The Serial Number String from a HID device.
int HID_API_EXPORT_CALL hid_get_product_string(hid_device *dev, wchar_t *string, size_t maxlen)
Get The Product String from a HID device.
HID_API_EXPORT hid_device *HID_API_CALL hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number)
Open a HID device using a Vendor ID (VID), Product ID (PID) and optionally a serial number.
int HID_API_EXPORT HID_API_CALL hid_send_output_report(hid_device *dev, const unsigned char *data, size_t length)
Send a Output report to the device.
int HID_API_EXPORT_CALL hid_get_manufacturer_string(hid_device *dev, wchar_t *string, size_t maxlen)
Get The Manufacturer String from a HID device.
void HID_API_EXPORT HID_API_CALL hid_close(hid_device *dev)
Close a HID device.
HID_API_EXPORT hid_device *HID_API_CALL hid_open_path(const char *path)
Open a HID device by its path name.
int HID_API_EXPORT HID_API_CALL hid_get_feature_report(hid_device *dev, unsigned char *data, size_t length)
Get a feature report from a HID device.
int HID_API_EXPORT HID_API_CALL hid_read_timeout(hid_device *dev, unsigned char *data, size_t length, int milliseconds)
Read an Input report from a HID device with timeout.
int HID_API_EXPORT HID_API_CALL hid_write(hid_device *dev, const unsigned char *data, size_t length)
Write an Output report to a HID device.
int HID_API_EXPORT_CALL hid_get_report_descriptor(hid_device *dev, unsigned char *buf, size_t buf_size)
Get a report descriptor from a HID device.
struct hid_device_info HID_API_EXPORT *HID_API_CALL hid_enumerate(unsigned short vendor_id, unsigned short product_id)
Enumerate the HID Devices.
HID_API_EXPORT const wchar_t *HID_API_CALL hid_error(hid_device *dev)
Get a string describing the last error which occurred.
HID_API_EXPORT const char *HID_API_CALL hid_version_str(void)
Get a runtime version string of the library.
int HID_API_EXPORT HID_API_CALL hid_exit(void)
Finalize the HIDAPI library.
int HID_API_EXPORT HID_API_CALL hid_send_feature_report(hid_device *dev, const unsigned char *data, size_t length)
Send a Feature report to the device.
HID_API_EXPORT const struct hid_api_version *HID_API_CALL hid_version(void)
Get a runtime version of the library.
void HID_API_EXPORT HID_API_CALL hid_free_enumeration(struct hid_device_info *devs)
Free an enumeration Linked List.
@ HID_API_BUS_SPI
Definition: hidapi.h:146
@ HID_API_BUS_USB
Definition: hidapi.h:129
@ HID_API_BUS_UNKNOWN
Definition: hidapi.h:124
@ HID_API_BUS_BLUETOOTH
Definition: hidapi.h:136
@ HID_API_BUS_I2C
Definition: hidapi.h:141
#define HID_API_EXPORT_CALL
Definition: hidapi.h:44
#define HID_API_EXPORT
Definition: hidapi.h:39
struct hid_device_ hid_device
Definition: hidapi.h:116
#define HID_API_CALL
Definition: hidapi.h:42
int major
Definition: hidapi.h:110
int minor
Definition: hidapi.h:111
int patch
Definition: hidapi.h:112
unsigned short product_id
Definition: hidapi.h:156
struct hid_device_info * next
Definition: hidapi.h:181
unsigned short usage
Definition: hidapi.h:171
wchar_t * manufacturer_string
Definition: hidapi.h:163
unsigned short vendor_id
Definition: hidapi.h:154
char * path
Definition: hidapi.h:152
unsigned short release_number
Definition: hidapi.h:161
wchar_t * serial_number
Definition: hidapi.h:158
int interface_number
Definition: hidapi.h:178
unsigned short usage_page
Definition: hidapi.h:168
wchar_t * product_string
Definition: hidapi.h:165
hid_bus_type bus_type
Definition: hidapi.h:186