27# if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303
28# define LIBX52IO_API __attribute__((visibility("default")))
30# define LIBX52IO_API __declspec(dllexport)
262 int32_t
axis[LIBX52IO_AXIS_MAX];
LIBX52IO_API int libx52io_init(libx52io_context **ctx)
Initialize the IO library.
LIBX52IO_API int libx52io_button_from_str_nocase(const char *str, libx52io_button *button)
Parse a button name with ASCII case-insensitive matching.
libx52io_button
X52 Button definitions.
Definition libx52io.h:134
LIBX52IO_API int libx52io_read(libx52io_context *ctx, libx52io_report *report)
Read and parse a HID report.
LIBX52IO_API const char * libx52io_get_serial_number_string(libx52io_context *ctx)
Get the serial number of the connected X52 device.
libx52io_axis
X52 Axis definitions.
Definition libx52io.h:94
libx52io_error_code
libx52 IO error codes
Definition libx52io.h:68
LIBX52IO_API uint16_t libx52io_get_device_version(libx52io_context *ctx)
Get the device version of the connected X52 device.
LIBX52IO_API const char * libx52io_button_to_str(libx52io_button button)
Get the string representation of a button.
LIBX52IO_API int libx52io_close(libx52io_context *ctx)
Close an existing connection to a supported joystick.
LIBX52IO_API int libx52io_open(libx52io_context *ctx)
Open a connection to a supported joystick.
LIBX52IO_API int libx52io_axis_from_str_nocase(const char *str, libx52io_axis *axis)
Parse an axis name with ASCII case-insensitive matching.
LIBX52IO_API int libx52io_axis_from_str(const char *str, libx52io_axis *axis)
Parse the string representation of an axis.
struct libx52io_context libx52io_context
Device context structure used by libx52io.
Definition libx52io.h:61
LIBX52IO_API int libx52io_read_timeout(libx52io_context *ctx, libx52io_report *report, int timeout)
Read and parse a HID report.
LIBX52IO_API void libx52io_exit(libx52io_context *ctx)
Exit the library and free up any resources used.
LIBX52IO_API const char * libx52io_get_product_string(libx52io_context *ctx)
Get the product string of the connected X52 device.
LIBX52IO_API const char * libx52io_get_manufacturer_string(libx52io_context *ctx)
Get the manufacturer string of the connected X52 device.
LIBX52IO_API const char * libx52io_strerror(libx52io_error_code code)
Get the string representation of an error code.
LIBX52IO_API int libx52io_button_from_str(const char *str, libx52io_button *button)
Parse the string representation of a button.
LIBX52IO_API uint16_t libx52io_get_vendor_id(libx52io_context *ctx)
Get the vendor ID of the connected X52 device.
LIBX52IO_API const char * libx52io_axis_to_str(libx52io_axis axis)
Get the string representation of an axis.
LIBX52IO_API int libx52io_get_axis_range(libx52io_context *ctx, libx52io_axis axis, int32_t *min, int32_t *max)
Retrieve the range of an axis.
LIBX52IO_API uint16_t libx52io_get_product_id(libx52io_context *ctx)
Get the product ID of the connected X52 device.
@ LIBX52IO_BTN_FIRE
Definition libx52io.h:142
@ LIBX52IO_BTN_T1_DN
Definition libx52io.h:166
@ LIBX52IO_BTN_TRIGGER_2
Definition libx52io.h:139
@ LIBX52IO_BTN_POV_1_S
Definition libx52io.h:187
@ LIBX52IO_BTN_MODE_1
Definition libx52io.h:244
@ LIBX52IO_BTN_T3_UP
Definition libx52io.h:175
@ LIBX52IO_BTN_MOUSE_PRIMARY
Definition libx52io.h:208
@ LIBX52IO_BTN_A
Definition libx52io.h:148
@ LIBX52IO_BTN_B
Definition libx52io.h:151
@ LIBX52IO_BTN_PG_UP
Definition libx52io.h:229
@ LIBX52IO_BTN_POV_2_S
Definition libx52io.h:199
@ LIBX52IO_BTN_T2_DN
Definition libx52io.h:172
@ LIBX52IO_BTN_TRIGGER
Definition libx52io.h:136
@ LIBX52IO_BTN_MOUSE_SCROLL_UP
Definition libx52io.h:214
@ LIBX52IO_BTN_POV_2_E
Definition libx52io.h:196
@ LIBX52IO_BTN_MOUSE_SCROLL_DN
Definition libx52io.h:217
@ LIBX52IO_BTN_SELECT
Definition libx52io.h:241
@ LIBX52IO_BTN_E
Definition libx52io.h:160
@ LIBX52IO_BTN_DN
Definition libx52io.h:238
@ LIBX52IO_BTN_POV_1_N
Definition libx52io.h:181
@ LIBX52IO_BTN_POV_2_N
Definition libx52io.h:193
@ LIBX52IO_BTN_PG_DN
Definition libx52io.h:232
@ LIBX52IO_BTN_POV_1_E
Definition libx52io.h:184
@ LIBX52IO_BTN_RESET
Definition libx52io.h:226
@ LIBX52IO_BTN_POV_2_W
Definition libx52io.h:202
@ LIBX52IO_BTN_CLUTCH
Definition libx52io.h:205
@ LIBX52IO_BTN_MODE_2
Definition libx52io.h:247
@ LIBX52IO_BTN_T1_UP
Definition libx52io.h:163
@ LIBX52IO_BTN_MODE_3
Definition libx52io.h:250
@ LIBX52IO_BTN_T3_DN
Definition libx52io.h:178
@ LIBX52IO_BTN_FUNCTION
Definition libx52io.h:220
@ LIBX52IO_BTN_PINKY
Definition libx52io.h:145
@ LIBX52IO_BTN_C
Definition libx52io.h:154
@ LIBX52IO_BTN_POV_1_W
Definition libx52io.h:190
@ LIBX52IO_BTN_START_STOP
Definition libx52io.h:223
@ LIBX52IO_BTN_D
Definition libx52io.h:157
@ LIBX52IO_BTN_MOUSE_SECONDARY
Definition libx52io.h:211
@ LIBX52IO_BTN_UP
Definition libx52io.h:235
@ LIBX52IO_BTN_T2_UP
Definition libx52io.h:169
@ LIBX52IO_AXIS_X
Definition libx52io.h:96
@ LIBX52IO_AXIS_THUMBY
Definition libx52io.h:120
@ LIBX52IO_AXIS_RX
Definition libx52io.h:108
@ LIBX52IO_AXIS_RZ
Definition libx52io.h:102
@ LIBX52IO_AXIS_SLIDER
Definition libx52io.h:114
@ LIBX52IO_AXIS_HATX
Definition libx52io.h:123
@ LIBX52IO_AXIS_Y
Definition libx52io.h:99
@ LIBX52IO_AXIS_THUMBX
Definition libx52io.h:117
@ LIBX52IO_AXIS_Z
Definition libx52io.h:105
@ LIBX52IO_AXIS_RY
Definition libx52io.h:111
@ LIBX52IO_AXIS_HATY
Definition libx52io.h:126
@ LIBX52IO_ERROR_INVALID
Definition libx52io.h:79
@ LIBX52IO_ERROR_INIT_FAILURE
Definition libx52io.h:73
@ LIBX52IO_ERROR_CONN
Definition libx52io.h:82
@ LIBX52IO_ERROR_IO
Definition libx52io.h:85
@ LIBX52IO_ERROR_NO_DEVICE
Definition libx52io.h:76
@ LIBX52IO_SUCCESS
Definition libx52io.h:70
@ LIBX52IO_ERROR_TIMEOUT
Definition libx52io.h:88
X52 HID Report.
Definition libx52io.h:260
uint8_t mode
Definition libx52io.h:268
int32_t axis[LIBX52IO_AXIS_MAX]
Definition libx52io.h:262
uint8_t hat
Definition libx52io.h:271
bool button[LIBX52IO_BUTTON_MAX]
Definition libx52io.h:265