diff --git a/include/ui/InputReader.h b/include/ui/InputReader.h index f1622316f..71c6c5176 100644 --- a/include/ui/InputReader.h +++ b/include/ui/InputReader.h @@ -454,6 +454,8 @@ public: virtual void reset(); virtual void process(const RawEvent* rawEvent); + virtual int32_t getScanCodeState(uint32_t sourceMask, int32_t scanCode); + private: // Amount that trackball needs to move in order to generate a key event. static const int32_t TRACKBALL_MOVEMENT_THRESHOLD = 6; diff --git a/libs/ui/InputReader.cpp b/libs/ui/InputReader.cpp index 661870212..5f5a4ac4e 100644 --- a/libs/ui/InputReader.cpp +++ b/libs/ui/InputReader.cpp @@ -1080,6 +1080,14 @@ void TrackballInputMapper::applyPolicyAndDispatch(nsecs_t when, int32_t motionEv 1, & pointerId, pointerCoords, mXPrecision, mYPrecision, downTime); } +int32_t TrackballInputMapper::getScanCodeState(uint32_t sourceMask, int32_t scanCode) { + if (scanCode >= BTN_MOUSE && scanCode < BTN_JOYSTICK) { + return getEventHub()->getScanCodeState(getDeviceId(), scanCode); + } else { + return AKEY_STATE_UNKNOWN; + } +} + // --- TouchInputMapper ---