diff options
author | Freya Murphy <freya@freyacat.org> | 2025-04-29 12:17:32 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2025-04-29 12:17:32 -0400 |
commit | 7602ce3b97c893359406655afa515a616084655e (patch) | |
tree | 780b17c226f9e110d20c26f920dea6f162bdb4ee /kernel/include | |
parent | change queue structures (diff) | |
download | comus-7602ce3b97c893359406655afa515a616084655e.tar.gz comus-7602ce3b97c893359406655afa515a616084655e.tar.bz2 comus-7602ce3b97c893359406655afa515a616084655e.zip |
input manager
Diffstat (limited to 'kernel/include')
-rw-r--r-- | kernel/include/comus/drivers/ps2.h | 22 | ||||
-rw-r--r-- | kernel/include/comus/input.h | 36 | ||||
-rw-r--r-- | kernel/include/comus/keycodes.h | 5 | ||||
-rw-r--r-- | kernel/include/comus/limits.h | 4 |
4 files changed, 40 insertions, 27 deletions
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 <comus/keycodes.h> -#include <stdbool.h> - -struct mouse_event { - bool updated; - bool lmb; - bool rmb; - bool mmb; - int relx; - int rely; -}; - /** * Initalize the ps2 controller */ @@ -32,18 +20,8 @@ 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 <comus/keycodes.h> +#include <comus/limits.h> +#include <stdbool.h> +#include <stddef.h> + +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 |