mirror of
https://github.com/openharmony/distributedhardware_distributed_input.git
synced 2026-07-18 16:04:40 -04:00
modify compile error
Signed-off-by: hwzhangchuang <zhangchuang.zhang@huawei.com>
This commit is contained in:
@@ -1471,7 +1471,7 @@ void InputHub::SavePressedKeyState(const InputHub::Device *dev, int32_t keyCode)
|
||||
|
||||
void InputHub::CheckTargetKeyState(const InputHub::Device *dev, const unsigned long *keyState)
|
||||
{
|
||||
//If device is a mouse, record the mouse pressed key.
|
||||
// If device is a mouse, record the mouse pressed key.
|
||||
if ((dev->classes & INPUT_DEVICE_CLASS_CURSOR) != 0) {
|
||||
int mouseLeftBtnState = BitIsSet(keyState, BTN_LEFT);
|
||||
if (mouseLeftBtnState != 0) {
|
||||
|
||||
@@ -44,7 +44,7 @@ inline constexpr size_t NBYTES(size_t nbits)
|
||||
}
|
||||
|
||||
class InputHub {
|
||||
private:
|
||||
public:
|
||||
struct Device {
|
||||
Device* next;
|
||||
int fd; // may be -1 if device is closed
|
||||
@@ -73,7 +73,7 @@ private:
|
||||
int32_t absXIndex;
|
||||
int32_t absYIndex;
|
||||
};
|
||||
public:
|
||||
|
||||
InputHub();
|
||||
~InputHub();
|
||||
size_t StartCollectInputEvents(RawEvent *buffer, size_t bufferSize);
|
||||
|
||||
@@ -63,6 +63,7 @@ ohos_unittest("distributed_input_inner_sinkcollector_test") {
|
||||
|
||||
deps = [
|
||||
"${utils_path}:libdinput_utils",
|
||||
"${services_state_path}:libdinput_state",
|
||||
"//third_party/libevdev:libevdev",
|
||||
"//third_party/openssl:libcrypto_shared",
|
||||
]
|
||||
|
||||
@@ -69,7 +69,8 @@ private:
|
||||
~DInputState();
|
||||
// Simulate device state to the pass through target device.
|
||||
void SimulateEventInjectToSrc(const int32_t sessionId, const std::vector<std::string> &dhIds);
|
||||
|
||||
void SimulateBtnTouchEvent(const int32_t sessionId, const std::string &dhId, const struct RawEvent &event);
|
||||
void SimulateNormalEvent(const int32_t sessionId, const std::string &dhId, const struct RawEvent &event);
|
||||
private:
|
||||
std::mutex operationMutex_;
|
||||
std::map<std::string, DhIdState> dhIdStateMap_;
|
||||
|
||||
@@ -116,44 +116,11 @@ void DInputState::SimulateEventInjectToSrc(const int32_t sessionId, const std::v
|
||||
if (event.code == BTN_TOUCH) {
|
||||
DHLOGI("Simulate Touch Down event for device path: %s, dhId: %s",
|
||||
event.path.c_str(), event.descriptor.c_str());
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_ABS, ABS_MT_TRACKING_ID, SIM_TOUCH_TRACKING_ID);
|
||||
std::pair<int32_t, int32_t> absPos = GetAndClearABSPosition(event.descriptor);
|
||||
if (absPos.first != -1) {
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_ABS, ABS_MT_POSITION_X, absPos.first);
|
||||
}
|
||||
|
||||
if (absPos.second != -1) {
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_ABS, ABS_MT_POSITION_Y, absPos.second);
|
||||
}
|
||||
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_KEY, event.code, KEY_DOWN_STATE);
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_KEY, BTN_TOOL_FINGER, KEY_DOWN_STATE);
|
||||
|
||||
if (absPos.first != -1) {
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_ABS, ABS_X, absPos.first);
|
||||
}
|
||||
|
||||
if (absPos.second != -1) {
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_ABS, ABS_Y, absPos.second);
|
||||
}
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_MSC, MSC_TIMESTAMP, 0x0);
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_SYN, SYN_REPORT, 0x0);
|
||||
SimulateBtnTouchEvent(sessionId, dhId, event);
|
||||
} else {
|
||||
DHLOGI("Simulate Key event for device path: %s, dhId: %s",
|
||||
event.path.c_str(), event.descriptor.c_str());
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_KEY, event.code, KEY_DOWN_STATE);
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_SYN, SYN_REPORT, 0x0);
|
||||
SimulateNormalEvent(sessionId, dhId, event);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,6 +128,47 @@ void DInputState::SimulateEventInjectToSrc(const int32_t sessionId, const std::v
|
||||
}
|
||||
}
|
||||
|
||||
void DInputState::SimulateBtnTouchEvent(const int32_t sessionId, const std::string &dhId, const struct RawEvent &event)
|
||||
{
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_ABS, ABS_MT_TRACKING_ID, SIM_TOUCH_TRACKING_ID);
|
||||
std::pair<int32_t, int32_t> absPos = GetAndClearABSPosition(event.descriptor);
|
||||
if (absPos.first != -1) {
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_ABS, ABS_MT_POSITION_X, absPos.first);
|
||||
}
|
||||
if (absPos.second != -1) {
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_ABS, ABS_MT_POSITION_Y, absPos.second);
|
||||
}
|
||||
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_KEY, event.code, KEY_DOWN_STATE);
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_KEY, BTN_TOOL_FINGER, KEY_DOWN_STATE);
|
||||
|
||||
if (absPos.first != -1) {
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_ABS, ABS_X, absPos.first);
|
||||
}
|
||||
if (absPos.second != -1) {
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_ABS, ABS_Y, absPos.second);
|
||||
}
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_MSC, MSC_TIMESTAMP, 0x0);
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_SYN, SYN_REPORT, 0x0);
|
||||
}
|
||||
|
||||
void DInputState::SimulateNormalEvent(const int32_t sessionId, const std::string &dhId, const struct RawEvent &event)
|
||||
{
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_KEY, event.code, KEY_DOWN_STATE);
|
||||
DistributedInputSinkTransport::GetInstance().SendKeyStateNodeMsg(sessionId, dhId,
|
||||
EV_SYN, SYN_REPORT, 0x0);
|
||||
}
|
||||
|
||||
void DInputState::RefreshABSPosition(const std::string &dhId, int32_t absX, int32_t absY)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(absPosMtx_);
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
#define OHOS_DISTRIBUTED_INPUT_UTILS_TOOL_H
|
||||
|
||||
#include <cstdint>
|
||||
#include <linux/input.h>
|
||||
#include <string>
|
||||
|
||||
#include <linux/input.h>
|
||||
#include "nlohmann/json.hpp"
|
||||
|
||||
#include "dinput_log.h"
|
||||
|
||||
Reference in New Issue
Block a user