diff options
| author | 2023-05-11 08:16:22 +0000 | |
|---|---|---|
| committer | 2023-05-11 08:16:22 +0000 | |
| commit | d047bdb2524d309c7ef0ed2e142dcb0fe136cbe5 (patch) | |
| tree | 05258ea4f650b701ea83e5c13021aa988696651b | |
| parent | 315eb8c9ae6726a7cec5a650b8be77cf0ee910e6 (diff) | |
| parent | 61dd33e220cb88bcd76aaf7be92ce8e4f06b3468 (diff) | |
Merge "InputMapper refactor: SensorInputMapper" into udc-dev
| -rw-r--r-- | services/inputflinger/reader/InputDevice.cpp | 2 | ||||
| -rw-r--r-- | services/inputflinger/reader/mapper/SensorInputMapper.h | 9 | ||||
| -rw-r--r-- | services/inputflinger/tests/InputReader_test.cpp | 6 |
3 files changed, 11 insertions, 6 deletions
diff --git a/services/inputflinger/reader/InputDevice.cpp b/services/inputflinger/reader/InputDevice.cpp index ae38236257..98702125c7 100644 --- a/services/inputflinger/reader/InputDevice.cpp +++ b/services/inputflinger/reader/InputDevice.cpp @@ -515,7 +515,7 @@ std::vector<std::unique_ptr<InputMapper>> InputDevice::createMappers( // Motion sensor enabled devices. if (classes.test(InputDeviceClass::SENSOR)) { - mappers.push_back(std::make_unique<SensorInputMapper>(contextPtr, readerConfig)); + mappers.push_back(createInputMapper<SensorInputMapper>(contextPtr, readerConfig)); } // External stylus-like devices. diff --git a/services/inputflinger/reader/mapper/SensorInputMapper.h b/services/inputflinger/reader/mapper/SensorInputMapper.h index 1f82559db8..a55dcd1905 100644 --- a/services/inputflinger/reader/mapper/SensorInputMapper.h +++ b/services/inputflinger/reader/mapper/SensorInputMapper.h @@ -27,8 +27,10 @@ static constexpr ssize_t SENSOR_VEC_LEN = 3; class SensorInputMapper : public InputMapper { public: - explicit SensorInputMapper(InputDeviceContext& deviceContext, - const InputReaderConfiguration& readerConfig); + template <class T, class... Args> + friend std::unique_ptr<T> createInputMapper(InputDeviceContext& deviceContext, + const InputReaderConfiguration& readerConfig, + Args... args); ~SensorInputMapper() override; uint32_t getSources() const override; @@ -106,6 +108,9 @@ private: } }; + explicit SensorInputMapper(InputDeviceContext& deviceContext, + const InputReaderConfiguration& readerConfig); + static Axis createAxis(const AxisInfo& AxisInfo, const RawAbsoluteAxisInfo& rawAxisInfo); // Axes indexed by raw ABS_* axis index. diff --git a/services/inputflinger/tests/InputReader_test.cpp b/services/inputflinger/tests/InputReader_test.cpp index e1dbaa47bc..3bae079063 100644 --- a/services/inputflinger/tests/InputReader_test.cpp +++ b/services/inputflinger/tests/InputReader_test.cpp @@ -2784,7 +2784,7 @@ void SensorInputMapperTest::setGyroProperties() { } TEST_F(SensorInputMapperTest, GetSources) { - SensorInputMapper& mapper = addMapperAndConfigure<SensorInputMapper>(); + SensorInputMapper& mapper = constructAndAddMapper<SensorInputMapper>(); ASSERT_EQ(static_cast<uint32_t>(AINPUT_SOURCE_SENSOR), mapper.getSources()); } @@ -2792,7 +2792,7 @@ TEST_F(SensorInputMapperTest, GetSources) { TEST_F(SensorInputMapperTest, ProcessAccelerometerSensor) { setAccelProperties(); prepareAccelAxes(); - SensorInputMapper& mapper = addMapperAndConfigure<SensorInputMapper>(); + SensorInputMapper& mapper = constructAndAddMapper<SensorInputMapper>(); ASSERT_TRUE(mapper.enableSensor(InputDeviceSensorType::ACCELEROMETER, std::chrono::microseconds(10000), @@ -2822,7 +2822,7 @@ TEST_F(SensorInputMapperTest, ProcessAccelerometerSensor) { TEST_F(SensorInputMapperTest, ProcessGyroscopeSensor) { setGyroProperties(); prepareGyroAxes(); - SensorInputMapper& mapper = addMapperAndConfigure<SensorInputMapper>(); + SensorInputMapper& mapper = constructAndAddMapper<SensorInputMapper>(); ASSERT_TRUE(mapper.enableSensor(InputDeviceSensorType::GYROSCOPE, std::chrono::microseconds(10000), |