12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*
- * Copyright (C) 2021 The LineageOS Project
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- #include <aidl/android/hardware/power/BnPower.h>
- #include <android-base/file.h>
- #include <android-base/logging.h>
- #include <sys/ioctl.h>
- #define SET_CUR_VALUE 0
- #define TOUCH_DOUBLETAP_MODE 14
- #define TOUCH_MAGIC 't'
- #define TOUCH_IOC_SETMODE _IO(TOUCH_MAGIC, SET_CUR_VALUE)
- #define TOUCH_DEV_PATH "/dev/xiaomi-touch"
- #define TOUCH_ID 0
- namespace aidl {
- namespace android {
- namespace hardware {
- namespace power {
- namespace impl {
- using ::aidl::android::hardware::power::Mode;
- bool isDeviceSpecificModeSupported(Mode type, bool* _aidl_return) {
- switch (type) {
- case Mode::DOUBLE_TAP_TO_WAKE:
- *_aidl_return = true;
- return true;
- default:
- return false;
- }
- }
- bool setDeviceSpecificMode(Mode type, bool enabled) {
- switch (type) {
- case Mode::DOUBLE_TAP_TO_WAKE: {
- int fd = open(TOUCH_DEV_PATH, O_RDWR);
- int arg[3] = {TOUCH_ID, TOUCH_DOUBLETAP_MODE, enabled ? 1 : 0};
- ioctl(fd, TOUCH_IOC_SETMODE, &arg);
- close(fd);
- return true;
- }
- default:
- return false;
- }
- }
- } // namespace impl
- } // namespace power
- } // namespace hardware
- } // namespace android
- } // namespace aidl
|