Merge "resolved conflicts for merge of 05be6d6f to master"

This commit is contained in:
Dianne Hackborn 2011-05-10 10:59:29 -07:00 committed by Android (Google) Code Review
commit c3d5cb6980
2 changed files with 25 additions and 24 deletions

View File

@ -216,6 +216,8 @@ struct PointerCoords {
status_t setAxisValue(int32_t axis, float value);
float* editAxisValue(int32_t axis);
void scale(float scale);
#ifdef HAVE_ANDROID_OS
status_t readFromParcel(Parcel* parcel);
status_t writeToParcel(Parcel* parcel) const;

View File

@ -302,6 +302,24 @@ float* PointerCoords::editAxisValue(int32_t axis) {
return &values[index];
}
static inline void scaleAxisValue(PointerCoords& c, int axis, float scaleFactor) {
float* value = c.editAxisValue(axis);
if (value) {
*value *= scaleFactor;
}
}
void PointerCoords::scale(float scaleFactor) {
// No need to scale pressure or size since they are normalized.
// No need to scale orientation since it is meaningless to do so.
scaleAxisValue(*this, AMOTION_EVENT_AXIS_X, scaleFactor);
scaleAxisValue(*this, AMOTION_EVENT_AXIS_Y, scaleFactor);
scaleAxisValue(*this, AMOTION_EVENT_AXIS_TOUCH_MAJOR, scaleFactor);
scaleAxisValue(*this, AMOTION_EVENT_AXIS_TOUCH_MINOR, scaleFactor);
scaleAxisValue(*this, AMOTION_EVENT_AXIS_TOOL_MAJOR, scaleFactor);
scaleAxisValue(*this, AMOTION_EVENT_AXIS_TOOL_MINOR, scaleFactor);
}
#ifdef HAVE_ANDROID_OS
status_t PointerCoords::readFromParcel(Parcel* parcel) {
bits = parcel->readInt64();
@ -436,11 +454,9 @@ float MotionEvent::getAxisValue(int32_t axis, size_t pointerIndex) const {
float value = getRawPointerCoords(pointerIndex)->getAxisValue(axis);
switch (axis) {
case AMOTION_EVENT_AXIS_X:
value += mXOffset;
break;
return value + mXOffset;
case AMOTION_EVENT_AXIS_Y:
value += mYOffset;
break;
return value + mYOffset;
}
return value;
}
@ -460,11 +476,9 @@ float MotionEvent::getHistoricalAxisValue(int32_t axis, size_t pointerIndex,
float value = getHistoricalRawPointerCoords(pointerIndex, historicalIndex)->getAxisValue(axis);
switch (axis) {
case AMOTION_EVENT_AXIS_X:
value += mXOffset;
break;
return value + mXOffset;
case AMOTION_EVENT_AXIS_Y:
value += mYOffset;
break;
return value + mYOffset;
}
return value;
}
@ -484,13 +498,6 @@ void MotionEvent::offsetLocation(float xOffset, float yOffset) {
mYOffset += yOffset;
}
static inline void scaleAxisValue(PointerCoords& c, int axis, float scaleFactor) {
float* value = c.editAxisValue(axis);
if (value) {
*value *= scaleFactor;
}
}
void MotionEvent::scale(float scaleFactor) {
mXOffset *= scaleFactor;
mYOffset *= scaleFactor;
@ -499,15 +506,7 @@ void MotionEvent::scale(float scaleFactor) {
size_t numSamples = mSamplePointerCoords.size();
for (size_t i = 0; i < numSamples; i++) {
PointerCoords& c = mSamplePointerCoords.editItemAt(i);
// No need to scale pressure or size since they are normalized.
// No need to scale orientation since it is meaningless to do so.
scaleAxisValue(c, AMOTION_EVENT_AXIS_X, scaleFactor);
scaleAxisValue(c, AMOTION_EVENT_AXIS_Y, scaleFactor);
scaleAxisValue(c, AMOTION_EVENT_AXIS_TOUCH_MAJOR, scaleFactor);
scaleAxisValue(c, AMOTION_EVENT_AXIS_TOUCH_MINOR, scaleFactor);
scaleAxisValue(c, AMOTION_EVENT_AXIS_TOOL_MAJOR, scaleFactor);
scaleAxisValue(c, AMOTION_EVENT_AXIS_TOOL_MINOR, scaleFactor);
mSamplePointerCoords.editItemAt(i).scale(scaleFactor);
}
}