Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71b16e81 authored by Jason Gerecke's avatar Jason Gerecke Committed by Michael Wright
Browse files

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
parent 489fda8d
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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) {
+1 −1
Original line number Diff line number Diff line
@@ -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;
};


+2 −1
Original line number Diff line number Diff line
@@ -174,7 +174,8 @@ public:
        return mInputDevices;
    }

    TouchAffineTransformation getTouchAffineTransformation(const String8& inputDeviceDescriptor) {
    TouchAffineTransformation getTouchAffineTransformation(const String8& inputDeviceDescriptor,
            int32_t surfaceRotation) {
        return transform;
    }