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;
}
|