From f934f86c8f53dfab3a42daebf1e0f3a418da5509 Mon Sep 17 00:00:00 2001 From: Cosmin Tanislav Date: Wed, 21 Sep 2022 10:09:08 +0530 Subject: [PATCH] eqs: sensors: Implement double tap sensor Change-Id: I6c217c994d6e4d5ae062a31a44fffc9f097a7f6f --- .../eqs/Frameworks/res/values/config.xml | 3 +++ rootdir/etc/init/hw/init.mmi.overlay.rc | 5 +++++ sensors/Sensor.h | 14 ++++++++++++++ sensors/SensorsSubHal.cpp | 4 +++- 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/resource-overlay/eqs/Frameworks/res/values/config.xml b/resource-overlay/eqs/Frameworks/res/values/config.xml index 457fbad..c8fe1b4 100644 --- a/resource-overlay/eqs/Frameworks/res/values/config.xml +++ b/resource-overlay/eqs/Frameworks/res/values/config.xml @@ -275,4 +275,7 @@ 0 + + + org.lineageos.sensor.double_tap diff --git a/rootdir/etc/init/hw/init.mmi.overlay.rc b/rootdir/etc/init/hw/init.mmi.overlay.rc index 18c648f..c49dadc 100644 --- a/rootdir/etc/init/hw/init.mmi.overlay.rc +++ b/rootdir/etc/init/hw/init.mmi.overlay.rc @@ -42,6 +42,11 @@ on early-boot chmod 0664 /sys/class/power_supply/battery/device/force_charging_enable chown vendor_tcmd system /sys/class/power_supply/battery/device/force_charging_enable +on post-fs + # Sensors + chown system system /sys/devices/platform/soc/990000.i2c/i2c-0/0-005d/touchscreen/primary/double_tap_enabled + chown system system /sys/devices/platform/soc/990000.i2c/i2c-0/0-005d/touchscreen/primary/double_tap_pressed + on post-fs-data # Param updater data for various modules mkdir /data/vendor/param 0775 system system diff --git a/sensors/Sensor.h b/sensors/Sensor.h index f6fe7a5..dce8e31 100644 --- a/sensors/Sensor.h +++ b/sensors/Sensor.h @@ -120,6 +120,20 @@ class SysfsPollingOneShotSensor : public OneShotSensor { int mPollFd; }; +const std::string kTsPath = "/sys/class/touchscreen/primary/"; + +const std::string kTsDoubleTapPressedPath = kTsPath + "double_tap_pressed"; +const std::string kTsDoubleTapEnabledPath = kTsPath + "double_tap_enabled"; + +class DoubleTapSensor : public SysfsPollingOneShotSensor { + public: + DoubleTapSensor(int32_t sensorHandle, ISensorsEventCallback* callback) + : SysfsPollingOneShotSensor( + sensorHandle, callback, kTsDoubleTapPressedPath, kTsDoubleTapEnabledPath, + "Double Tap Sensor", "org.lineageos.sensor.double_tap", + static_cast(static_cast(SensorType::DEVICE_PRIVATE_BASE) + 1)) {} +}; + } // namespace implementation } // namespace subhal } // namespace V2_1 diff --git a/sensors/SensorsSubHal.cpp b/sensors/SensorsSubHal.cpp index 6cbcb56..9281bfa 100644 --- a/sensors/SensorsSubHal.cpp +++ b/sensors/SensorsSubHal.cpp @@ -32,7 +32,9 @@ namespace implementation { using ::android::hardware::Void; using ::android::hardware::sensors::V2_0::implementation::ScopedWakelock; -SensorsSubHal::SensorsSubHal() : mCallback(nullptr), mNextHandle(1) {} +SensorsSubHal::SensorsSubHal() : mCallback(nullptr), mNextHandle(1) { + AddSensor(); +} Return SensorsSubHal::getSensorsList_2_1(ISensors::getSensorsList_2_1_cb _hidl_cb) { std::vector sensors;