#pragma once #include #include struct hid_device_ { /* Handle to the actual device. */ libusb_device_handle* device_handle; /* Endpoint information */ int input_endpoint; int output_endpoint; int input_ep_max_packet_size; /* The interface number of the HID */ int interface; /* Indexes of Strings */ int manufacturer_index; int product_index; int serial_index; /* Whether blocking reads are used */ int blocking; /* boolean */ /* Read thread objects */ pthread_t thread; pthread_mutex_t mutex; /* Protects input_reports */ pthread_cond_t condition; pthread_barrier_t barrier; /* Ensures correct startup sequence */ int shutdown_thread; int cancelled; struct libusb_transfer* transfer; /* List of received input reports. */ struct input_report* input_reports; };