eqs: sensors: Implement double tap sensor

Change-Id: I6c217c994d6e4d5ae062a31a44fffc9f097a7f6f
This commit is contained in:
Cosmin Tanislav
2022-09-21 10:09:08 +05:30
parent 304ab206ae
commit f934f86c8f
4 changed files with 25 additions and 1 deletions

View File

@@ -275,4 +275,7 @@
<!-- How long it takes for the HW to start illuminating after the illumination is requested. -->
<integer name="config_udfps_illumination_transition_ms">0</integer>
<!-- Type of the double tap sensor. Empty if double tap is not supported. -->
<string name="config_dozeDoubleTapSensorType" translatable="false">org.lineageos.sensor.double_tap</string>
</resources>

View File

@@ -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

View File

@@ -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<SensorType>(static_cast<int32_t>(SensorType::DEVICE_PRIVATE_BASE) + 1)) {}
};
} // namespace implementation
} // namespace subhal
} // namespace V2_1

View File

@@ -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<DoubleTapSensor>();
}
Return<void> SensorsSubHal::getSensorsList_2_1(ISensors::getSensorsList_2_1_cb _hidl_cb) {
std::vector<SensorInfo> sensors;