diff options
author | Jeff Brown <jeffbrown@google.com> | 2012-06-03 21:16:18 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-06-03 21:16:18 -0700 |
commit | f47e76e2c78e78e26110786e99548d718d177c32 (patch) | |
tree | 654c967f3332be1ee918cc4d8ab1f35451db7e13 /include | |
parent | cc822a769e752c2845dc795f05b7b35b5b3f6614 (diff) | |
parent | 9eb7d86181729c3eb769d71123c4ce9ffc868f08 (diff) | |
download | frameworks_base-f47e76e2c78e78e26110786e99548d718d177c32.zip frameworks_base-f47e76e2c78e78e26110786e99548d718d177c32.tar.gz frameworks_base-f47e76e2c78e78e26110786e99548d718d177c32.tar.bz2 |
Merge "Make velocity tracker strategy configurable." into jb-dev
Diffstat (limited to 'include')
-rw-r--r-- | include/androidfw/VelocityTracker.h | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/include/androidfw/VelocityTracker.h b/include/androidfw/VelocityTracker.h index cbb0782..1d44f13 100644 --- a/include/androidfw/VelocityTracker.h +++ b/include/androidfw/VelocityTracker.h @@ -35,7 +35,7 @@ public: }; struct Estimator { - static const size_t MAX_DEGREE = 2; + static const size_t MAX_DEGREE = 4; // Estimator time base. nsecs_t time; @@ -61,7 +61,10 @@ public: } }; - VelocityTracker(); + // Creates a velocity tracker using the specified strategy. + // If strategy is NULL, uses the default strategy for the platform. + VelocityTracker(const char* strategy = NULL); + ~VelocityTracker(); // Resets the velocity tracker state. @@ -99,10 +102,16 @@ public: inline BitSet32 getCurrentPointerIdBits() const { return mCurrentPointerIdBits; } private: + static const char* DEFAULT_STRATEGY; + nsecs_t mLastEventTime; BitSet32 mCurrentPointerIdBits; int32_t mActivePointerId; VelocityTrackerStrategy* mStrategy; + + bool configureStrategy(const char* strategy); + + static VelocityTrackerStrategy* createStrategy(const char* strategy); }; @@ -129,7 +138,8 @@ public: */ class LeastSquaresVelocityTrackerStrategy : public VelocityTrackerStrategy { public: - LeastSquaresVelocityTrackerStrategy(); + // Degree must be no greater than Estimator::MAX_DEGREE. + LeastSquaresVelocityTrackerStrategy(uint32_t degree); virtual ~LeastSquaresVelocityTrackerStrategy(); virtual void clear(); @@ -139,9 +149,6 @@ public: virtual bool getEstimator(uint32_t id, VelocityTracker::Estimator* outEstimator) const; private: - // Polynomial degree. Must be less than or equal to Estimator::MAX_DEGREE. - static const uint32_t DEGREE = 2; - // Sample horizon. // We don't use too much history by default since we want to react to quick // changes in direction. @@ -160,6 +167,7 @@ private: } }; + const uint32_t mDegree; uint32_t mIndex; Movement mMovements[HISTORY_SIZE]; }; |