SDL: Add SDL_SCANCODE_CALL and SDL_SCANCODE_ENDCALL

From 2f924020e8a9b7c46c820a1bbb55a05a66711062 Mon Sep 17 00:00:00 2001
From: Cameron Cawley <[EMAIL REDACTED]>
Date: Thu, 5 May 2022 20:12:07 +0100
Subject: [PATCH] Add SDL_SCANCODE_CALL and SDL_SCANCODE_ENDCALL

---
 include/SDL_keycode.h                   | 4 +++-
 include/SDL_scancode.h                  | 2 ++
 src/events/SDL_keyboard.c               | 4 ++++
 src/video/android/SDL_androidkeyboard.c | 4 ++--
 src/video/ngage/SDL_ngageevents.cpp     | 4 ++--
 5 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/include/SDL_keycode.h b/include/SDL_keycode.h
index 5e8edcb9f31..65420f29fdc 100644
--- a/include/SDL_keycode.h
+++ b/include/SDL_keycode.h
@@ -321,7 +321,9 @@ typedef enum
     SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD),
 
     SDLK_SOFTLEFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTLEFT),
-    SDLK_SOFTRIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTRIGHT)
+    SDLK_SOFTRIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTRIGHT),
+    SDLK_CALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALL),
+    SDLK_ENDCALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ENDCALL)
 } SDL_KeyCode;
 
 /**
diff --git a/include/SDL_scancode.h b/include/SDL_scancode.h
index f203e30e177..aaa782f8da0 100644
--- a/include/SDL_scancode.h
+++ b/include/SDL_scancode.h
@@ -417,6 +417,8 @@ typedef enum
                                        used as a multi-function feature key for selecting
                                        a software defined function shown on the bottom right
                                        of the display. */
+    SDL_SCANCODE_CALL = 289, /**< Used for accepting phone calls. */
+    SDL_SCANCODE_ENDCALL = 290, /**< Used for rejecting phone calls. */
 
     /* @} *//* Mobile keys */
 
diff --git a/src/events/SDL_keyboard.c b/src/events/SDL_keyboard.c
index 100e6aaefe7..be1b7953e30 100644
--- a/src/events/SDL_keyboard.c
+++ b/src/events/SDL_keyboard.c
@@ -284,6 +284,8 @@ static const SDL_Keycode SDL_default_keymap[SDL_NUM_SCANCODES] = {
     SDLK_AUDIOFASTFORWARD,
     SDLK_SOFTLEFT,
     SDLK_SOFTRIGHT,
+    SDLK_CALL,
+    SDLK_ENDCALL,
 };
 
 static const char *SDL_scancode_names[SDL_NUM_SCANCODES] = {
@@ -522,6 +524,8 @@ static const char *SDL_scancode_names[SDL_NUM_SCANCODES] = {
     "AudioFastForward",
     "SoftLeft",
     "SoftRight",
+    "Call",
+    "EndCall",
 };
 
 /* Taken from SDL_iconv() */
diff --git a/src/video/android/SDL_androidkeyboard.c b/src/video/android/SDL_androidkeyboard.c
index ce79883c67a..9bb02552197 100644
--- a/src/video/android/SDL_androidkeyboard.c
+++ b/src/video/android/SDL_androidkeyboard.c
@@ -45,8 +45,8 @@ static SDL_Scancode Android_Keycodes[] = {
     SDL_SCANCODE_SOFTRIGHT, /* AKEYCODE_SOFT_RIGHT */
     SDL_SCANCODE_AC_HOME, /* AKEYCODE_HOME */
     SDL_SCANCODE_AC_BACK, /* AKEYCODE_BACK */
-    SDL_SCANCODE_UNKNOWN, /* AKEYCODE_CALL */
-    SDL_SCANCODE_UNKNOWN, /* AKEYCODE_ENDCALL */
+    SDL_SCANCODE_CALL, /* AKEYCODE_CALL */
+    SDL_SCANCODE_ENDCALL, /* AKEYCODE_ENDCALL */
     SDL_SCANCODE_0, /* AKEYCODE_0 */
     SDL_SCANCODE_1, /* AKEYCODE_1 */
     SDL_SCANCODE_2, /* AKEYCODE_2 */
diff --git a/src/video/ngage/SDL_ngageevents.cpp b/src/video/ngage/SDL_ngageevents.cpp
index 49093541568..659548ad298 100644
--- a/src/video/ngage/SDL_ngageevents.cpp
+++ b/src/video/ngage/SDL_ngageevents.cpp
@@ -122,10 +122,10 @@ static SDL_Scancode ConvertScancode(_THIS, int key)
             keycode = SDLK_SOFTRIGHT;
             break;
         case EStdKeyApplication0: // Green softkey
-            keycode = SDLK_F3;
+            keycode = SDLK_CALL;
             break;
         case EStdKeyApplication1: // Red softkey
-            keycode = SDLK_F4;
+            keycode = SDLK_ENDCALL;
             break;
         case EStdKeyDevice3:      // Middle softkey
             keycode = SDLK_RETURN;