From 9afe683cbc645f463445e2c0d10178e644e17e95 Mon Sep 17 00:00:00 2001
From: Michal Suchanek <hramrach@gmail.com>
Date: Mon, 28 Oct 2024 16:05:24 +0100
Subject: [PATCH] keyboard-fw: Do not enable remote functions in standalone
 firmware

The functions operation on a remote system do not make sense in
standalone keyboard firmware.

Note: with this keyboard flashed with standalone firmware cannot power
on the system when installed as internal
---
 reform2-keyboard-fw/menu.c      | 12 +++++++-----
 reform2-keyboard4-fw/src/menu.c | 29 ++++++++++++++++-------------
 2 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/reform2-keyboard-fw/menu.c b/reform2-keyboard-fw/menu.c
index a17ba33a..0dfed72c 100644
--- a/reform2-keyboard-fw/menu.c
+++ b/reform2-keyboard-fw/menu.c
@@ -95,7 +95,12 @@ void jump_to_bootloader(void) {
 
 // returns 1 for navigation function (stay in meta mode), 0 for terminal function
 int execute_meta_function(int keycode) {
-  if (keycode == KEY_0) {
+  if (keycode == KEY_ESCAPE) {
+    gfx_clear();
+    gfx_flush();
+  }
+#ifndef KBD_MODE_STANDALONE
+  else if (keycode == KEY_0) {
     // TODO: are you sure?
     anim_goodbye();
     remote_turn_off_som();
@@ -126,6 +131,7 @@ int execute_meta_function(int keycode) {
     remote_get_voltages();
     return 0;
   }
+#endif
   else if (keycode == KEY_S) {
     remote_get_status();
     return 0;
@@ -156,10 +162,6 @@ int execute_meta_function(int keycode) {
   else if (keycode == KEY_ENTER) {
     return execute_menu_function(current_menu_y);
   }
-  else if (keycode == KEY_ESCAPE) {
-    gfx_clear();
-    gfx_flush();
-  }
   else if (keycode == KEY_X) {
     gfx_clear();
     gfx_poke_str(1, 1, "Entered firmware");
diff --git a/reform2-keyboard4-fw/src/menu.c b/reform2-keyboard4-fw/src/menu.c
index a8cc272a..a0b97b31 100644
--- a/reform2-keyboard4-fw/src/menu.c
+++ b/reform2-keyboard4-fw/src/menu.c
@@ -102,7 +102,13 @@ int execute_menu_row_function(int y) {
 
 // returns 1 for navigation function (stay in menu mode), 0 for terminal function
 int execute_menu_function(int keycode) {
-  if (keycode == KEY_0) {
+  if (keycode == KEY_ESC) {
+    gfx_clear();
+    gfx_flush();
+    return 0;
+  }
+#if KBD_MODE != KBD_MODE_STANDALONE
+  else if (keycode == KEY_0) {
     // TODO: are you sure?
     anim_goodbye();
     remote_turn_off_som();
@@ -119,15 +125,21 @@ int execute_menu_function(int keycode) {
     // reset the MCU
     rp2040_reset();
   }
+  else if (keycode == KEY_B) {
+    current_menu_page = MENU_PAGE_BATTERY_STATUS;
+    remote_get_voltages(0);
+    return 0;
+  }
+  else if (keycode == KEY_SPACE) {
+    remote_wake_som();
+  }
+#endif
   else if (keycode == KEY_T) {
     render_tina();
     logo_timeout_ticks = 10;
     current_menu_page = MENU_PAGE_MNT_LOGO;
     return 0;
   }
-  else if (keycode == KEY_SPACE) {
-    remote_wake_som();
-  }
   else if (keycode == KEY_H) {
     // turn-on hint page
     gfx_clear();
@@ -138,11 +150,6 @@ int execute_menu_function(int keycode) {
     current_menu_page = MENU_PAGE_MNT_LOGO;
     return 0;
   }
-  else if (keycode == KEY_B) {
-    current_menu_page = MENU_PAGE_BATTERY_STATUS;
-    remote_get_voltages(0);
-    return 0;
-  }
   else if (keycode == KEY_S) {
     remote_get_status();
     return 0;
@@ -189,10 +196,6 @@ int execute_menu_function(int keycode) {
   else if (keycode == KEY_ENTER) {
     return execute_menu_row_function(current_menu_y);
   }
-  else if (keycode == KEY_ESC) {
-    gfx_clear();
-    gfx_flush();
-  }
   else if (keycode == KEY_X) {
     gfx_clear();
     gfx_poke_cstr(1, 1, "Entered firmware");
-- 
GitLab