From db754dc060576e55f2f07d9e32a04d48c6cf3937 Mon Sep 17 00:00:00 2001 From: Raheman Vaiya Date: Fri, 31 Dec 2021 19:43:11 -0500 Subject: [PATCH] Update vkbd_send_key signature. --- src/vkbd.h | 4 +++- src/vkbd/stdout.c | 2 +- src/vkbd/uinput.c | 2 +- src/vkbd/usb-gadget.c | 19 ++++++------------- src/vkbd/usb-gadget.h | 4 +++- 5 files changed, 14 insertions(+), 17 deletions(-) diff --git a/src/vkbd.h b/src/vkbd.h index bb6e0f3..cdecb45 100644 --- a/src/vkbd.h +++ b/src/vkbd.h @@ -1,10 +1,12 @@ #ifndef VIRTUAL_KEYBOARD_H #define VIRTUAL_KEYBOARD_H +#include + struct vkbd; struct vkbd *vkbd_init(const char *name); -void vkbd_send(const struct vkbd *vkbd, int code, int state); +void vkbd_send(const struct vkbd *vkbd, uint16_t code, int state); void vkbd_move_mouse(const struct vkbd *vkbd, int x, int y); void free_vkbd(struct vkbd *vkbd); diff --git a/src/vkbd/stdout.c b/src/vkbd/stdout.c index 0f69bf2..969f59c 100644 --- a/src/vkbd/stdout.c +++ b/src/vkbd/stdout.c @@ -22,7 +22,7 @@ void vkbd_move_mouse(const struct vkbd *vkbd, int x, int y) printf("mouse movement: x: %d, y: %d\n", x, y); } -void vkbd_send(const struct vkbd *vkbd, int code, int state) +void vkbd_send(const struct vkbd *vkbd, uint16_t code, int state) { printf("key: %s, state: %d\n", keycode_table[code].name, state); } diff --git a/src/vkbd/uinput.c b/src/vkbd/uinput.c index b5d1c70..5f3a5e6 100644 --- a/src/vkbd/uinput.c +++ b/src/vkbd/uinput.c @@ -92,7 +92,7 @@ void vkbd_move_mouse(const struct vkbd *vkbd, int x, int y) write(vkbd->fd, &ev, sizeof(ev)); } -void vkbd_send(const struct vkbd *vkbd, int code, int state) +void vkbd_send(const struct vkbd *vkbd, uint16_t code, int state) { struct input_event ev; diff --git a/src/vkbd/usb-gadget.c b/src/vkbd/usb-gadget.c index fb4888d..9306d1a 100644 --- a/src/vkbd/usb-gadget.c +++ b/src/vkbd/usb-gadget.c @@ -33,14 +33,6 @@ static int create_virtual_keyboard(void) return fd; } -static uint16_t hid_code(uint16_t code) -{ - if (hid_table[code]) - return hid_table[code]; - - return 0; -} - static void send_hid_report(const struct vkbd *vkbd) { @@ -105,13 +97,14 @@ static int update_modifier_state(int code, int state) } -static void update_key_state(int code, int state) +static void update_key_state(uint16_t code, int state) { int i; int set = 0; + uint8_t hid_code = hide_table[code]; for (i = 0; i < 6; i++) { - if (keys[i] == code) { + if (keys[i] == hid_code) { set = 1; if (state == 0) keys[i] = 0; @@ -120,7 +113,7 @@ static void update_key_state(int code, int state) if (state && !set) { for (i = 0; i < 6; i++) { if (keys[i] == 0) { - keys[i] = code; + keys[i] = hid_code; break; } } @@ -136,10 +129,10 @@ struct vkbd *vkbd_init(const char *name) } -void vkbd_send(const struct vkbd *vkbd, int code, int state) +void vkbd_send(const struct vkbd *vkbd, uint16_t code, int state) { if (update_modifier_state(code, state) < 0) - update_key_state(hid_code(code), state); + update_key_state(code, state); send_hid_report(vkbd); } diff --git a/src/vkbd/usb-gadget.h b/src/vkbd/usb-gadget.h index 1ccb61b..f9fc298 100644 --- a/src/vkbd/usb-gadget.h +++ b/src/vkbd/usb-gadget.h @@ -162,7 +162,9 @@ static const uint16_t hid_table[] = { [KEY_F21] = 0x70, [KEY_F22] = 0x71, [KEY_F23] = 0x72, - [KEY_F24] = 0x73 + [KEY_F24] = 0x73, + + [KEY_MAX] = 0 }; #endif