diff -Naur ./rockbox/android/Makefile ./rockbox.fixes/android/Makefile --- ./rockbox/android/Makefile 2011-01-25 14:49:31.000000000 -0600 +++ ./rockbox.fixes/android/Makefile 2011-01-25 18:26:51.000000000 -0600 @@ -1,6 +1,6 @@ ## Automatically generated. http://www.rockbox.org/ -export ROOTDIR=/home/benjamin/rockbox/rockbox +export ROOTDIR=/home/benjamin/rockbox/rockbox.fixes export FIRMDIR=$(ROOTDIR)/firmware export APPSDIR=$(ROOTDIR)/apps export TOOLSDIR=$(ROOTDIR)/tools @@ -14,15 +14,15 @@ export TARGET=-DAPPLICATION export CPU=hosted export MANUFACTURER=android -export OBJDIR=/home/benjamin/rockbox/rockbox/android -export BUILDDIR=/home/benjamin/rockbox/rockbox/android +export OBJDIR=/home/benjamin/rockbox/rockbox.fixes/android +export BUILDDIR=/home/benjamin/rockbox/rockbox.fixes/android export LANGUAGE=english export VOICELANGUAGE= export MEMORYSIZE=8 export BUILDDATE:=$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d') export MKFIRMWARE=cp -export BMP2RB_MONO=/home/benjamin/rockbox/rockbox/tools/bmp2rb -f 0 -export BMP2RB_NATIVE=/home/benjamin/rockbox/rockbox/tools/bmp2rb -f 4 +export BMP2RB_MONO=/home/benjamin/rockbox/rockbox.fixes/tools/bmp2rb -f 0 +export BMP2RB_NATIVE=/home/benjamin/rockbox/rockbox.fixes/tools/bmp2rb -f 4 export BMP2RB_REMOTEMONO= export BMP2RB_REMOTENATIVE= export BINARY=librockbox.so diff -Naur ./rockbox/android/src/org/rockbox/RockboxFramebuffer.java ./rockbox.fixes/android/src/org/rockbox/RockboxFramebuffer.java --- ./rockbox/android/src/org/rockbox/RockboxFramebuffer.java 2011-01-24 02:40:43.000000000 -0600 +++ ./rockbox.fixes/android/src/org/rockbox/RockboxFramebuffer.java 2011-01-25 18:43:45.000000000 -0600 @@ -53,6 +53,7 @@ setFocusable(true); setFocusableInTouchMode(true); setClickable(true); + requestFocus(); btm = Bitmap.createBitmap(lcd_width, lcd_height, Bitmap.Config.RGB_565); rect = new Rect(); native_buf = native_fb; diff -Naur ./rockbox/firmware/target/hosted/android/app/button-application.c ./rockbox.fixes/firmware/target/hosted/android/app/button-application.c --- ./rockbox/firmware/target/hosted/android/app/button-application.c 2011-01-24 02:41:27.000000000 -0600 +++ ./rockbox.fixes/firmware/target/hosted/android/app/button-application.c 2011-01-25 19:16:18.000000000 -0600 @@ -39,15 +39,6 @@ return BUTTON_MENU; case KEYCODE_DPAD_CENTER: return BUTTON_DPAD_CENTER; - default: - return BUTTON_NONE; - } -} - -unsigned multimedia_to_button(int keyboard_key) -{ - switch (keyboard_key) - { case KEYCODE_MEDIA_PLAY_PAUSE: return BUTTON_MULTIMEDIA_PLAYPAUSE; case KEYCODE_MEDIA_STOP: @@ -60,27 +51,19 @@ return BUTTON_MULTIMEDIA_REW; case KEYCODE_MEDIA_FAST_FORWARD: return BUTTON_MULTIMEDIA_FFWD; - default: - return 0; - } -} - -unsigned dpad_to_button(int keyboard_key) -{ - switch (keyboard_key) - { - /* These buttons only post a single release event. - * doing otherwise will cause action.c to lock up waiting for - * a release (because android sends press/unpress to us too quickly - */ case KEYCODE_DPAD_UP: - return BUTTON_DPAD_UP|BUTTON_REL; + return BUTTON_DPAD_UP; case KEYCODE_DPAD_DOWN: - return BUTTON_DPAD_DOWN|BUTTON_REL; + return BUTTON_DPAD_DOWN; case KEYCODE_DPAD_LEFT: - return BUTTON_DPAD_LEFT|BUTTON_REL; + return BUTTON_DPAD_LEFT; case KEYCODE_DPAD_RIGHT: - return BUTTON_DPAD_RIGHT|BUTTON_REL; + return BUTTON_DPAD_RIGHT; +/* Kasiar side scroll wheel */ +/* case KEYCODE_VOLUME_UP: + return BUTTON_DPAD_UP; + case KEYCODE_VOLUME_DOWN: + return BUTTON_DPAD_DOWN; */ default: return BUTTON_NONE; } diff -Naur ./rockbox/firmware/target/hosted/android/button-android.c ./rockbox.fixes/firmware/target/hosted/android/button-android.c --- ./rockbox/firmware/target/hosted/android/button-android.c 2011-01-24 02:41:27.000000000 -0600 +++ ./rockbox.fixes/firmware/target/hosted/android/button-android.c 2011-01-25 19:12:14.000000000 -0600 @@ -67,39 +67,42 @@ (void)env; (void)this; - unsigned button = 0; + unsigned button = BUTTON_NONE; - if (!state) + if (state) { - button = multimedia_to_button((int)keycode); - if (!button) - button = dpad_to_button((int)keycode); - if (button) - queue_post(&button_queue, button, 0); - } - - if (!button) - { button = key_to_button(keycode); + if (!button) + { + button = key_to_button(keycode); + } + + if (button == BUTTON_NONE) + { + return false; + } + last_btns &= (~button); + queue_post(&button_queue, button, 0); + return true; } - if (button == BUTTON_NONE) + if (!state) { - last_btns = button; - return false; + button = key_to_button(keycode); + if (!button) + { + button = key_to_button(keycode); + } + + if (button == BUTTON_NONE) + { + return false; + } + last_btns |= button; + queue_post(&button_queue, button, 0); + return true; } - if (state) - { - last_btns |= button; - } - else - { - last_btns &= (~button); - return false; - } - - return true; } void button_init_device(void)