diff options
| author | Jeff Brown <jeffbrown@google.com> | 2010-08-18 15:51:08 -0700 |
|---|---|---|
| committer | Jeff Brown <jeffbrown@google.com> | 2010-08-18 16:58:27 -0700 |
| commit | ae9fc03bdccda709101291bbcd3beaa5b6daebfc (patch) | |
| tree | 69367f760a943f9eda3edabcb1130302ea6cb0d8 /include | |
| parent | 6b2c56a299eb05deef2b887549e29e9e9f0f2cf6 (diff) | |
| download | frameworks_base-ae9fc03bdccda709101291bbcd3beaa5b6daebfc.zip frameworks_base-ae9fc03bdccda709101291bbcd3beaa5b6daebfc.tar.gz frameworks_base-ae9fc03bdccda709101291bbcd3beaa5b6daebfc.tar.bz2 | |
Add support for throttling motion events.
Change-Id: I24b3a17753e91ecda60a60fe5cd2e6b3260e033d
Diffstat (limited to 'include')
| -rw-r--r-- | include/ui/InputDispatcher.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/ui/InputDispatcher.h b/include/ui/InputDispatcher.h index 2505cb0..aed4fa1 100644 --- a/include/ui/InputDispatcher.h +++ b/include/ui/InputDispatcher.h @@ -159,6 +159,12 @@ public: virtual int32_t waitForMotionEventTargets(MotionEvent* motionEvent, uint32_t policyFlags, int32_t injectorPid, int32_t injectorUid, Vector<InputTarget>& outTargets) = 0; + + /* Gets the maximum suggested event delivery rate per second. + * This value is used to throttle motion event movement actions on a per-device + * basis. It is not intended to be a hard limit. + */ + virtual int32_t getMaxEventsPerSecond() = 0; }; @@ -332,6 +338,8 @@ private: // Linked list of motion samples associated with this motion event. MotionSample firstSample; MotionSample* lastSample; + + uint32_t countSamples() const; }; // Tracks the progress of dispatching a particular event to a particular connection. @@ -587,6 +595,17 @@ private: Condition mInjectionSyncFinishedCondition; void decrementPendingSyncDispatchesLocked(EventEntry* entry); + // Throttling state. + struct ThrottleState { + nsecs_t minTimeBetweenEvents; + + nsecs_t lastEventTime; + int32_t lastDeviceId; + uint32_t lastSource; + + uint32_t originalSampleCount; // only collected during debugging + } mThrottleState; + // Key repeat tracking. // XXX Move this up to the input reader instead. struct KeyRepeatState { |
