From bc166a713d67de631db8e0862b145217a1d8d87e Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Mon, 1 Sep 2014 23:38:47 -0700 Subject: [PATCH] More bugfixes for Evdev code. Enable ROOT_BUILD since it's the root branch. --- jni/evdev_reader/evdev_reader.c | 2 +- src/com/limelight/LimelightBuildProps.java | 2 +- .../limelight/binding/input/evdev/EvdevHandler.java | 2 ++ src/com/limelight/binding/input/evdev/EvdevReader.java | 4 ++++ .../limelight/binding/input/evdev/EvdevWatcher.java | 10 ++++++++++ 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/jni/evdev_reader/evdev_reader.c b/jni/evdev_reader/evdev_reader.c index b26e62ec..df2b1352 100644 --- a/jni/evdev_reader/evdev_reader.c +++ b/jni/evdev_reader/evdev_reader.c @@ -45,7 +45,7 @@ Java_com_limelight_binding_input_evdev_EvdevReader_isMouse(JNIEnv *env, jobject } JNIEXPORT jint JNICALL -Java_com_limelight_binding_input_evdev_EvdevReader_read(JNIEnv *env, jint fd, jbyteArray buffer) { +Java_com_limelight_binding_input_evdev_EvdevReader_read(JNIEnv *env, jobject this, jint fd, jbyteArray buffer) { jint ret; jbyte *data = (*env)->GetByteArrayElements(env, buffer, NULL); if (data == NULL) { diff --git a/src/com/limelight/LimelightBuildProps.java b/src/com/limelight/LimelightBuildProps.java index c3934275..dc313dbc 100644 --- a/src/com/limelight/LimelightBuildProps.java +++ b/src/com/limelight/LimelightBuildProps.java @@ -1,5 +1,5 @@ package com.limelight; public class LimelightBuildProps { - public static final boolean ROOT_BUILD = false; + public static final boolean ROOT_BUILD = true; } diff --git a/src/com/limelight/binding/input/evdev/EvdevHandler.java b/src/com/limelight/binding/input/evdev/EvdevHandler.java index 65fde688..3e75f0cf 100644 --- a/src/com/limelight/binding/input/evdev/EvdevHandler.java +++ b/src/com/limelight/binding/input/evdev/EvdevHandler.java @@ -44,6 +44,8 @@ public class EvdevHandler { return; } + LimeLog.info("Grabbed device for raw mouse input: "+absolutePath); + ByteBuffer buffer = ByteBuffer.allocate(EvdevEvent.EVDEV_MAX_EVENT_SIZE); try { diff --git a/src/com/limelight/binding/input/evdev/EvdevReader.java b/src/com/limelight/binding/input/evdev/EvdevReader.java index 9687865b..681818cf 100644 --- a/src/com/limelight/binding/input/evdev/EvdevReader.java +++ b/src/com/limelight/binding/input/evdev/EvdevReader.java @@ -5,6 +5,10 @@ import java.nio.ByteBuffer; import com.limelight.LimeLog; public class EvdevReader { + static { + System.loadLibrary("evdev_reader"); + } + // Requires root to chmod /dev/input/eventX public static native boolean setPermissions(String fileName, int octalPermissions); diff --git a/src/com/limelight/binding/input/evdev/EvdevWatcher.java b/src/com/limelight/binding/input/evdev/EvdevWatcher.java index 3f266804..90c05d35 100644 --- a/src/com/limelight/binding/input/evdev/EvdevWatcher.java +++ b/src/com/limelight/binding/input/evdev/EvdevWatcher.java @@ -3,6 +3,8 @@ package com.limelight.binding.input.evdev; import java.io.File; import java.util.HashMap; +import com.limelight.LimeLog; + import android.os.FileObserver; public class EvdevWatcher { @@ -16,6 +18,10 @@ public class EvdevWatcher { private FileObserver observer = new FileObserver(PATH, FileObserver.CREATE | FileObserver.DELETE) { @Override public void onEvent(int event, String fileName) { + if (fileName == null) { + return; + } + if (!fileName.startsWith(REQUIRED_FILE_PREFIX)) { return; } @@ -26,6 +32,8 @@ public class EvdevWatcher { } if ((event & FileObserver.CREATE) != 0) { + LimeLog.info("Starting evdev handler for "+fileName); + EvdevHandler handler = new EvdevHandler(PATH + "/" + fileName, listener); handler.start(); @@ -33,6 +41,8 @@ public class EvdevWatcher { } if ((event & FileObserver.DELETE) != 0) { + LimeLog.info("Halting evdev handler for "+fileName); + EvdevHandler handler = handlers.get(fileName); if (handler != null) { handler.notifyDeleted();