am 86ea1f5f: Initial checkin of spot presentation for touchpad gestures. (DO NOT MERGE)

* commit '86ea1f5f521981d075aef56f11693e4f3bc32fdb':
  Initial checkin of spot presentation for touchpad gestures. (DO NOT MERGE)
This commit is contained in:
Jeff Brown 2011-05-25 14:43:34 -07:00 committed by Android Git Automerger
commit 01fdb1bb41
3 changed files with 16 additions and 1 deletions

View File

@ -608,6 +608,11 @@ private:
// Oldest sample to consider when calculating the velocity.
static const nsecs_t MAX_AGE = 200 * 1000000; // 200 ms
// When the total duration of the window of samples being averaged is less
// than the window size, the resulting velocity is scaled to reduce the impact
// of overestimation in short traces.
static const nsecs_t MIN_WINDOW = 100 * 1000000; // 100 ms
// The minimum duration between samples when estimating velocity.
static const nsecs_t MIN_DURATION = 10 * 1000000; // 10 ms

View File

@ -831,6 +831,7 @@ bool VelocityTracker::getVelocity(uint32_t id, float* outVx, float* outVy) const
const Position& oldestPosition =
oldestMovement.positions[oldestMovement.idBits.getIndexOfBit(id)];
nsecs_t lastDuration = 0;
while (numTouches-- > 1) {
if (++index == HISTORY_SIZE) {
index = 0;
@ -857,6 +858,14 @@ bool VelocityTracker::getVelocity(uint32_t id, float* outVx, float* outVy) const
// Make sure we used at least one sample.
if (samplesUsed != 0) {
// Scale the velocity linearly if the window of samples is small.
nsecs_t totalDuration = newestMovement.eventTime - oldestMovement.eventTime;
if (totalDuration < MIN_WINDOW) {
float scale = float(totalDuration) / float(MIN_WINDOW);
accumVx *= scale;
accumVy *= scale;
}
*outVx = accumVx;
*outVy = accumVy;
return true;

View File

@ -662,7 +662,8 @@ void Looper::wakeAndLock() {
#endif
void Looper::sendMessage(const sp<MessageHandler>& handler, const Message& message) {
sendMessageAtTime(LLONG_MIN, handler, message);
nsecs_t now = systemTime(SYSTEM_TIME_MONOTONIC);
sendMessageAtTime(now, handler, message);
}
void Looper::sendMessageDelayed(nsecs_t uptimeDelay, const sp<MessageHandler>& handler,