2025-05-28 14:41:02 -05:00
|
|
|
#ifndef _PS2_KEYBOARD_H
|
|
|
|
|
#define _PS2_KEYBOARD_H
|
|
|
|
|
|
|
|
|
|
#include <types.h>
|
2025-10-20 21:57:30 -05:00
|
|
|
#include <drivers/irq.h>
|
2025-05-28 14:41:02 -05:00
|
|
|
|
2025-07-03 20:30:21 -05:00
|
|
|
typedef enum {
|
|
|
|
|
KEY_NONE = 0,
|
2025-10-20 21:57:30 -05:00
|
|
|
KEY_ARROW_UP = 0xFC,
|
2025-07-03 20:30:21 -05:00
|
|
|
KEY_ARROW_DOWN,
|
|
|
|
|
KEY_ARROW_LEFT,
|
|
|
|
|
KEY_ARROW_RIGHT,
|
|
|
|
|
/* Note: add more special keys here */
|
|
|
|
|
} special_key;
|
|
|
|
|
|
2025-10-20 21:57:30 -05:00
|
|
|
typedef enum {
|
|
|
|
|
KEY_UP = 0x1E,
|
|
|
|
|
KEY_DOWN = 0x1F,
|
|
|
|
|
KEY_RIGHT = 0x1C,
|
|
|
|
|
KEY_LEFT = 0x1D,
|
|
|
|
|
} lower_key;
|
|
|
|
|
|
|
|
|
|
typedef void (*ps2_hook_t)(char);
|
|
|
|
|
|
2025-05-28 14:41:02 -05:00
|
|
|
void keyboard_init(void);
|
2025-06-13 19:53:54 -05:00
|
|
|
void keyboard_handler(void);
|
2025-05-28 14:41:02 -05:00
|
|
|
|
2025-06-17 15:50:07 -05:00
|
|
|
char get_char(void);
|
2025-07-03 20:30:21 -05:00
|
|
|
uint16_t get_key(void);
|
2025-06-17 15:50:07 -05:00
|
|
|
char* get_string(void);
|
|
|
|
|
|
2025-10-20 21:57:30 -05:00
|
|
|
char* kbd_gets(void);
|
|
|
|
|
|
|
|
|
|
bool setup_hook(ps2_hook_t func);
|
|
|
|
|
bool remove_hook(ps2_hook_t func);
|
|
|
|
|
|
2025-05-28 14:41:02 -05:00
|
|
|
#endif
|