Support unique calibration per orientation
Updates the format of the calibration XML to store the Surface rotation that a specific calibration applies to. Also updates the API to require a rotation value for get/set, and has the native framework supply this according to the current rotation whenever it changes. Change-Id: If38563ceba27c9d8a75f9fd7928c8d7c9d187afb
This commit is contained in:
parent
489fda8d47
commit
71b16e81f9
@ -3282,6 +3282,9 @@ void TouchInputMapper::configureSurface(nsecs_t when, bool* outResetNeeded) {
|
||||
break;
|
||||
}
|
||||
|
||||
// Location
|
||||
updateAffineTransformation();
|
||||
|
||||
if (mDeviceMode == DEVICE_MODE_POINTER) {
|
||||
// Compute pointer gesture detection parameters.
|
||||
float rawDiagonal = hypotf(rawWidth, rawHeight);
|
||||
@ -3660,7 +3663,8 @@ void TouchInputMapper::dumpAffineTransformation(String8& dump) {
|
||||
}
|
||||
|
||||
void TouchInputMapper::updateAffineTransformation() {
|
||||
mAffineTransform = getPolicy()->getTouchAffineTransformation(mDevice->getDescriptor());
|
||||
mAffineTransform = getPolicy()->getTouchAffineTransformation(mDevice->getDescriptor(),
|
||||
mSurfaceOrientation);
|
||||
}
|
||||
|
||||
void TouchInputMapper::reset(nsecs_t when) {
|
||||
|
@ -316,7 +316,7 @@ public:
|
||||
|
||||
/* Gets the affine calibration associated with the specified device. */
|
||||
virtual TouchAffineTransformation getTouchAffineTransformation(
|
||||
const String8& inputDeviceDescriptor) = 0;
|
||||
const String8& inputDeviceDescriptor, int32_t surfaceRotation) = 0;
|
||||
};
|
||||
|
||||
|
||||
|
@ -174,7 +174,8 @@ public:
|
||||
return mInputDevices;
|
||||
}
|
||||
|
||||
TouchAffineTransformation getTouchAffineTransformation(const String8& inputDeviceDescriptor) {
|
||||
TouchAffineTransformation getTouchAffineTransformation(const String8& inputDeviceDescriptor,
|
||||
int32_t surfaceRotation) {
|
||||
return transform;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user