improve menu autorepeat
[libpicofe.git] / common / input.h
1 #define IN_MAX_DEVS 10
2
3 enum {
4         IN_DRVID_UNKNOWN = 0,
5         IN_DRVID_EVDEV,
6         IN_DRVID_COUNT
7 };
8
9 typedef struct {
10         const char *prefix;
11         void (*probe)(void);
12         void (*free)(void *drv_data);
13         int  (*get_bind_count)(void);
14         void (*get_def_binds)(int *binds);
15         int  (*clean_binds)(void *drv_data, int *binds);
16         void (*set_blocking)(void *data, int y);
17         int  (*menu_translate)(int keycode);
18         int  (*get_key_code)(const char *key_name);
19         const char * (*get_key_name)(int keycode);
20 } in_drv_t;
21
22
23 /* to be called by drivers */
24 void in_register(const char *nname, int drv_id, void *drv_data);
25
26 void in_init(void);
27 void in_probe(void);
28 int  in_update(void);
29 void in_set_blocking(int is_blocking);
30 int  in_update_keycode(int *dev_id, int *is_down, int timeout_ms);
31 int  in_menu_wait_any(int timeout_ms);
32 int  in_menu_wait(int interesting);
33 int  in_get_dev_bind_count(int dev_id);
34 void in_config_start(void);
35 int  in_config_parse_dev(const char *dev_name);
36 int  in_config_bind_key(int dev_id, const char *key, int mask);
37 void in_config_end(void);
38 int  in_bind_key(int dev_id, int keycode, int mask, int force_unbind);
39 void in_debug_dump(void);
40
41 const int  *in_get_dev_binds(int dev_id);
42 const int  *in_get_dev_def_binds(int dev_id);
43 const char *in_get_dev_name(int dev_id, int must_be_active);
44 const char *in_get_key_name(int dev_id, int keycode);