mirror of https://github.com/nirenjan/libx52.git
71 lines
2.9 KiB
C
71 lines
2.9 KiB
C
/*
|
|
* Saitek X52 IO driver
|
|
*
|
|
* Copyright (C) 2012-2026 Nirenjan Krishnan (nirenjan@nirenjan.org)
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-only WITH Classpath-exception-2.0
|
|
*/
|
|
|
|
#include "build-config.h"
|
|
#include <stdlib.h>
|
|
#include <libx52/libx52io.h>
|
|
|
|
_Static_assert((LIBX52IO_AXIS_MAX + LIBX52IO_BUTTON_MAX + 1) < 64,
|
|
"CRITICAL: Report bitmask definitions exceed 64-bit allocation capacity!");
|
|
|
|
// __attribute__((unused)) stops the compiler from throwing an unused variable warning
|
|
__attribute__((unused)) static const char unique_bit_check[] = {
|
|
[LIBX52IO_AXIS_X] = 1,
|
|
[LIBX52IO_AXIS_Y] = 1,
|
|
[LIBX52IO_AXIS_RZ] = 1,
|
|
[LIBX52IO_AXIS_Z] = 1,
|
|
[LIBX52IO_AXIS_RX] = 1,
|
|
[LIBX52IO_AXIS_RY] = 1,
|
|
[LIBX52IO_AXIS_SLIDER] = 1,
|
|
[LIBX52IO_AXIS_THUMBX] = 1,
|
|
[LIBX52IO_AXIS_THUMBY] = 1,
|
|
[LIBX52IO_AXIS_HATX] = 1,
|
|
[LIBX52IO_AXIS_HATY] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_TRIGGER] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_TRIGGER_2] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_FIRE] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_PINKY] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_A] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_B] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_C] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_D] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_E] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_T1_UP] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_T1_DN] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_T2_UP] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_T2_DN] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_T3_UP] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_T3_DN] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_POV_1_N] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_POV_1_E] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_POV_1_S] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_POV_1_W] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_POV_2_N] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_POV_2_E] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_POV_2_S] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_POV_2_W] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_CLUTCH] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_MOUSE_PRIMARY] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_MOUSE_SECONDARY] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_MOUSE_SCROLL_UP] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_MOUSE_SCROLL_DN] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_FUNCTION] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_START_STOP] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_RESET] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_PG_UP] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_PG_DN] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_UP] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_DN] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_SELECT] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_MODE_1] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_MODE_2] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BTN_MODE_3] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BUTTON_MAX] = 1,
|
|
[LIBX52IO_AXIS_MAX + LIBX52IO_BUTTON_MAX + 1] = 1,
|
|
};
|