generalise keyboard support
authorkub <derkub@gmail.com>
Mon, 13 Jan 2025 22:56:58 +0000 (23:56 +0100)
committerkub <derkub@gmail.com>
Mon, 13 Jan 2025 22:56:58 +0000 (23:56 +0100)
in_sdl.c
input.c
input.h
linux/in_evdev.c

index f0b5264..524cda0 100644 (file)
--- a/in_sdl.c
+++ b/in_sdl.c
@@ -446,7 +446,7 @@ static int in_sdl_update(void *drv_data, const int *binds, int *result)
        return 0;
 }
 
-static int in_sdl_update_pico_ps2(void *drv_data, const int *binds, int *result)
+static int in_sdl_update_kbd(void *drv_data, const int *binds, int *result)
 {
        struct in_sdl_state *state = drv_data;
        keybits_t mask;
@@ -560,7 +560,7 @@ static const in_drv_t in_sdl_drv = {
        .free            = in_sdl_free,
        .get_key_names   = in_sdl_get_key_names,
        .update          = in_sdl_update,
-       .update_pico_ps2 = in_sdl_update_pico_ps2,
+       .update_kbd      = in_sdl_update_kbd,
        .update_keycode  = in_sdl_update_keycode,
        .menu_translate  = in_sdl_menu_translate,
        .clean_binds     = in_sdl_clean_binds,
@@ -573,7 +573,7 @@ int in_sdl_init(const struct in_pdata *pdata, void (*handler)(void *event))
                return -1;
        }
 
-       in_register_driver(&in_sdl_drv, pdata->defbinds, pdata->pico_ps2_map, pdata);
+       in_register_driver(&in_sdl_drv, pdata->defbinds, pdata->kbd_map, pdata);
        ext_event_handler = handler;
        return 0;
 }
diff --git a/input.c b/input.c
index 3ff94e3..b7c4959 100644 (file)
--- a/input.c
+++ b/input.c
@@ -30,7 +30,7 @@ typedef struct
        char *name;
        int key_count;
        int *binds;     /* total = key_count * bindtypes * 2 */
-       int *pico_ps2_binds;    /* total = key_count */
+       int *kbd_binds; /* total = key_count */
        const char * const *key_names;
        unsigned int probed:1;
        unsigned int does_combos:1;
@@ -84,7 +84,7 @@ static int *in_alloc_binds(int drv_id, int key_count)
        return binds;
 }
 
