1from libc.stddef cimport wchar_t, size_t 2 3cdef extern from "hidapi.h": 4 ctypedef struct hid_device: 5 pass 6 7 cdef struct hid_device_info: 8 char *path 9 unsigned short vendor_id 10 unsigned short product_id 11 wchar_t *serial_number 12 unsigned short release_number 13 wchar_t *manufacturer_string 14 wchar_t *product_string 15 unsigned short usage_page 16 unsigned short usage 17 int interface_number 18 hid_device_info *next 19 20 hid_device_info* hid_enumerate(unsigned short, unsigned short) nogil 21 void hid_free_enumeration(hid_device_info*) 22 23 hid_device* hid_open(unsigned short, unsigned short, const wchar_t*) 24 hid_device* hid_open_path(char *path) 25 void hid_close(hid_device *) 26 int hid_exit() 27 int hid_write(hid_device* device, unsigned char *data, int length) nogil 28 int hid_read(hid_device* device, unsigned char* data, int max_length) nogil 29 int hid_read_timeout(hid_device* device, unsigned char* data, int max_length, int milliseconds) nogil 30 int hid_set_nonblocking(hid_device* device, int value) 31 int hid_send_feature_report(hid_device* device, unsigned char *data, int length) nogil 32 int hid_get_feature_report(hid_device* device, unsigned char *data, int length) nogil 33 int hid_get_input_report(hid_device* device, unsigned char *data, int length) nogil 34 35 int hid_get_manufacturer_string(hid_device*, wchar_t *, size_t) 36 int hid_get_product_string(hid_device*, wchar_t *, size_t) 37 int hid_get_serial_number_string(hid_device*, wchar_t *, size_t) 38 int hid_get_indexed_string(hid_device*, int, wchar_t *, size_t) 39 wchar_t *hid_error(hid_device *) 40