From 7602ce3b97c893359406655afa515a616084655e Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Tue, 29 Apr 2025 12:17:32 -0400 Subject: input manager --- kernel/include/comus/drivers/ps2.h | 22 ---------------------- kernel/include/comus/input.h | 36 ++++++++++++++++++++++++++++++++++++ kernel/include/comus/keycodes.h | 5 ----- kernel/include/comus/limits.h | 4 ++++ 4 files changed, 40 insertions(+), 27 deletions(-) create mode 100644 kernel/include/comus/input.h (limited to 'kernel/include') diff --git a/kernel/include/comus/drivers/ps2.h b/kernel/include/comus/drivers/ps2.h index 6e594e9..7634e5f 100644 --- a/kernel/include/comus/drivers/ps2.h +++ b/kernel/include/comus/drivers/ps2.h @@ -9,18 +9,6 @@ #ifndef PS2_H_ #define PS2_H_ -#include -#include - -struct mouse_event { - bool updated; - bool lmb; - bool rmb; - bool mmb; - int relx; - int rely; -}; - /** * Initalize the ps2 controller */ @@ -31,19 +19,9 @@ int ps2_init(void); */ void ps2kb_recv(void); -/** - * Return last read keycode - */ -struct keycode ps2kb_get(void); - /** * Recieve input from ps2 mouse during interrupt */ void ps2mouse_recv(void); -/** - * Return last read mouse event - */ -struct mouse_event ps2mouse_get(void); - #endif /* ps2.h */ diff --git a/kernel/include/comus/input.h b/kernel/include/comus/input.h new file mode 100644 index 0000000..b2b3053 --- /dev/null +++ b/kernel/include/comus/input.h @@ -0,0 +1,36 @@ +/** + * @file input.h + */ + +#ifndef INPUT_H_ +#define INPUT_H_ + +#include +#include +#include +#include + +struct keycode { + char key; + char flags; +}; + +struct mouse_event { + bool updated; + bool lmb; + bool rmb; + bool mmb; + int relx; + int rely; +}; + +void keycode_push(struct keycode *ev); +int keycode_pop(struct keycode *ev); +size_t keycode_len(void); +char keycode_to_char(struct keycode *ev); + +void mouse_event_push(struct mouse_event *ev); +int mouse_event_pop(struct mouse_event *ev); +size_t mouse_event_len(void); + +#endif /* input.h */ diff --git a/kernel/include/comus/keycodes.h b/kernel/include/comus/keycodes.h index 8930937..ebf296a 100644 --- a/kernel/include/comus/keycodes.h +++ b/kernel/include/comus/keycodes.h @@ -9,11 +9,6 @@ #ifndef KEYCODES_H_ #define KEYCODES_H_ -struct keycode { - char key; - char flags; -}; - #define KC_FLAG_KEY_DOWN 0x01 #define KC_FLAG_KEY_UP 0x02 #define KC_FLAG_ERROR 0x04 diff --git a/kernel/include/comus/limits.h b/kernel/include/comus/limits.h index cadfc93..732873e 100644 --- a/kernel/include/comus/limits.h +++ b/kernel/include/comus/limits.h @@ -25,6 +25,10 @@ /// elf limits #define N_ELF_SEGMENTS 16 +/// input buffer +#define N_KEYCODE 64 +#define N_MOUSEEV 64 + /// length of terminal buffer #define TERM_MAX_WIDTH 1920 #define TERM_MAX_HEIGHT 1080 -- cgit v1.2.3-freya