29 #ifndef SDL_USE_LIBUDEV
30 #define SDL_USE_LIBUDEV 1
45 SDL_UDEV_DEVICEADDED = 0x0001,
46 SDL_UDEV_DEVICEREMOVED
47 } SDL_UDEV_deviceevent;
51 SDL_UDEV_DEVICE_MOUSE = 0x0001,
52 SDL_UDEV_DEVICE_KEYBOARD,
53 SDL_UDEV_DEVICE_JOYSTICK,
55 } SDL_UDEV_deviceclass;
57 typedef void (*SDL_UDEV_Callback)(SDL_UDEV_deviceevent udev_type, SDL_UDEV_deviceclass udev_class,
const char *devpath);
59 typedef struct SDL_UDEV_CallbackList {
60 SDL_UDEV_Callback callback;
61 struct SDL_UDEV_CallbackList *next;
62 } SDL_UDEV_CallbackList;
64 typedef struct SDL_UDEV_PrivateData
66 const char *udev_library;
69 struct udev_monitor *udev_mon;
71 SDL_UDEV_CallbackList *
first, *last;
74 const char *(*udev_device_get_action)(
struct udev_device *);
75 const char *(*udev_device_get_devnode)(
struct udev_device *);
76 const char *(*udev_device_get_subsystem)(
struct udev_device *);
77 const char *(*udev_device_get_property_value)(
struct udev_device *,
const char *);
78 struct udev_device *(*udev_device_new_from_syspath)(
struct udev *,
const char *);
79 void (*udev_device_unref)(
struct udev_device *);
80 int (*udev_enumerate_add_match_property)(
struct udev_enumerate *,
const char *,
const char *);
81 int (*udev_enumerate_add_match_subsystem)(
struct udev_enumerate *,
const char *);
82 struct udev_list_entry *(*udev_enumerate_get_list_entry)(
struct udev_enumerate *);
83 struct udev_enumerate *(*udev_enumerate_new)(
struct udev *);
84 int (*udev_enumerate_scan_devices)(
struct udev_enumerate *);
85 void (*udev_enumerate_unref)(
struct udev_enumerate *);
86 const char *(*udev_list_entry_get_name)(
struct udev_list_entry *);
87 struct udev_list_entry *(*udev_list_entry_get_next)(
struct udev_list_entry *);
88 int (*udev_monitor_enable_receiving)(
struct udev_monitor *);
89 int (*udev_monitor_filter_add_match_subsystem_devtype)(
struct udev_monitor *,
const char *,
const char *);
90 int (*udev_monitor_get_fd)(
struct udev_monitor *);
91 struct udev_monitor *(*udev_monitor_new_from_netlink)(
struct udev *,
const char *);
92 struct udev_device *(*udev_monitor_receive_device)(
struct udev_monitor *);
93 void (*udev_monitor_unref)(
struct udev_monitor *);
94 struct udev *(*udev_new)(
void);
95 void (*udev_unref)(
struct udev *);
96 struct udev_device * (*udev_device_new_from_devnum)(
struct udev *udev,
char type, dev_t devnum);
97 dev_t (*udev_device_get_devnum) (
struct udev_device *udev_device);
98 } SDL_UDEV_PrivateData;
100 extern int SDL_UDEV_Init(
void);
101 extern void SDL_UDEV_Quit(
void);
102 extern void SDL_UDEV_UnloadLibrary(
void);
103 extern int SDL_UDEV_LoadLibrary(
void);
104 extern void SDL_UDEV_Poll(
void);
105 extern void SDL_UDEV_Scan(
void);
106 extern int SDL_UDEV_AddCallback(SDL_UDEV_Callback cb);
107 extern void SDL_UDEV_DelCallback(SDL_UDEV_Callback cb);
GLint GLenum GLsizei GLsizei GLsizei GLint GLenum GLenum type
GLvoid **typedef void(GLAPIENTRY *PFNGLGETVERTEXATTRIBDVPROC)(GLuint