summaryrefslogtreecommitdiffstats
path: root/core/jni/android_view_InputEventReceiver.cpp
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2012-04-27 15:13:25 -0700
committerJeff Brown <jeffbrown@google.com>2012-04-27 15:58:42 -0700
commit771526c88f5cc4b56a41cb12aa06a28d377a07d5 (patch)
tree71c36f271192ee66f069f0d1130a73e91b8302b9 /core/jni/android_view_InputEventReceiver.cpp
parent330314c6fb7c178c0f0da65d6aa8c9e7d3004568 (diff)
downloadframeworks_base-771526c88f5cc4b56a41cb12aa06a28d377a07d5.zip
frameworks_base-771526c88f5cc4b56a41cb12aa06a28d377a07d5.tar.gz
frameworks_base-771526c88f5cc4b56a41cb12aa06a28d377a07d5.tar.bz2
Resample touch events on frame boundaries.
Bug: 6375101 Change-Id: I8774e366306bb2b6b4e42b913525bf25b0380ec3
Diffstat (limited to 'core/jni/android_view_InputEventReceiver.cpp')
-rw-r--r--core/jni/android_view_InputEventReceiver.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/core/jni/android_view_InputEventReceiver.cpp b/core/jni/android_view_InputEventReceiver.cpp
index 8f6f5f4..08e08b9 100644
--- a/core/jni/android_view_InputEventReceiver.cpp
+++ b/core/jni/android_view_InputEventReceiver.cpp
@@ -52,7 +52,7 @@ public:
status_t initialize();
status_t finishInputEvent(uint32_t seq, bool handled);
- status_t consumeEvents(JNIEnv* env, bool consumeBatches);
+ status_t consumeEvents(JNIEnv* env, bool consumeBatches, nsecs_t frameTime);
protected:
virtual ~NativeInputEventReceiver();
@@ -130,15 +130,16 @@ int NativeInputEventReceiver::handleReceiveCallback(int receiveFd, int events, v
}
JNIEnv* env = AndroidRuntime::getJNIEnv();
- status_t status = r->consumeEvents(env, false /*consumeBatches*/);
+ status_t status = r->consumeEvents(env, false /*consumeBatches*/, -1);
r->mMessageQueue->raiseAndClearException(env, "handleReceiveCallback");
return status == OK || status == NO_MEMORY ? 1 : 0;
}
-status_t NativeInputEventReceiver::consumeEvents(JNIEnv* env, bool consumeBatches) {
+status_t NativeInputEventReceiver::consumeEvents(JNIEnv* env,
+ bool consumeBatches, nsecs_t frameTime) {
#if DEBUG_DISPATCH_CYCLE
- ALOGD("channel '%s' ~ Consuming input events, consumeBatches=%s.", getInputChannelName(),
- consumeBatches ? "true" : "false");
+ ALOGD("channel '%s' ~ Consuming input events, consumeBatches=%s, frameTime=%lld.",
+ getInputChannelName(), consumeBatches ? "true" : "false", frameTime);
#endif
if (consumeBatches) {
@@ -150,7 +151,7 @@ status_t NativeInputEventReceiver::consumeEvents(JNIEnv* env, bool consumeBatche
uint32_t seq;
InputEvent* inputEvent;
status_t status = mInputConsumer.consume(&mInputEventFactory,
- consumeBatches, &seq, &inputEvent);
+ consumeBatches, frameTime, &seq, &inputEvent);
if (status) {
if (status == WOULD_BLOCK) {
if (!skipCallbacks && !mBatchedInputEventPending
@@ -270,10 +271,11 @@ static void nativeFinishInputEvent(JNIEnv* env, jclass clazz, jint receiverPtr,
}
}
-static void nativeConsumeBatchedInputEvents(JNIEnv* env, jclass clazz, jint receiverPtr) {
+static void nativeConsumeBatchedInputEvents(JNIEnv* env, jclass clazz, jint receiverPtr,
+ jlong frameTimeNanos) {
sp<NativeInputEventReceiver> receiver =
reinterpret_cast<NativeInputEventReceiver*>(receiverPtr);
- status_t status = receiver->consumeEvents(env, true /*consumeBatches*/);
+ status_t status = receiver->consumeEvents(env, true /*consumeBatches*/, frameTimeNanos);
if (status && status != DEAD_OBJECT && !env->ExceptionCheck()) {
String8 message;
message.appendFormat("Failed to consume batched input event. status=%d", status);
@@ -291,7 +293,7 @@ static JNINativeMethod gMethods[] = {
(void*)nativeDispose },
{ "nativeFinishInputEvent", "(IIZ)V",
(void*)nativeFinishInputEvent },
- { "nativeConsumeBatchedInputEvents", "(I)V",
+ { "nativeConsumeBatchedInputEvents", "(IJ)V",
(void*)nativeConsumeBatchedInputEvents },
};