From 49f1ec8e8ad0b4c06df01fcdd4b18037fbe3ebcc Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Sun, 31 Oct 2010 15:32:57 +0000 Subject: Add support multimedia keys/buttons to the core, and adapt Rockbox on android for it (multimedia buttons are found on wired headsets and the lock screen in cyanogenmod). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28421 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/hosted/android/button-android.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'firmware/target/hosted/android/button-android.c') diff --git a/firmware/target/hosted/android/button-android.c b/firmware/target/hosted/android/button-android.c index c072e3e38b..9bf15c25a2 100644 --- a/firmware/target/hosted/android/button-android.c +++ b/firmware/target/hosted/android/button-android.c @@ -28,7 +28,7 @@ #include "kernel.h" #include "system.h" #include "touchscreen.h" - +#include "debug.h" static int last_y, last_x; static int last_btns; static long last_button_tick; @@ -44,7 +44,7 @@ static enum { * began or stopped the touch action + where (pixel coordinates) */ JNIEXPORT void JNICALL Java_org_rockbox_RockboxFramebuffer_touchHandler(JNIEnv*env, jobject this, - bool down, int x, int y) + jboolean down, jint x, jint y) { (void)env; (void)this; @@ -63,12 +63,23 @@ Java_org_rockbox_RockboxFramebuffer_touchHandler(JNIEnv*env, jobject this, * generated by pressing/releasing them to a variable */ JNIEXPORT bool JNICALL Java_org_rockbox_RockboxFramebuffer_buttonHandler(JNIEnv*env, jobject this, - int keycode, bool state) + jint keycode, jboolean state) { (void)env; (void)this; - int button = key_to_button(keycode); + unsigned button = 0; + + if (!state) + button = multimedia_to_button((int)keycode); + + if (button) + { /* multimeida buttons are handled differently */ + queue_post(&button_queue, button, 0); + return true; + } + + button = key_to_button(keycode); if (button == BUTTON_NONE) return false; -- cgit v1.2.3