From bb71b089e6ba614551e745a8a1b6f2e1549697cf Mon Sep 17 00:00:00 2001 From: Eren Terzioglu Date: Mon, 7 Jul 2025 16:06:50 +0200 Subject: [PATCH 1/2] games/snake: Fix terminal issue after returning back from snake game Fix terminal issue after returning back from game Signed-off-by: Eren Terzioglu --- games/snake/snake_input_console.h | 21 +++++++++++++++++++++ games/snake/snake_input_gpio.h | 19 +++++++++++++++++++ games/snake/snake_main.c | 1 + 3 files changed, 41 insertions(+) diff --git a/games/snake/snake_input_console.h b/games/snake/snake_input_console.h index 468989d2a3c..9f6f2bbea53 100644 --- a/games/snake/snake_input_console.h +++ b/games/snake/snake_input_console.h @@ -147,6 +147,27 @@ int dev_input_init(FAR struct input_state_s *dev) return OK; } +/**************************************************************************** + * Name: dev_input_deinit + * + * Description: + * Deinitialize input method. + * + * Parameters: + * None + * + * Returned Value: + * Zero (OK) + * + ****************************************************************************/ + +int dev_input_deinit(void) +{ + reset_termios(); + + return OK; +} + /**************************************************************************** * Name: dev_read_input * diff --git a/games/snake/snake_input_gpio.h b/games/snake/snake_input_gpio.h index cb2e7329cda..2a487d331c8 100644 --- a/games/snake/snake_input_gpio.h +++ b/games/snake/snake_input_gpio.h @@ -116,6 +116,25 @@ int dev_input_init(FAR struct input_state_s *dev) return OK; } +/**************************************************************************** + * Name: dev_input_deinit + * + * Description: + * Deinitialize input method. + * + * Parameters: + * None + * + * Returned Value: + * Zero (OK) + * + ****************************************************************************/ + +int dev_input_deinit(void) +{ + return OK; +} + /**************************************************************************** * Name: dev_read_input * diff --git a/games/snake/snake_main.c b/games/snake/snake_main.c index 464ef6d9fd9..a49357c7cf2 100644 --- a/games/snake/snake_main.c +++ b/games/snake/snake_main.c @@ -737,5 +737,6 @@ int main(int argc, FAR char *argv[]) goto restart; } + dev_input_deinit(); return 0; } From 6a988dfcfadd0de2259971644f2d0beb5449a9cf Mon Sep 17 00:00:00 2001 From: Eren Terzioglu Date: Fri, 11 Jul 2025 14:45:02 +0200 Subject: [PATCH 2/2] games/snake: Change consolekey magic numbers with ASCII macros Change consolekey magic numbers with ascii values to make it more understandable Signed-off-by: Eren Terzioglu --- games/snake/snake_input_console.h | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/games/snake/snake_input_console.h b/games/snake/snake_input_console.h index 9f6f2bbea53..03254f5d5cc 100644 --- a/games/snake/snake_input_console.h +++ b/games/snake/snake_input_console.h @@ -25,6 +25,7 @@ ****************************************************************************/ #include +#include #include #include "snake_inputs.h" @@ -188,24 +189,24 @@ int dev_read_input(FAR struct input_state_s *dev) /* Arrows keys return three bytes: 27 91 [65-68] */ - if ((ch = getch()) == 27) + if ((ch = getch()) == ASCII_ESC) { - if ((ch = getch()) == 91) + if ((ch = getch()) == ASCII_LBRACKET) { ch = getch(); - if (ch == 65) + if (ch == ASCII_A) { dev->dir = DIR_UP; } - else if (ch == 66) + else if (ch == ASCII_B) { dev->dir = DIR_DOWN; } - else if (ch == 67) + else if (ch == ASCII_C) { dev->dir = DIR_RIGHT; } - else if (ch == 68) + else if (ch == ASCII_D) { dev->dir = DIR_LEFT; }