summaryrefslogtreecommitdiff
path: root/subprojects/packagefiles/glfm/android_additions.diff
blob: 81b1059313dce942266a67712de02cd93b9b6626 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
diff --git a/include/glfm.h b/include/glfm.h
index ceace39..cf7ee70 100644
--- a/include/glfm.h
+++ b/include/glfm.h
@@ -272,6 +272,8 @@ typedef enum {
     GLFMKeyCodePrintScreen       = 0x9B, ///< Print Screen or System Request key.
     GLFMKeyCodeScrollLock        = 0x9C,
     GLFMKeyCodePause             = 0x9D, ///< Pause/Break key.
+    GLFMKeyCodeVolumeUp          = 0x9E,
+    GLFMKeyCodeVolumeDown        = 0x9F,
 
     GLFMKeyCodeNumLock           = 0xA0, ///< NumLock key ("clear" on Apple platforms).
     GLFMKeyCodeNumpadDecimal     = 0xA1,
@@ -890,7 +892,7 @@ ANativeActivity *glfmAndroidGetActivity(void) GLFM_DEPRECATED("Use glfmGetAndroi
 /// The returned `ANativeActivity` may be invalidated when the surface is destroyed. If a reference to the
 /// `ANativeActivity` is kept, call this function again to get an updated reference in ``GLFMSurfaceCreatedFunc`` or
 /// ``GLFMAppFocusFunc``.
-void *glfmGetAndroidActivity(const GLFMDisplay *display);
+void *glfmGetAndroidActivity(const GLFMDisplay *display, void **jni);
 
 #endif // GLFM_EXPOSE_NATIVE_ANDROID
 
diff --git a/src/glfm_android.c b/src/glfm_android.c
index 12f3c63..6f77d0a 100644
--- a/src/glfm_android.c
+++ b/src/glfm_android.c
@@ -1117,6 +1117,8 @@ static bool glfm__onKeyEvent(GLFMPlatformData *platformData, AInputEvent *event)
                 [AKEYCODE_DPAD_RIGHT]      = GLFMKeyCodeArrowRight,
 
                 [AKEYCODE_POWER]           = GLFMKeyCodePower,
+                [AKEYCODE_VOLUME_UP]       = GLFMKeyCodeVolumeUp,
+                [AKEYCODE_VOLUME_DOWN]     = GLFMKeyCodeVolumeDown,
 
                 [AKEYCODE_A]               = GLFMKeyCodeA,
                 [AKEYCODE_B]               = GLFMKeyCodeB,
@@ -1215,6 +1217,9 @@ static bool glfm__onKeyEvent(GLFMPlatformData *platformData, AInputEvent *event)
                 [AKEYCODE_NUMPAD_DOT]      = GLFMKeyCodeNumpadDecimal,
                 [AKEYCODE_NUMPAD_ENTER]    = GLFMKeyCodeNumpadEnter,
                 [AKEYCODE_NUMPAD_EQUALS]   = GLFMKeyCodeNumpadEqual,
+
+                [AKEYCODE_DPAD_CENTER]      = GLFMKeyCodeMediaSelect,
+                [AKEYCODE_MEDIA_PLAY_PAUSE] = GLFMKeyCodeMediaPlayPause
         };
 
         GLFMKeyCode keyCode = GLFMKeyCodeUnknown;
@@ -2794,11 +2799,12 @@ ANativeActivity *glfmAndroidGetActivity(void) {
     return platformDataGlobal->activity;
 }
 
-void *glfmGetAndroidActivity(const GLFMDisplay *display) {
+void *glfmGetAndroidActivity(const GLFMDisplay *display, void **jni) {
     if (!display || !display->platformData) {
         return NULL;
     }
     GLFMPlatformData *platformData = display->platformData;
+    *jni = platformData->jniEnv;
     return platformData->activity;
 }