23 #include "../../SDL_internal.h"
25 #ifndef SDL_evdev_capabilities_h_
26 #define SDL_evdev_capabilities_h_
28 #if HAVE_LIBUDEV_H || defined(SDL_JOYSTICK_LINUX)
30 #include <linux/input.h>
35 SDL_UDEV_DEVICE_UNKNOWN = 0x0000,
36 SDL_UDEV_DEVICE_MOUSE = 0x0001,
37 SDL_UDEV_DEVICE_KEYBOARD = 0x0002,
38 SDL_UDEV_DEVICE_JOYSTICK = 0x0004,
39 SDL_UDEV_DEVICE_SOUND = 0x0008,
40 SDL_UDEV_DEVICE_TOUCHSCREEN = 0x0010,
41 SDL_UDEV_DEVICE_ACCELEROMETER = 0x0020
42 } SDL_UDEV_deviceclass;
44 #define BITS_PER_LONG (sizeof(unsigned long) * 8)
45 #define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
46 #define EVDEV_OFF(x) ((x)%BITS_PER_LONG)
47 #define EVDEV_LONG(x) ((x)/BITS_PER_LONG)
48 #define test_bit(bit, array) ((array[EVDEV_LONG(bit)] >> EVDEV_OFF(bit)) & 1)
50 extern int SDL_EVDEV_GuessDeviceClass(
unsigned long bitmask_ev[NBITS(EV_MAX)],
51 unsigned long bitmask_abs[NBITS(ABS_MAX)],
52 unsigned long bitmask_key[NBITS(KEY_MAX)],
53 unsigned long bitmask_rel[NBITS(REL_MAX)]);