diff options
author | Prashant Malani <pmalani@google.com> | 2016-01-13 05:33:57 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-01-13 05:33:57 +0000 |
commit | a777e8b70fce35e97dd8812df8b0b5eca17db550 (patch) | |
tree | 4f68300b68846472ff62b9c2ffc417323d863e86 /services | |
parent | 03d61d95fa6a321bf26548b320a1a9c8dc78e124 (diff) | |
parent | ee03865fe5fc6ffe9deda0e0870a18206027cfaf (diff) | |
download | frameworks_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
Diffstat (limited to 'services')
-rw-r--r-- | services/inputflinger/InputReader.cpp | 15 | ||||
-rw-r--r-- | services/inputflinger/InputReader.h | 1 |
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); }; |