Use optional values in TouchInputMapper
Minor refactor to store bool + value pairs as std::optional.
Bug: 239182977
Test: atest inputflinger_tests
Change-Id: Ia4d6e9789f4e2764ad307bcb7825efc591ab74cb
diff --git a/services/inputflinger/reader/mapper/TouchInputMapper.h b/services/inputflinger/reader/mapper/TouchInputMapper.h
index 3042be6..7b8f6a1 100644
--- a/services/inputflinger/reader/mapper/TouchInputMapper.h
+++ b/services/inputflinger/reader/mapper/TouchInputMapper.h
@@ -248,12 +248,9 @@
SizeCalibration sizeCalibration;
- bool haveSizeScale;
- float sizeScale;
- bool haveSizeBias;
- float sizeBias;
- bool haveSizeIsSummed;
- bool sizeIsSummed;
+ std::optional<float> sizeScale;
+ std::optional<float> sizeBias;
+ std::optional<bool> sizeIsSummed;
// Pressure
enum class PressureCalibration {
@@ -264,8 +261,7 @@
};
PressureCalibration pressureCalibration;
- bool havePressureScale;
- float pressureScale;
+ std::optional<float> pressureScale;
// Orientation
enum class OrientationCalibration {
@@ -285,8 +281,7 @@
};
DistanceCalibration distanceCalibration;
- bool haveDistanceScale;
- float distanceScale;
+ std::optional<float> distanceScale;
enum class CoverageCalibration {
DEFAULT,
@@ -297,11 +292,11 @@
CoverageCalibration coverageCalibration;
inline void applySizeScaleAndBias(float* outSize) const {
- if (haveSizeScale) {
- *outSize *= sizeScale;
+ if (sizeScale) {
+ *outSize *= *sizeScale;
}
- if (haveSizeBias) {
- *outSize += sizeBias;
+ if (sizeBias) {
+ *outSize += *sizeBias;
}
if (*outSize < 0) {
*outSize = 0;
@@ -475,35 +470,29 @@
InputDeviceInfo::MotionRange y;
InputDeviceInfo::MotionRange pressure;
- bool haveSize;
- InputDeviceInfo::MotionRange size;
+ std::optional<InputDeviceInfo::MotionRange> size;
- bool haveTouchSize;
- InputDeviceInfo::MotionRange touchMajor;
- InputDeviceInfo::MotionRange touchMinor;
+ std::optional<InputDeviceInfo::MotionRange> touchMajor;
+ std::optional<InputDeviceInfo::MotionRange> touchMinor;
- bool haveToolSize;
- InputDeviceInfo::MotionRange toolMajor;
- InputDeviceInfo::MotionRange toolMinor;
+ std::optional<InputDeviceInfo::MotionRange> toolMajor;
+ std::optional<InputDeviceInfo::MotionRange> toolMinor;
- bool haveOrientation;
- InputDeviceInfo::MotionRange orientation;
+ std::optional<InputDeviceInfo::MotionRange> orientation;
- bool haveDistance;
- InputDeviceInfo::MotionRange distance;
+ std::optional<InputDeviceInfo::MotionRange> distance;
- bool haveTilt;
- InputDeviceInfo::MotionRange tilt;
-
- OrientedRanges() { clear(); }
+ std::optional<InputDeviceInfo::MotionRange> tilt;
void clear() {
- haveSize = false;
- haveTouchSize = false;
- haveToolSize = false;
- haveOrientation = false;
- haveDistance = false;
- haveTilt = false;
+ size = std::nullopt;
+ touchMajor = std::nullopt;
+ touchMinor = std::nullopt;
+ toolMajor = std::nullopt;
+ toolMinor = std::nullopt;
+ orientation = std::nullopt;
+ distance = std::nullopt;
+ tilt = std::nullopt;
}
} mOrientedRanges;