sm8450-common: udfps: Inform hwmodule about press coordinates
These coordinates can be from the last press, ideally we would get the coordinates freshly when fod_press_status changes. Change-Id: I8c0096c96612c8ea8b612696ecf702d7945a1b84
This commit is contained in:
@@ -27,6 +27,8 @@
|
|||||||
#define LOW_BRIGHTNESS_THRESHHOLD 100
|
#define LOW_BRIGHTNESS_THRESHHOLD 100
|
||||||
|
|
||||||
#define COMMAND_FOD_PRESS_STATUS 1
|
#define COMMAND_FOD_PRESS_STATUS 1
|
||||||
|
#define COMMAND_FOD_PRESS_X 2
|
||||||
|
#define COMMAND_FOD_PRESS_Y 3
|
||||||
#define PARAM_FOD_PRESSED 1
|
#define PARAM_FOD_PRESSED 1
|
||||||
#define PARAM_FOD_RELEASED 0
|
#define PARAM_FOD_RELEASED 0
|
||||||
|
|
||||||
@@ -115,6 +117,8 @@ class XiaomiSm8450UdfpsHander : public UdfpsHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool pressed = readBool(fd);
|
bool pressed = readBool(fd);
|
||||||
|
mDevice->extCmd(mDevice, COMMAND_FOD_PRESS_X, pressed ? lastPressX : 0);
|
||||||
|
mDevice->extCmd(mDevice, COMMAND_FOD_PRESS_Y, pressed ? lastPressY : 0);
|
||||||
mDevice->extCmd(mDevice, COMMAND_FOD_PRESS_STATUS,
|
mDevice->extCmd(mDevice, COMMAND_FOD_PRESS_STATUS,
|
||||||
pressed ? PARAM_FOD_PRESSED : PARAM_FOD_RELEASED);
|
pressed ? PARAM_FOD_PRESSED : PARAM_FOD_RELEASED);
|
||||||
|
|
||||||
@@ -197,8 +201,12 @@ class XiaomiSm8450UdfpsHander : public UdfpsHandler {
|
|||||||
}).detach();
|
}).detach();
|
||||||
}
|
}
|
||||||
|
|
||||||
void onFingerDown(uint32_t /*x*/, uint32_t /*y*/, float /*minor*/, float /*major*/) {
|
void onFingerDown(uint32_t x, uint32_t y, float /*minor*/, float /*major*/) {
|
||||||
LOG(INFO) << __func__;
|
LOG(INFO) << __func__ << "x: " << x << ", y: " << y;
|
||||||
|
// Track x and y coordinates
|
||||||
|
lastPressX = x;
|
||||||
|
lastPressY = y;
|
||||||
|
|
||||||
// Ensure touchscreen is aware of the press state, ideally this is not needed
|
// Ensure touchscreen is aware of the press state, ideally this is not needed
|
||||||
setFingerDown(true);
|
setFingerDown(true);
|
||||||
}
|
}
|
||||||
@@ -259,6 +267,7 @@ class XiaomiSm8450UdfpsHander : public UdfpsHandler {
|
|||||||
android::base::unique_fd touch_fd_;
|
android::base::unique_fd touch_fd_;
|
||||||
android::base::unique_fd disp_fd_;
|
android::base::unique_fd disp_fd_;
|
||||||
bool enrolling = false;
|
bool enrolling = false;
|
||||||
|
uint32_t lastPressX, lastPressY;
|
||||||
|
|
||||||
void setFodStatus(int value) {
|
void setFodStatus(int value) {
|
||||||
int buf[MAX_BUF_SIZE] = {MI_DISP_PRIMARY, Touch_Fod_Enable, value};
|
int buf[MAX_BUF_SIZE] = {MI_DISP_PRIMARY, Touch_Fod_Enable, value};
|
||||||
|
Reference in New Issue
Block a user