summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPrashant Malani <pmalani@google.com>2016-01-13 05:33:57 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-01-13 05:33:57 +0000
commita777e8b70fce35e97dd8812df8b0b5eca17db550 (patch)
tree4f68300b68846472ff62b9c2ffc417323d863e86
parent03d61d95fa6a321bf26548b320a1a9c8dc78e124 (diff)
parentee03865fe5fc6ffe9deda0e0870a18206027cfaf (diff)
downloadframeworks_native-a777e8b70fce35e97dd8812df8b0b5eca17db550.zip
frameworks_native-a777e8b70fce35e97dd8812df8b0b5eca17db550.tar.gz
frameworks_native-a777e8b70fce35e97dd8812df8b0b5eca17db550.tar.bz2
inputflinger: Add support for scaling and true value reporting
am: ee03865fe5 * commit 'ee03865fe5fc6ffe9deda0e0870a18206027cfaf': inputflinger: Add support for scaling and true value reporting
-rw-r--r--services/inputflinger/InputReader.cpp15
-rw-r--r--services/inputflinger/InputReader.h1
2 files changed, 14 insertions, 2 deletions
diff --git a/services/inputflinger/InputReader.cpp b/services/inputflinger/InputReader.cpp
index 3ba38b5..8063a75 100644
--- a/services/inputflinger/InputReader.cpp
+++ b/services/inputflinger/InputReader.cpp
@@ -2751,7 +2751,18 @@ void RotaryEncoderInputMapper::populateDeviceInfo(InputDeviceInfo* info) {
InputMapper::populateDeviceInfo(info);
if (mRotaryEncoderScrollAccumulator.haveRelativeVWheel()) {
- info->addMotionRange(AMOTION_EVENT_AXIS_SCROLL, mSource, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f);
+ float res = 0.0f;
+ if (!mDevice->getConfiguration().tryGetProperty(String8("device.res"), res)) {
+ ALOGW("Rotary Encoder device configuration file didn't specify resolution!\n");
+ }
+ if (!mDevice->getConfiguration().tryGetProperty(String8("device.scalingFactor"),
+ mScalingFactor)) {
+ ALOGW("Rotary Encoder device configuration file didn't specify scaling factor,"
+ "default to 1.0!\n");
+ mScalingFactor = 1.0f;
+ }
+ info->addMotionRange(AMOTION_EVENT_AXIS_SCROLL, mSource, -1.0f, 1.0f, 0.0f, 0.0f,
+ res * mScalingFactor);
}
}
@@ -2807,7 +2818,7 @@ void RotaryEncoderInputMapper::sync(nsecs_t when) {
// Send motion event.
if (scrolled) {
int32_t metaState = mContext->getGlobalMetaState();
- pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_SCROLL, scroll);
+ pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_SCROLL, scroll * mScalingFactor);
NotifyMotionArgs scrollArgs(when, getDeviceId(), mSource, policyFlags,
AMOTION_EVENT_ACTION_SCROLL, 0, 0, metaState, 0,
diff --git a/services/inputflinger/InputReader.h b/services/inputflinger/InputReader.h
index 3e931fe..46d45d8 100644
--- a/services/inputflinger/InputReader.h
+++ b/services/inputflinger/InputReader.h
@@ -1247,6 +1247,7 @@ private:
CursorScrollAccumulator mRotaryEncoderScrollAccumulator;
int32_t mSource;
+ float mScalingFactor;
void sync(nsecs_t when);
};