summaryrefslogtreecommitdiff
path: root/include/input/VirtualInputDevice.h
diff options
context:
space:
mode:
author Biswarup Pal <biswarupp@google.com> 2023-04-05 18:20:54 +0000
committer Biswarup Pal <biswarupp@google.com> 2023-04-18 18:18:12 +0000
commite9fe2dfd709703308cd8d8d6d9926412812a5ca1 (patch)
treeab71fe5f5488a22ba76faf2cddf9bf9df13bbbfa /include/input/VirtualInputDevice.h
parentcda245feee2ceba5f5c45578273b071974c8e461 (diff)
Pass virtual input event timestamps to uinput
Test: Verify that virtual input timestamps are propagated to EventHub correctly, provided that uinput supports event timestamps Bug: 271946580 Change-Id: Ifb79654000e1040ccfb85d35dee856a24db5eb73
Diffstat (limited to 'include/input/VirtualInputDevice.h')
-rw-r--r--include/input/VirtualInputDevice.h27
1 files changed, 17 insertions, 10 deletions
diff --git a/include/input/VirtualInputDevice.h b/include/input/VirtualInputDevice.h
index 13ffb581b4..21a28770b6 100644
--- a/include/input/VirtualInputDevice.h
+++ b/include/input/VirtualInputDevice.h
@@ -34,10 +34,12 @@ public:
protected:
const android::base::unique_fd mFd;
- bool writeInputEvent(uint16_t type, uint16_t code, int32_t value);
+ bool writeInputEvent(uint16_t type, uint16_t code, int32_t value,
+ std::chrono::nanoseconds eventTime);
bool writeEvKeyEvent(int32_t androidCode, int32_t androidAction,
const std::map<int, int>& evKeyCodeMapping,
- const std::map<int, UinputAction>& actionMapping);
+ const std::map<int, UinputAction>& actionMapping,
+ std::chrono::nanoseconds eventTime);
};
class VirtualKeyboard : public VirtualInputDevice {
@@ -47,7 +49,8 @@ public:
static const std::map<int, UinputAction> KEY_ACTION_MAPPING;
VirtualKeyboard(android::base::unique_fd fd);
virtual ~VirtualKeyboard() override;
- bool writeKeyEvent(int32_t androidKeyCode, int32_t androidAction);
+ bool writeKeyEvent(int32_t androidKeyCode, int32_t androidAction,
+ std::chrono::nanoseconds eventTime);
};
class VirtualDpad : public VirtualInputDevice {
@@ -55,17 +58,20 @@ public:
static const std::map<int, int> DPAD_KEY_CODE_MAPPING;
VirtualDpad(android::base::unique_fd fd);
virtual ~VirtualDpad() override;
- bool writeDpadKeyEvent(int32_t androidKeyCode, int32_t androidAction);
+ bool writeDpadKeyEvent(int32_t androidKeyCode, int32_t androidAction,
+ std::chrono::nanoseconds eventTime);
};
class VirtualMouse : public VirtualInputDevice {
public:
VirtualMouse(android::base::unique_fd fd);
virtual ~VirtualMouse() override;
- bool writeButtonEvent(int32_t androidButtonCode, int32_t androidAction);
+ bool writeButtonEvent(int32_t androidButtonCode, int32_t androidAction,
+ std::chrono::nanoseconds eventTime);
// TODO(b/259554911): changing float parameters to int32_t.
- bool writeRelativeEvent(float relativeX, float relativeY);
- bool writeScrollEvent(float xAxisMovement, float yAxisMovement);
+ bool writeRelativeEvent(float relativeX, float relativeY, std::chrono::nanoseconds eventTime);
+ bool writeScrollEvent(float xAxisMovement, float yAxisMovement,
+ std::chrono::nanoseconds eventTime);
private:
static const std::map<int, UinputAction> BUTTON_ACTION_MAPPING;
@@ -78,7 +84,8 @@ public:
virtual ~VirtualTouchscreen() override;
// TODO(b/259554911): changing float parameters to int32_t.
bool writeTouchEvent(int32_t pointerId, int32_t toolType, int32_t action, float locationX,
- float locationY, float pressure, float majorAxisSize);
+ float locationY, float pressure, float majorAxisSize,
+ std::chrono::nanoseconds eventTime);
private:
static const std::map<int, UinputAction> TOUCH_ACTION_MAPPING;
@@ -91,7 +98,7 @@ private:
*/
std::bitset<MAX_POINTERS> mActivePointers{};
bool isValidPointerId(int32_t pointerId, UinputAction uinputAction);
- bool handleTouchDown(int32_t pointerId);
- bool handleTouchUp(int32_t pointerId);
+ bool handleTouchDown(int32_t pointerId, std::chrono::nanoseconds eventTime);
+ bool handleTouchUp(int32_t pointerId, std::chrono::nanoseconds eventTime);
};
} // namespace android