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

Commit 6b337e74 authored by Jeff Brown's avatar Jeff Brown
Browse files

Improve input device calibration format.

Added support for calibrating touch size for devices that report
size as an area measurement rather than as a width.
Fixed some bugs.

Bug: 3096045
Change-Id: I30a12e73752883516ed054f8af407204bca45814
parent 43233b1a
Loading
Loading
Loading
Loading
+31 −24
Original line number Diff line number Diff line
@@ -571,31 +571,36 @@ protected:

    // Immutable calibration parameters in parsed form.
    struct Calibration {
        // Touch Area
        enum TouchAreaCalibration {
            TOUCH_AREA_CALIBRATION_DEFAULT,
            TOUCH_AREA_CALIBRATION_NONE,
            TOUCH_AREA_CALIBRATION_GEOMETRIC,
            TOUCH_AREA_CALIBRATION_PRESSURE,
        // Touch Size
        enum TouchSizeCalibration {
            TOUCH_SIZE_CALIBRATION_DEFAULT,
            TOUCH_SIZE_CALIBRATION_NONE,
            TOUCH_SIZE_CALIBRATION_GEOMETRIC,
            TOUCH_SIZE_CALIBRATION_PRESSURE,
        };

        TouchAreaCalibration touchAreaCalibration;
        TouchSizeCalibration touchSizeCalibration;

        // Tool Area
        enum ToolAreaCalibration {
            TOOL_AREA_CALIBRATION_DEFAULT,
            TOOL_AREA_CALIBRATION_NONE,
            TOOL_AREA_CALIBRATION_GEOMETRIC,
            TOOL_AREA_CALIBRATION_LINEAR,
        // Tool Size
        enum ToolSizeCalibration {
            TOOL_SIZE_CALIBRATION_DEFAULT,
            TOOL_SIZE_CALIBRATION_NONE,
            TOOL_SIZE_CALIBRATION_GEOMETRIC,
            TOOL_SIZE_CALIBRATION_LINEAR,
            TOOL_SIZE_CALIBRATION_AREA,
        };

        ToolAreaCalibration toolAreaCalibration;
        bool haveToolAreaLinearScale;
        float toolAreaLinearScale;
        bool haveToolAreaLinearBias;
        float toolAreaLinearBias;
        bool haveToolAreaIsSummed;
        int32_t toolAreaIsSummed;
        ToolSizeCalibration toolSizeCalibration;
        bool haveToolSizeLinearScale;
        float toolSizeLinearScale;
        bool haveToolSizeLinearBias;
        float toolSizeLinearBias;
        bool haveToolSizeAreaScale;
        float toolSizeAreaScale;
        bool haveToolSizeAreaBias;
        float toolSizeAreaBias;
        bool haveToolSizeIsSummed;
        int32_t toolSizeIsSummed;

        // Pressure
        enum PressureCalibration {
@@ -671,8 +676,10 @@ protected:

        float geometricScale;

        float toolAreaLinearScale;
        float toolAreaLinearBias;
        float toolSizeLinearScale;
        float toolSizeLinearBias;
        float toolSizeAreaScale;
        float toolSizeAreaBias;

        float pressureScale;

@@ -691,11 +698,11 @@ protected:
            bool haveSize;
            InputDeviceInfo::MotionRange size;

            bool haveTouchArea;
            bool haveTouchSize;
            InputDeviceInfo::MotionRange touchMajor;
            InputDeviceInfo::MotionRange touchMinor;

            bool haveToolArea;
            bool haveToolSize;
            InputDeviceInfo::MotionRange toolMajor;
            InputDeviceInfo::MotionRange toolMinor;

+176 −111

File changed.

Preview size limit exceeded, changes collapsed.