summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLevent Kaya <levent.kaya@codefirst.io>2024-11-27 10:53:09 +0300
committerLevent Kaya <levent.kaya@codefirst.io>2024-11-27 10:53:09 +0300
commitaf77eae9c95c98f39395513f8d3d5a7e02583f74 (patch)
tree63173516bc59f593b2add8489d5ed419f142645d
parent3aeb273ee005eece54989922b1af4cd142142fae (diff)
[refactor] removed keyboard and rawmode related code, gonna reimplement
-rw-r--r--fbgl.h170
1 files changed, 1 insertions, 169 deletions
diff --git a/fbgl.h b/fbgl.h
index 55a8845..34fe44c 100644
--- a/fbgl.h
+++ b/fbgl.h
@@ -135,11 +135,6 @@ extern "C" {
*/
char const *fbgl_name_info(void);
char const *fbgl_version_info(void);
-void fbgl_enable_raw_mode(void);
-void fbgl_disable_raw_mode(void);
-void fbgl_cleanup(int sig);
-int fbgl_check_esc_key(void);
-void fbgl_set_signal_handlers(void);
float fbgl_get_fps(void);
/*Create and destroy methods*/
@@ -192,12 +187,7 @@ void fbgl_render_psf1_text(fbgl_t *fb, fbgl_psf1_font_t *font, const char *text,
/**
* Keyboard
*/
-int fbgl_keyboard_init(void);
-void fbgl_keyboard_clean(void);
-void fbgl_keyboard_update(void);
-bool fbgl_key_down(unsigned char key);
-bool fbgl_key_pressed(unsigned char key);
-bool fbgl_key_released(unsigned char key);
+// Will refactor
/**
* Color Utilities
@@ -245,12 +235,6 @@ int fbgl_init(const char *device, fbgl_t *fb)
return -1;
}
-#ifdef FBGL_HIDE_CURSOR
- fbgl_hide_cursor(fb->fd);
- fbgl_set_signal_handlers();
- fbgl_enable_raw_mode();
-#endif // FBGL_HIDE_CURSOR
-
fb->width = fb->vinfo.xres;
fb->height = fb->vinfo.yres;
fb->screen_size = fb->finfo.smem_len;
@@ -282,10 +266,6 @@ void fbgl_destroy(fbgl_t *fb)
close(fb->fd);
fb->fd = -1;
-
-#ifdef FBGL_HIDE_CURSOR
- fbgl_disable_raw_mode();
-#endif // FBGL_HIDE_CURSOR
}
void fbgl_set_bg(fbgl_t *fb, uint32_t color)
@@ -320,75 +300,6 @@ void fbgl_put_pixel(int x, int y, uint32_t color, fbgl_t *fb)
fb->pixels[index] = color;
}
-void fbgl_enable_raw_mode(void)
-{
- struct termios raw;
-
- if (tcgetattr(STDIN_FILENO, &orig_termios) == -1) {
- perror("tcgetattr");
- exit(EXIT_FAILURE);
- }
- raw = orig_termios;
- raw.c_lflag &= ~(ECHO | ICANON);
- if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &raw) == -1) {
- perror("tcsetattr");
- exit(EXIT_FAILURE);
- }
-}
-
-void fbgl_disable_raw_mode(void)
-{
- if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &orig_termios) == -1) {
- perror("tcsetattr");
- }
-}
-
-void fbgl_cleanup(int sig)
-{
- fbgl_disable_raw_mode();
- printf("\033[2J\033[H"); // Clear the terminal screen and move the cursor to top-left
- exit(sig);
-}
-
-int fbgl_check_esc_key(void)
-{
- char c;
- struct timeval tv = { 0, 0 }; // Timeout of 0, to poll immediately
- fd_set fds;
- FD_ZERO(&fds);
- FD_SET(STDIN_FILENO, &fds);
-
- // Check if there's input available
- if (select(STDIN_FILENO + 1, &fds, NULL, NULL, &tv) == -1) {
- perror("select");
- return 0;
- }
-
- if (FD_ISSET(STDIN_FILENO, &fds)) {
- if (read(STDIN_FILENO, &c, 1) == -1) {
- perror("read");
- return 0;
- }
- return c == 27; // ASCII value of the `Esc` key
- }
-
- return 0;
-}
-
-void fbgl_set_signal_handlers(void)
-{
- struct sigaction sa;
- sa.sa_handler = fbgl_cleanup;
- sa.sa_flags = 0;
- sigemptyset(&sa.sa_mask);
-
- if (sigaction(SIGINT, &sa, NULL) == -1 ||
- sigaction(SIGTERM, &sa, NULL) == -1) {
- perror("sigaction");
- exit(EXIT_FAILURE);
- }
-}
-
void fbgl_draw_line(fbgl_point_t x, fbgl_point_t y, uint32_t color,
fbgl_t *buffer)
{
@@ -800,85 +711,6 @@ void fbgl_render_psf1_text(fbgl_t *fb, fbgl_psf1_font_t *font, const char *text,
}
}
-int fbgl_keyboard_init(void)
-{
- if (keyboard.is_initialized) {
- return 0; // Already initialized
- }
-
- struct termios raw;
-
- if (tcgetattr(STDIN_FILENO, &orig_termios) == -1) {
- perror("tcgetattr");
- return -1;
- }
-
- raw = orig_termios;
- raw.c_lflag &= ~(ECHO | ICANON); // Disable echo and canonical mode
- raw.c_cc[VMIN] = 0; // Non-blocking read
- raw.c_cc[VTIME] = 0; // No timeout
- if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &raw) == -1) {
- perror("tcsetattr");
- return -1;
- }
-
- memset(&keyboard, 0, sizeof(fbgl_keyboard_t));
- keyboard.is_initialized = true;
- return 0;
-}
-
-void fbgl_keyboard_clean(void)
-{
- if (!keyboard.is_initialized) {
- return;
- }
-
- if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &orig_termios) == -1) {
- perror("tcsetattr");
- }
-
- keyboard.is_initialized = false;
-}
-
-void fbgl_keyboard_update(void)
-{
- if (!keyboard.is_initialized) {
- return;
- }
-
- // Copy current state to previous state
- memcpy(keyboard.prev_keys, keyboard.keys, sizeof(keyboard.keys));
-
- unsigned char c;
- while (read(STDIN_FILENO, &c, 1) > 0) {
-
- keyboard.keys[(unsigned char)c] = true;
- }
-
- // Reset keys that are not pressed
- for (int i = 0; i < FBGL_MAX_KEYS; i++) {
- if (!keyboard.keys[i]) {
- keyboard.keys[i] = false;
- }
- }
-}
-
-
-bool fbgl_key_down(unsigned char key)
-{
- return keyboard.keys[key];
-}
-
-bool fbgl_key_pressed(unsigned char key)
-{
- return keyboard.keys[key] && !keyboard.prev_keys[key];
-}
-
-bool fbgl_key_released(unsigned char key)
-{
- return !keyboard.keys[key] && keyboard.prev_keys[key];
-}
-
#endif // FBGL_IMPLEMENTATION
#ifdef __cplusplus