-static int *in_alloc_pico_ps2_binds(int drv_id, int key_count)
+static int *in_alloc_kbd_binds(int drv_id, int key_count)
 {
        const struct in_default_bind *defbinds;
        int *binds;
@@ -95,7 +95,7 @@ static int *in_alloc_pico_ps2_binds(int drv_id, int key_count)
                return NULL;
 
        /* always have a copy of defbinds */
-       defbinds = DRV(drv_id).pico_ps2_binds;
+       defbinds = DRV(drv_id).kbd_binds;
        if (defbinds != NULL) {
                for (i = 0; ; i++) {
                        if (defbinds[i].code == 0 && defbinds[i].btype == 0
@@ -131,7 +131,7 @@ static void in_free(in_dev_t *dev)
 void in_register(const char *nname, int drv_fd_hnd, void *drv_data,
                int key_count, const char * const *key_names, int combos)
 {
-       int i, ret, dupe_count = 0, *binds, *pico_ps2_binds;
+       int i, ret, dupe_count = 0, *binds, *kbd_binds;
        char name[256], *name_end, *tmp;
 
        strncpy(name, nname, sizeof(name));
@@ -174,8 +174,8 @@ void in_register(const char *nname, int drv_fd_hnd, void *drv_data,
                free(tmp);
                return;
        }
-       pico_ps2_binds = in_alloc_pico_ps2_binds(in_probe_dev_id, key_count);
-       if (pico_ps2_binds == NULL) {
+       kbd_binds = in_alloc_kbd_binds(in_probe_dev_id, key_count);
+       if (kbd_binds == NULL) {
                free(tmp);
                return;
        }
@@ -185,7 +185,7 @@ void in_register(const char *nname, int drv_fd_hnd, void *drv_data,
 
        in_devices[i].name = tmp;
        in_devices[i].binds = binds;
-       in_devices[i].pico_ps2_binds = pico_ps2_binds;
+       in_devices[i].kbd_binds = kbd_binds;
        in_devices[i].key_count = key_count;
        if (i + 1 > in_dev_count)
                in_dev_count = i + 1;
@@ -332,14 +332,14 @@ int in_update(int *result)
        return ret;
 }
 
-int in_update_pico_ps2(int *result)
+int in_update_kbd(int *result)
 {
        int i, ret = 0;
 
        for (i = 0; i < in_dev_count; i++) {
                in_dev_t *dev = &in_devices[i];
                if (dev->probed && dev->binds != NULL)
-                       ret |= DRV(dev->drv_id).update_pico_ps2(dev->drv_data, dev->pico_ps2_binds, result);
+                       ret |= DRV(dev->drv_id).update_kbd(dev->drv_data, dev->kbd_binds, result);
        }
 
        return ret;
@@ -542,11 +542,11 @@ const int *in_get_dev_binds(int dev_id)
        return dev ? dev->binds : NULL;
 }
 
-const int *in_get_dev_ps2_binds(int dev_id)
+const int *in_get_dev_kbd_binds(int dev_id)
 {
        in_dev_t *dev = get_dev(dev_id);
 
-       return dev ? dev->pico_ps2_binds : NULL;
+       return dev ? dev->kbd_binds : NULL;
 }
 
 const int *in_get_dev_def_binds(int dev_id)
@@ -560,7 +560,7 @@ const int *in_get_dev_def_binds(int dev_id)
        return dev->binds + dev->key_count * IN_BINDTYPE_COUNT;
 }
 
-const int *in_get_dev_ps2_def_binds(int dev_id)
+const int *in_get_dev_kbd_def_binds(int dev_id)
 {
        in_dev_t *dev = get_dev(dev_id);
        if (dev == NULL)
@@ -568,7 +568,7 @@ const int *in_get_dev_ps2_def_binds(int dev_id)
        if (dev->binds == NULL)
                return NULL;
 
-       return dev->pico_ps2_binds;
+       return dev->kbd_binds;
 }
 
 int in_get_config(int dev_id, int what, void *val)
@@ -803,7 +803,7 @@ int in_bind_key(int dev_id, int keycode, int mask, int bind_type, int force_unbi
        return 0;
 }
 
-int in_bind_ps2_key(int dev_id, int keycode, int ps2_key)
+int in_bind_kbd_key(int dev_id, int keycode, int kbd_key)
 {
        int count;
        in_dev_t *dev;
@@ -814,16 +814,16 @@ int in_bind_ps2_key(int dev_id, int keycode, int ps2_key)
 
        count = dev->key_count;
 
-       if (dev->pico_ps2_binds == NULL) {
-               dev->pico_ps2_binds = in_alloc_pico_ps2_binds(dev->drv_id, count);
-               if (dev->pico_ps2_binds == NULL)
+       if (dev->kbd_binds == NULL) {
+               dev->kbd_binds = in_alloc_kbd_binds(dev->drv_id, count);
+               if (dev->kbd_binds == NULL)
                        return -1;
        }
 
        if (keycode < 0 || keycode >= count)
                return -1;
 
-       dev->pico_ps2_binds[keycode] = ps2_key;
+       dev->kbd_binds[keycode] = kbd_key;
        return 0;
 }
 
@@ -987,7 +987,7 @@ int in_config_bind_key(int dev_id, const char *key, int acts, int bind_type)
        return 0;
 }
 
-int in_config_bind_ps2_key(int dev_id, const char *key, int ps2_key)
+int in_config_bind_kbd_key(int dev_id, const char *key, int kbd_key)
 {
        in_dev_t *dev;
        int kc;
@@ -1004,7 +1004,7 @@ int in_config_bind_ps2_key(int dev_id, const char *key, int ps2_key)
                return -1;
        }
 
-       dev->pico_ps2_binds[kc] = ps2_key;
+       dev->kbd_binds[kc] = kbd_key;
 
        return 0;
 }
@@ -1082,7 +1082,7 @@ static const char *in_def_get_key_name(int keycode) { return NULL; }
 /* to be called by drivers */
 int in_register_driver(const in_drv_t *drv,
                        const struct in_default_bind *defbinds, 
-                       const struct in_default_bind *pico_ps2_map, 
+                       const struct in_default_bind *kbd_map, 
                        const void *pdata)
 {
        int count_new = in_driver_count + 1;
@@ -1109,8 +1109,8 @@ int in_register_driver(const in_drv_t *drv,
                new_drivers[in_driver_count].pdata = pdata;
        if (defbinds)
                new_drivers[in_driver_count].defbinds = defbinds;
-       if (pico_ps2_map)
-               new_drivers[in_driver_count].pico_ps2_binds = pico_ps2_map;
+       if (kbd_map)
+               new_drivers[in_driver_count].kbd_binds = kbd_map;
        in_drivers = new_drivers;
        in_driver_count = count_new;
 
diff --git a/input.h b/input.h
index 6817e13..6a56bc1 100644 (file)
--- a/input.h
+++ b/input.h
@@ -66,7 +66,7 @@ enum {
        IN_BINDTYPE_EMU = 0,
        IN_BINDTYPE_PLAYER12,
        IN_BINDTYPE_PLAYER34,
-       IN_BINDTYPE_PICO_PS2,
+       IN_BINDTYPE_KEYBOARD,
        IN_BINDTYPE_COUNT,
 };
 
@@ -87,7 +87,7 @@ struct InputDriver {
        int  (*get_config)(void *drv_data, int what, int *val);
        int  (*set_config)(void *drv_data, int what, int val);
        int  (*update)(void *drv_data, const int *binds, int *result);
-       int  (*update_pico_ps2)(void *drv_data, const int *binds, int *result);
+       int  (*update_kbd)(void *drv_data, const int *binds, int *result);
        int  (*update_analog)(void *drv_data, int axis_id, int *result);
        /* return -1 on no event, -2 on error */
        int  (*update_keycode)(void *drv_data, int *is_down);
@@ -96,7 +96,7 @@ struct InputDriver {
        const char * (*get_key_name)(int keycode);
 
        const struct in_default_bind *defbinds;
-       const struct in_default_bind *pico_ps2_binds;
+       const struct in_default_bind *kbd_binds;
        const void *pdata;
 };
 
@@ -118,13 +118,13 @@ struct in_pdata {
        const struct menu_keymap *joy_map;
        size_t jmap_size;
        const char * const *key_names;
-       const struct in_default_bind *pico_ps2_map;
+       const struct in_default_bind *kbd_map;
 };
 
 /* to be called by drivers */
 int in_register_driver(const in_drv_t *drv,
                        const struct in_default_bind *defbinds, 
-                       const struct in_default_bind *pico_ps2_map, 
+                       const struct in_default_bind *kbd_map, 
                        const void *pdata);
 void in_register(const char *nname, int drv_fd_hnd, void *drv_data,
                int key_count, const char * const *key_names, int combos);
@@ -136,26 +136,26 @@ void in_probe(void);
 int  in_update(int *result);
 int  in_update_analog(int dev_id, int axis_id, int *value);
 int  in_update_keycode(int *dev_id, int *is_down, char *charcode, int timeout_ms);
-int  in_update_pico_ps2(int *result);
+int  in_update_kbd(int *result);
 int  in_menu_wait_any(char *charcode, int timeout_ms);
 int  in_menu_wait(int interesting, char *charcode, int autorep_delay_ms);
 int  in_config_parse_dev(const char *dev_name);
 int  in_config_bind_key(int dev_id, const char *key, int binds, int bind_type);
-int  in_config_bind_ps2_key(int dev_id, const char *key, int ps2_key);
+int  in_config_bind_kbd_key(int dev_id, const char *key, int kbd_key);
 int  in_get_config(int dev_id, int what, void *val);
 int  in_set_config(int dev_id, int what, const void *val, int size);
 int  in_get_key_code(int dev_id, const char *key_name);
 int  in_name_to_id(const char *dev_name);
 int  in_bind_key(int dev_id, int keycode, int mask, int bind_type, int force_unbind);
-int  in_bind_ps2_key(int dev_id, int keycode, int ps2_key);
+int  in_bind_kbd_key(int dev_id, int keycode, int kbd_key);
 void in_unbind_all(int dev_id, int act_mask, int bind_type);
 void in_clean_binds(void);
 void in_debug_dump(void);
 
 const int  *in_get_dev_binds(int dev_id);
-const int  *in_get_dev_ps2_binds(int dev_id);
+const int  *in_get_dev_kbd_binds(int dev_id);
 const int  *in_get_dev_def_binds(int dev_id);
-const int  *in_get_dev_ps2_def_binds(int dev_id);
+const int  *in_get_dev_kbd_def_binds(int dev_id);
 const char *in_get_dev_name(int dev_id, int must_be_active, int skip_pfix);
 const char *in_get_key_name(int dev_id, int keycode);
 
index fca8289..cc2fe04 100644 (file)
@@ -368,7 +368,7 @@ static int in_evdev_update(void *drv_data, const int *binds, int *result)
        return 0;
 }
 
-static int in_evdev_update_pico_ps2(void *drv_data, const int *binds, int *result)
+static int in_evdev_update_kbd(void *drv_data, const int *binds, int *result)
 {
        return in_evdev_update(drv_data, binds, result);
 }
@@ -620,7 +620,7 @@ static const in_drv_t in_evdev_drv = {
        .get_config      = in_evdev_get_config,
        .set_config      = in_evdev_set_config,
        .update          = in_evdev_update,
-       .update_pico_ps2 = in_evdev_update_pico_ps2,
+       .update_kbd      = in_evdev_update_kbd,
        .update_analog   = in_evdev_update_analog,
        .update_keycode  = in_evdev_update_keycode,
        .menu_translate  = in_evdev_menu_translate,