22 #include "../../SDL_internal.h" 29 #ifndef SDL_USE_LIBUDEV 30 #define SDL_USE_LIBUDEV 1 37 #include <sys/types.h> 45 SDL_UDEV_DEVICEADDED = 1,
46 SDL_UDEV_DEVICEREMOVED
47 } SDL_UDEV_deviceevent;
52 SDL_UDEV_DEVICE_UNKNOWN = 0x0000,
53 SDL_UDEV_DEVICE_MOUSE = 0x0001,
54 SDL_UDEV_DEVICE_KEYBOARD = 0x0002,
55 SDL_UDEV_DEVICE_JOYSTICK = 0x0004,
56 SDL_UDEV_DEVICE_SOUND = 0x0008,
57 SDL_UDEV_DEVICE_TOUCHSCREEN = 0x0010
58 } SDL_UDEV_deviceclass;
60 typedef void (*SDL_UDEV_Callback)(SDL_UDEV_deviceevent udev_type,
int udev_class,
const char *devpath);
62 typedef struct SDL_UDEV_CallbackList {
64 struct SDL_UDEV_CallbackList *next;
65 } SDL_UDEV_CallbackList;
67 typedef struct SDL_UDEV_Symbols {
68 const char *(*udev_device_get_action)(
struct udev_device *);
69 const char *(*udev_device_get_devnode)(
struct udev_device *);
70 const char *(*udev_device_get_subsystem)(
struct udev_device *);
71 struct udev_device *(*udev_device_get_parent_with_subsystem_devtype)(
struct udev_device *udev_device,
const char *subsystem,
const char *devtype);
72 const char *(*udev_device_get_property_value)(
struct udev_device *,
const char *);
73 const char *(*udev_device_get_sysattr_value)(
struct udev_device *udev_device,
const char *sysattr);
74 struct udev_device *(*udev_device_new_from_syspath)(
struct udev *,
const char *);
75 void (*udev_device_unref)(
struct udev_device *);
76 int (*udev_enumerate_add_match_property)(
struct udev_enumerate *,
const char *,
const char *);
77 int (*udev_enumerate_add_match_subsystem)(
struct udev_enumerate *,
const char *);
78 struct udev_list_entry *(*udev_enumerate_get_list_entry)(
struct udev_enumerate *);
79 struct udev_enumerate *(*udev_enumerate_new)(
struct udev *);
80 int (*udev_enumerate_scan_devices)(
struct udev_enumerate *);
81 void (*udev_enumerate_unref)(
struct udev_enumerate *);
82 const char *(*udev_list_entry_get_name)(
struct udev_list_entry *);
83 struct udev_list_entry *(*udev_list_entry_get_next)(
struct udev_list_entry *);
84 int (*udev_monitor_enable_receiving)(
struct udev_monitor *);
85 int (*udev_monitor_filter_add_match_subsystem_devtype)(
struct udev_monitor *,
const char *,
const char *);
86 int (*udev_monitor_get_fd)(
struct udev_monitor *);
87 struct udev_monitor *(*udev_monitor_new_from_netlink)(
struct udev *,
const char *);
88 struct udev_device *(*udev_monitor_receive_device)(
struct udev_monitor *);
89 void (*udev_monitor_unref)(
struct udev_monitor *);
90 struct udev *(*udev_new)(
void);
91 void (*udev_unref)(
struct udev *);
92 struct udev_device * (*udev_device_new_from_devnum)(
struct udev *udev,
char type, dev_t devnum);
93 dev_t (*udev_device_get_devnum) (
struct udev_device *udev_device);
96 typedef struct SDL_UDEV_PrivateData
98 const char *udev_library;
101 struct udev_monitor *udev_mon;
103 SDL_UDEV_CallbackList *
first, *last;
106 SDL_UDEV_Symbols syms;
107 } SDL_UDEV_PrivateData;
109 extern int SDL_UDEV_Init(
void);
110 extern void SDL_UDEV_Quit(
void);
111 extern void SDL_UDEV_UnloadLibrary(
void);
112 extern int SDL_UDEV_LoadLibrary(
void);
113 extern void SDL_UDEV_Poll(
void);
114 extern void SDL_UDEV_Scan(
void);
115 extern int SDL_UDEV_AddCallback(SDL_UDEV_Callback cb);
116 extern void SDL_UDEV_DelCallback(SDL_UDEV_Callback cb);
117 extern const SDL_UDEV_Symbols *SDL_UDEV_GetUdevSyms(
void);
118 extern void SDL_UDEV_ReleaseUdevSyms(
void);
static Uint32 callback(Uint32 interval, void *param)
SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char const char SDL_SCANF_FORMAT_STRING const char return SDL_ThreadFunction const char void return Uint32 return Uint32 void
GLuint GLuint GLsizei GLenum type