From c1ce4b01750865cb2e19f8fe3900ac49a63954de Mon Sep 17 00:00:00 2001 From: z-hf Date: Wed, 2 Jul 2025 20:56:35 +0800 Subject: [PATCH 1/2] Touch node bindings Signed-off-by: z-hf --- .../include/input_device_manager.h | 3 +- .../src/input_device_manager.cpp | 28 +++++++++---- .../test/input_device_manager_test.cpp | 12 +++--- service/touch_event_normalize/test/BUILD.gn | 1 + .../include/input_display_bind_helper.h | 6 ++- .../include/input_windows_manager.h | 3 +- .../src/input_display_bind_helper.cpp | 33 ++++++++++----- .../src/input_windows_manager.cpp | 9 +++-- .../test/input_display_bind_helper_test.cpp | 40 +++++++++---------- .../test/input_windows_manager_test.cpp | 10 +++-- service/window_manager/test/mock.cpp | 2 +- 11 files changed, 92 insertions(+), 55 deletions(-) diff --git a/service/device_manager/include/input_device_manager.h b/service/device_manager/include/input_device_manager.h index ce3ce106c2..329ebe8a65 100644 --- a/service/device_manager/include/input_device_manager.h +++ b/service/device_manager/include/input_device_manager.h @@ -90,7 +90,8 @@ public: void NotifyRemovePointerDevice(bool removePointerDevice); bool HasTouchDevice(); const std::string& GetScreenId(int32_t deviceId) const; - using inputDeviceCallback = std::function; + using inputDeviceCallback = + std::function; void SetInputStatusChangeCallback(inputDeviceCallback callback); VendorConfig GetVendorConfig(int32_t deviceId) const; int32_t OnEnableInputDevice(bool enable); diff --git a/service/device_manager/src/input_device_manager.cpp b/service/device_manager/src/input_device_manager.cpp index 466d2d4e18..2e4d751867 100644 --- a/service/device_manager/src/input_device_manager.cpp +++ b/service/device_manager/src/input_device_manager.cpp @@ -393,10 +393,15 @@ void InputDeviceManager::NotifyDevCallback(int32_t deviceId, struct InputDeviceI MMI_HILOGI("The device is not touchable device already existent"); return; } + std::string name = "null"; + if (inDevice.inputDeviceOrigin != nullptr) { + name = libinput_device_get_name(inDevice.inputDeviceOrigin); + } if (!inDevice.sysUid.empty()) { - devCallbacks_(deviceId, inDevice.sysUid, "add"); - MMI_HILOGI("Send device info to window manager, device id:%{public}d, system uid:%s, status:add", - deviceId, inDevice.sysUid.c_str()); + CHKPV(devCallbacks_); + devCallbacks_(deviceId, name, inDevice.sysUid, "add"); + MMI_HILOGI("Send device info to window manager, device id:%{public}d, name:%{public}s," + "system uid:%s, status:add", deviceId, name.c_str(), inDevice.sysUid.c_str()); } else { MMI_HILOGE("Get device system uid id is empty, deviceId:%{public}d", deviceId); } @@ -482,10 +487,11 @@ void InputDeviceManager::OnInputDeviceRemoved(struct libinput_device *inputDevic #ifdef OHOS_BUILD_ENABLE_KEYBOARD_EXT_FLAG NotifyDevRemoveCallbackExt(deviceId); #endif // OHOS_BUILD_ENABLE_KEYBOARD_EXT_FLAG + std::string name = libinput_device_get_name(inputDevice); CHKPV(devCallbacks_); - devCallbacks_(deviceId, sysUid, "remove"); - MMI_HILOGI("Send device info to window manager, device id:%{public}d, system uid:%s, status:remove", - deviceId, sysUid.c_str()); + devCallbacks_(deviceId, name, sysUid, "remove"); + MMI_HILOGI("Send device info to window manager, device id:%{public}d, name:%{public}s, system uid:%s, " + "status:remove", deviceId, name.c_str(), sysUid.c_str()); } NotifyRemovePointerDevice(IsPointerDevice(inputDevice)); @@ -981,8 +987,14 @@ void InputDeviceManager::NotifyDevRemoveCallback(int32_t deviceId, const InputDe { CALL_DEBUG_ENTER; if (auto sysUid = deviceInfo.sysUid; !sysUid.empty()) { - devCallbacks_(deviceId, sysUid, "remove"); - MMI_HILOGI("Send device info to window manager, deivceId:%{public}d, status:remove", deviceId); + std::string name = "null"; + if (deviceInfo.inputDeviceOrigin != nullptr) { + name = libinput_device_get_name(deviceInfo.inputDeviceOrigin); + } + CHKPV(devCallbacks_); + devCallbacks_(deviceId, name, sysUid, "remove"); + MMI_HILOGI("Send device info to window manager, deivceId:%{public}d, name:%{public}s, status:remove", + deviceId, name.c_str()); } } diff --git a/service/device_manager/test/input_device_manager_test.cpp b/service/device_manager/test/input_device_manager_test.cpp index 5c65509c97..c17b027aa7 100644 --- a/service/device_manager/test/input_device_manager_test.cpp +++ b/service/device_manager/test/input_device_manager_test.cpp @@ -1131,9 +1131,9 @@ HWTEST_F(InputDeviceManagerTest, SetInputStatusChangeCallback_Test_001, TestSize { CALL_TEST_DEBUG; InputDeviceManager inputDevice; - using InputDeviceCallback = std::function; - InputDeviceCallback callback = [](int status, const std::string& deviceName, const std::string& deviceId) { - }; + using InputDeviceCallback = std::function; + InputDeviceCallback callback = + [] (int status, std::string nodeName, const std::string& deviceName, const std::string& deviceId) {}; ASSERT_NO_FATAL_FAILURE(inputDevice.SetInputStatusChangeCallback(callback)); } @@ -1287,8 +1287,10 @@ HWTEST_F(InputDeviceManagerTest, InputDeviceManagerTest_NotifyDevCallback_001, T int32_t deviceid = 1; inDevice.isTouchableDevice = true; inDevice.sysUid = "123456"; - using inputDeviceCallback = std::function; - inputDeviceCallback callback = [](int32_t deviceId, std::string devName, std::string devStatus) {}; + using inputDeviceCallback = + std::function; + inputDeviceCallback callback = + [] (int32_t deviceId, std::string nodeName, std::string devName, std::string devStatus) {}; inputDevice.SetInputStatusChangeCallback(callback); ASSERT_NO_FATAL_FAILURE(inputDevice.NotifyDevCallback(deviceid, inDevice)); inDevice.sysUid.clear(); diff --git a/service/touch_event_normalize/test/BUILD.gn b/service/touch_event_normalize/test/BUILD.gn index 671364dda4..573008e56c 100644 --- a/service/touch_event_normalize/test/BUILD.gn +++ b/service/touch_event_normalize/test/BUILD.gn @@ -368,6 +368,7 @@ ohos_unittest("TabletToolTranformTest") { "preferences:native_preferences", "safwk:system_ability_fwk", "samgr:samgr_proxy", + "window_manager:libdm_lite", "window_manager:libwm", "window_manager:libwsutils", ] diff --git a/service/window_manager/include/input_display_bind_helper.h b/service/window_manager/include/input_display_bind_helper.h index 7df9c3cff5..e6dfe36383 100644 --- a/service/window_manager/include/input_display_bind_helper.h +++ b/service/window_manager/include/input_display_bind_helper.h @@ -26,13 +26,14 @@ namespace MMI { class BindInfo { public: int32_t GetInputDeviceId() const; + std::string GetInputNodeName() const; std::string GetInputDeviceName() const; int32_t GetDisplayId() const; std::string GetDisplayName() const; bool IsUnbind() const; bool InputDeviceNotBind() const; bool DisplayNotBind() const; - bool AddInputDevice(int32_t deviceId, const std::string &deviceName); + bool AddInputDevice(int32_t deviceId, const std::string &nodeName, const std::string &deviceName); void RemoveInputDevice(); bool AddDisplay(int32_t id, const std::string &name); void RemoveDisplay(); @@ -43,6 +44,7 @@ public: private: int32_t inputDeviceId_ { -1 }; + std::string inputNodeName_; std::string inputDeviceName_; int32_t displayId_ { -1 }; std::string displayName_; @@ -72,7 +74,7 @@ class InputDisplayBindHelper { public: InputDisplayBindHelper(const std::string bindCfgFile); std::string GetBindDisplayNameByInputDevice(int32_t inputDeviceId) const; - void AddInputDevice(int32_t id, const std::string &name); + void AddInputDevice(int32_t id, const std::string &name, const std::string &sysUid); void RemoveInputDevice(int32_t id); bool IsDisplayAdd(int32_t id, const std::string &name); std::set> GetDisplayIdNames() const; diff --git a/service/window_manager/include/input_windows_manager.h b/service/window_manager/include/input_windows_manager.h index ae63443de8..4ec9c08017 100644 --- a/service/window_manager/include/input_windows_manager.h +++ b/service/window_manager/include/input_windows_manager.h @@ -81,7 +81,8 @@ public: int32_t GetWindowPid(int32_t windowId) const; int32_t SetMouseCaptureMode(int32_t windowId, bool isCaptureMode); bool GetMouseIsCaptureMode() const; - void DeviceStatusChanged(int32_t deviceId, const std::string &sysUid, const std::string devStatus); + void DeviceStatusChanged(int32_t deviceId, std::string &name, const std::string &sysUid, + const std::string devStatus); int32_t GetDisplayBindInfo(DisplayBindInfos &infos); int32_t SetDisplayBind(int32_t deviceId, int32_t displayId, std::string &msg); int32_t AppendExtraData(const ExtraData& extraData); diff --git a/service/window_manager/src/input_display_bind_helper.cpp b/service/window_manager/src/input_display_bind_helper.cpp index b38bac82c8..7e2b6aa8a0 100644 --- a/service/window_manager/src/input_display_bind_helper.cpp +++ b/service/window_manager/src/input_display_bind_helper.cpp @@ -52,6 +52,11 @@ int32_t BindInfo::GetInputDeviceId() const return inputDeviceId_; } +std::string BindInfo::GetInputNodeName() const +{ + return inputNodeName_; +} + std::string BindInfo::GetInputDeviceName() const { return inputDeviceName_; @@ -82,12 +87,13 @@ bool BindInfo::DisplayNotBind() const return (displayId_ == -1); } -bool BindInfo::AddInputDevice(int32_t deviceId, const std::string &deviceName) +bool BindInfo::AddInputDevice(int32_t deviceId, const std::string &nodeName, const std::string &deviceName) { - if ((inputDeviceId_ != -1) || !inputDeviceName_.empty()) { + if ((inputDeviceId_ != -1) || !inputNodeName_.empty() || !inputDeviceName_.empty()) { return false; } inputDeviceId_ = deviceId; + inputNodeName_ = nodeName; inputDeviceName_ = deviceName; return true; } @@ -331,13 +337,13 @@ std::string InputDisplayBindHelper::GetBindDisplayNameByInputDevice(int32_t inpu return infos_->GetBindDisplayNameByInputDevice(inputDeviceId); } -void InputDisplayBindHelper::AddInputDevice(int32_t id, const std::string &name) +void InputDisplayBindHelper::AddInputDevice(int32_t id, const std::string &nodeName, const std::string &sysUid) { CALL_DEBUG_ENTER; - MMI_HILOGD("Param: id:%{public}d, name:%{public}s", id, name.c_str()); - auto displayName = configFileInfos_->GetDisplayNameByInputDevice(name); + MMI_HILOGD("Param: id:%{public}d, nodeName:%{public}s, name:%{public}s", id, nodeName.c_str(), sysUid.c_str()); + auto displayName = configFileInfos_->GetDisplayNameByInputDevice(sysUid); BindInfo info = infos_->GetUnbindInputDevice(displayName); - info.AddInputDevice(id, name); + info.AddInputDevice(id, nodeName, sysUid); infos_->Add(info); Store(); } @@ -440,6 +446,12 @@ std::string InputDisplayBindHelper::GetInputDeviceById(int32_t id) std::string inputNode = GetInputNode(inputNodeName); if (inputNode.empty()) { + const auto &infos = infos_->GetInfos(); + for (const auto &item : infos) { + if (inputNodeName == item.GetInputNodeName()) { + return item.GetInputDeviceName(); + } + } return ""; } @@ -617,14 +629,16 @@ int32_t InputDisplayBindHelper::SetDisplayBind(int32_t deviceId, int32_t display infos_->UnbindDisplay(bindByDisplay.GetDisplayId()); BindInfo info1; - info1.AddInputDevice(bindByDevice.GetInputDeviceId(), bindByDevice.GetInputDeviceName()); + info1.AddInputDevice(bindByDevice.GetInputDeviceId(), bindByDevice.GetInputNodeName(), + bindByDevice.GetInputDeviceName()); info1.AddDisplay(bindByDisplay.GetDisplayId(), bindByDisplay.GetDisplayName()); infos_->Add(info1); if ((bindByDevice.GetDisplayId() != -1) && (bindByDisplay.GetInputDeviceId() != -1)) { MMI_HILOGD("Both display id and input device id are invalid"); BindInfo info2; - info2.AddInputDevice(bindByDisplay.GetInputDeviceId(), bindByDisplay.GetInputDeviceName()); + info2.AddInputDevice(bindByDisplay.GetInputDeviceId(), bindByDisplay.GetInputNodeName(), + bindByDisplay.GetInputDeviceName()); info2.AddDisplay(bindByDevice.GetDisplayId(), bindByDevice.GetDisplayName()); infos_->Add(info2); return RET_OK; @@ -638,7 +652,8 @@ int32_t InputDisplayBindHelper::SetDisplayBind(int32_t deviceId, int32_t display if (bindByDisplay.GetInputDeviceId() != -1) { MMI_HILOGD("The input device id is invalid"); - AddInputDevice(bindByDisplay.GetInputDeviceId(), bindByDisplay.GetInputDeviceName()); + AddInputDevice(bindByDisplay.GetInputDeviceId(), bindByDisplay.GetInputNodeName(), + bindByDisplay.GetInputDeviceName()); return RET_OK; } diff --git a/service/window_manager/src/input_windows_manager.cpp b/service/window_manager/src/input_windows_manager.cpp index dc87c98451..935d1939b5 100644 --- a/service/window_manager/src/input_windows_manager.cpp +++ b/service/window_manager/src/input_windows_manager.cpp @@ -186,11 +186,12 @@ InputWindowsManager::~InputWindowsManager() CALL_INFO_TRACE; } -void InputWindowsManager::DeviceStatusChanged(int32_t deviceId, const std::string &sysUid, const std::string devStatus) +void InputWindowsManager::DeviceStatusChanged(int32_t deviceId, std::string &name, const std::string &sysUid, + const std::string devStatus) { CALL_INFO_TRACE; if (devStatus == "add") { - bindInfo_.AddInputDevice(deviceId, sysUid); + bindInfo_.AddInputDevice(deviceId, name, sysUid); } else { bindInfo_.RemoveInputDevice(deviceId); } @@ -206,8 +207,8 @@ void InputWindowsManager::Init(UDSServer& udsServer) InitMouseDownInfo(); #endif // OHOS_BUILD_ENABLE_POINTER INPUT_DEV_MGR->SetInputStatusChangeCallback( - [this] (int32_t deviceId, const std::string &sysUid, const std::string devStatus) { - return this->DeviceStatusChanged(deviceId, sysUid, devStatus); + [this] (int32_t deviceId, std::string name, const std::string &sysUid, const std::string devStatus) { + return this->DeviceStatusChanged(deviceId, name, sysUid, devStatus); } ); } diff --git a/service/window_manager/test/input_display_bind_helper_test.cpp b/service/window_manager/test/input_display_bind_helper_test.cpp index 11cef9ba98..4ec2413177 100644 --- a/service/window_manager/test/input_display_bind_helper_test.cpp +++ b/service/window_manager/test/input_display_bind_helper_test.cpp @@ -124,8 +124,8 @@ HWTEST_F(InputDisplayBindHelperTest, InputDisplayBindHelperTest_001, TestSize.Le // 多模初始化 bindInfo.Load(); // 检测到触摸板设备 - bindInfo.AddInputDevice(1, "mouse"); - bindInfo.AddInputDevice(2, "keyboard"); + bindInfo.AddInputDevice(1, "mouse", "mouse"); + bindInfo.AddInputDevice(2, "keyboard", "keyboard"); // 窗口同步信息 bindInfo.AddDisplay(0, "hp 223"); bindInfo.AddDisplay(2, "think 123"); @@ -146,8 +146,8 @@ HWTEST_F(InputDisplayBindHelperTest, InputDisplayBindHelperTest_002, TestSize.Le // 多模初始化 bindInfo.Load(); // 检测到触摸板设备 - bindInfo.AddInputDevice(1, "mouse"); - bindInfo.AddInputDevice(2, "keyboard"); + bindInfo.AddInputDevice(1, "mouse", "mouse"); + bindInfo.AddInputDevice(2, "keyboard", "keyboard"); // 窗口同步信息 bindInfo.AddDisplay(0, "hp 223"); bindInfo.AddDisplay(2, "think 123"); @@ -168,8 +168,8 @@ HWTEST_F(InputDisplayBindHelperTest, InputDisplayBindHelperTest_003, TestSize.Le // 多模初始化 bindInfo.Load(); // 检测到触摸板设备 - bindInfo.AddInputDevice(1, "mouse"); - bindInfo.AddInputDevice(2, "keyboard"); + bindInfo.AddInputDevice(1, "mouse", "mouse"); + bindInfo.AddInputDevice(2, "keyboard", "keyboard"); // 窗口同步信息 bindInfo.AddDisplay(0, "think 123"); bindInfo.AddDisplay(2, "hp 223"); @@ -190,8 +190,8 @@ HWTEST_F(InputDisplayBindHelperTest, InputDisplayBindHelperTest_004, TestSize.Le // 多模初始化 bindInfo.Load(); // 检测到触摸板设备 - bindInfo.AddInputDevice(1, "mouse"); - bindInfo.AddInputDevice(2, "keyboard"); + bindInfo.AddInputDevice(1, "mouse", "mouse"); + bindInfo.AddInputDevice(2, "keyboard", "keyboard"); // 窗口同步信息 bindInfo.AddDisplay(0, "hp 223"); bindInfo.AddDisplay(2, "think 123"); @@ -206,9 +206,9 @@ HWTEST_F(InputDisplayBindHelperTest, InputDisplayBindHelperTest_004, TestSize.Le bindInfo.AddDisplay(0, "hp 223"); bindInfo.AddDisplay(2, "think 123"); // 检测到触摸板设备 - bindInfo.AddInputDevice(1, "mouse"); - bindInfo.AddInputDevice(2, "keyboard"); - bindInfo.AddInputDevice(3, "keyboard88"); + bindInfo.AddInputDevice(1, "mouse", "mouse"); + bindInfo.AddInputDevice(2, "keyboard", "keyboard"); + bindInfo.AddInputDevice(3, "keyboard88", "keyboard88"); bindInfo.Store(); bindInfo.Load(); @@ -236,8 +236,8 @@ HWTEST_F(InputDisplayBindHelperTest, InputDisplayBindHelperTest_GetBindDisplayNa // 多模初始化 bindInfo.Load(); // 检测到触摸板设备 - bindInfo.AddInputDevice(1, "mouse"); - bindInfo.AddInputDevice(2, "keyboard"); + bindInfo.AddInputDevice(1, "mouse", "mouse"); + bindInfo.AddInputDevice(2, "keyboard", "keyboard"); // 窗口同步信息 bindInfo.AddDisplay(0, "think 123"); bindInfo.AddDisplay(2, "hp 223"); @@ -273,8 +273,8 @@ HWTEST_F(InputDisplayBindHelperTest, InputDisplayBindHelperTest_IsDisplayAdd_006 ASSERT_FALSE(bindInfo.IsDisplayAdd(1, "think 123")); ASSERT_EQ(bindInfo.Dumps(), std::string()); // 检测到触摸板设备 - bindInfo.AddInputDevice(1, "mouse"); - bindInfo.AddInputDevice(2, "keyboard"); + bindInfo.AddInputDevice(1, "mouse", "mouse"); + bindInfo.AddInputDevice(2, "keyboard", "keyboard"); // 窗口同步信息 bindInfo.AddDisplay(0, "think 123"); bindInfo.AddDisplay(2, "hp 223"); @@ -306,8 +306,8 @@ HWTEST_F(InputDisplayBindHelperTest, InputDisplayBindHelperTest_GetDisplayIdName ASSERT_EQ(bindInfo.GetDisplayIdNames(), idNames); // 检测到触摸板设备 - bindInfo.AddInputDevice(1, "mouse"); - bindInfo.AddInputDevice(2, "keyboard"); + bindInfo.AddInputDevice(1, "mouse", "mouse"); + bindInfo.AddInputDevice(2, "keyboard", "keyboard"); // 窗口同步信息 bindInfo.AddDisplay(0, "think 123"); @@ -434,7 +434,7 @@ HWTEST_F(InputDisplayBindHelperTest, InputDisplayBindHelperTest_AddInputDevice_0 CALL_TEST_DEBUG; BindInfo bindInfo; bindInfo.inputDeviceName_ = "mouse"; - ASSERT_NO_FATAL_FAILURE(bindInfo.AddInputDevice(1, "mouse")); + ASSERT_NO_FATAL_FAILURE(bindInfo.AddInputDevice(1, "mouse", "mouse")); } /** @@ -448,7 +448,7 @@ HWTEST_F(InputDisplayBindHelperTest, InputDisplayBindHelperTest_AddInputDevice_0 CALL_TEST_DEBUG; BindInfo bindInfo; bindInfo.inputDeviceId_ = 1; - ASSERT_NO_FATAL_FAILURE(bindInfo.AddInputDevice(1, "mouse")); + ASSERT_NO_FATAL_FAILURE(bindInfo.AddInputDevice(1, "mouse", "mouse")); } /** @@ -463,7 +463,7 @@ HWTEST_F(InputDisplayBindHelperTest, InputDisplayBindHelperTest_AddInputDevice_0 BindInfo bindInfo; bindInfo.inputDeviceId_ = 1; bindInfo.inputDeviceName_ = "mouse"; - ASSERT_NO_FATAL_FAILURE(bindInfo.AddInputDevice(1, "mouse")); + ASSERT_NO_FATAL_FAILURE(bindInfo.AddInputDevice(1, "mouse", "mouse")); } /** diff --git a/service/window_manager/test/input_windows_manager_test.cpp b/service/window_manager/test/input_windows_manager_test.cpp index 4436f9379f..e19f763298 100644 --- a/service/window_manager/test/input_windows_manager_test.cpp +++ b/service/window_manager/test/input_windows_manager_test.cpp @@ -313,11 +313,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_SetDisplayBind_009, Te CALL_TEST_DEBUG; UDSServer udsServer; WIN_MGR->Init(udsServer); + std::string name = "mouse"; std::string sysUid = "james"; std::string devStatus = "add"; - WIN_MGR->DeviceStatusChanged(2, sysUid, devStatus); + WIN_MGR->DeviceStatusChanged(2, name, sysUid, devStatus); devStatus = "remove"; - WIN_MGR->DeviceStatusChanged(2, sysUid, devStatus); + WIN_MGR->DeviceStatusChanged(2, name, sysUid, devStatus); std::string msg = "There is in InputWindowsManagerTest_GetDisplayIdNames_009"; ASSERT_EQ(WIN_MGR->SetDisplayBind(-1, 1, msg), -1); } @@ -9656,13 +9657,14 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_DeviceStatusChanged_00 { CALL_TEST_DEBUG; int32_t deviceId = 0; + std::string name = "mouse"; std::string sysUid = ""; std::string devStatus = "add"; std::shared_ptr inputWindowsManager = std::make_shared(); - ASSERT_NO_FATAL_FAILURE(inputWindowsManager->DeviceStatusChanged(deviceId, sysUid, devStatus)); + ASSERT_NO_FATAL_FAILURE(inputWindowsManager->DeviceStatusChanged(deviceId, name, sysUid, devStatus)); devStatus = "test"; - ASSERT_NO_FATAL_FAILURE(inputWindowsManager->DeviceStatusChanged(deviceId, sysUid, devStatus)); + ASSERT_NO_FATAL_FAILURE(inputWindowsManager->DeviceStatusChanged(deviceId, name, sysUid, devStatus)); } #ifdef OHOS_BUILD_ENABLE_TOUCH diff --git a/service/window_manager/test/mock.cpp b/service/window_manager/test/mock.cpp index 074b43cce5..55cbd2e9ce 100644 --- a/service/window_manager/test/mock.cpp +++ b/service/window_manager/test/mock.cpp @@ -70,7 +70,7 @@ void InputDisplayBindHelper::AddDisplay(int32_t id, const std::string &name) void InputDisplayBindHelper::RemoveInputDevice(int32_t id) {} -void InputDisplayBindHelper::AddInputDevice(int32_t id, const std::string &name) +void InputDisplayBindHelper::AddInputDevice(int32_t id, const std::string &nodeName, const std::string &sysUid) {} UDSServer::~UDSServer() {} -- Gitee From ae1f5cb4c92df3a15b98a3f678e6742a1df77e80 Mon Sep 17 00:00:00 2001 From: z-hf Date: Fri, 4 Jul 2025 09:29:35 +0800 Subject: [PATCH 2/2] Touch node bindings Signed-off-by: z-hf --- service/device_manager/src/input_device_manager.cpp | 6 +++--- service/window_manager/include/input_windows_manager.h | 2 +- service/window_manager/src/input_display_bind_helper.cpp | 1 + service/window_manager/src/input_windows_manager.cpp | 4 ++-- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/service/device_manager/src/input_device_manager.cpp b/service/device_manager/src/input_device_manager.cpp index 2e4d751867..ef38b0b6bf 100644 --- a/service/device_manager/src/input_device_manager.cpp +++ b/service/device_manager/src/input_device_manager.cpp @@ -400,7 +400,7 @@ void InputDeviceManager::NotifyDevCallback(int32_t deviceId, struct InputDeviceI if (!inDevice.sysUid.empty()) { CHKPV(devCallbacks_); devCallbacks_(deviceId, name, inDevice.sysUid, "add"); - MMI_HILOGI("Send device info to window manager, device id:%{public}d, name:%{public}s," + MMI_HILOGI("Send device info to window manager, device id:%{public}d, name:%{private}s," "system uid:%s, status:add", deviceId, name.c_str(), inDevice.sysUid.c_str()); } else { MMI_HILOGE("Get device system uid id is empty, deviceId:%{public}d", deviceId); @@ -490,7 +490,7 @@ void InputDeviceManager::OnInputDeviceRemoved(struct libinput_device *inputDevic std::string name = libinput_device_get_name(inputDevice); CHKPV(devCallbacks_); devCallbacks_(deviceId, name, sysUid, "remove"); - MMI_HILOGI("Send device info to window manager, device id:%{public}d, name:%{public}s, system uid:%s, " + MMI_HILOGI("Send device info to window manager, device id:%{public}d, name:%{private}s, system uid:%s, " "status:remove", deviceId, name.c_str(), sysUid.c_str()); } @@ -993,7 +993,7 @@ void InputDeviceManager::NotifyDevRemoveCallback(int32_t deviceId, const InputDe } CHKPV(devCallbacks_); devCallbacks_(deviceId, name, sysUid, "remove"); - MMI_HILOGI("Send device info to window manager, deivceId:%{public}d, name:%{public}s, status:remove", + MMI_HILOGI("Send device info to window manager, deivceId:%{public}d, name:%{private}s, status:remove", deviceId, name.c_str()); } } diff --git a/service/window_manager/include/input_windows_manager.h b/service/window_manager/include/input_windows_manager.h index 4ec9c08017..d1ec9883f4 100644 --- a/service/window_manager/include/input_windows_manager.h +++ b/service/window_manager/include/input_windows_manager.h @@ -81,7 +81,7 @@ public: int32_t GetWindowPid(int32_t windowId) const; int32_t SetMouseCaptureMode(int32_t windowId, bool isCaptureMode); bool GetMouseIsCaptureMode() const; - void DeviceStatusChanged(int32_t deviceId, std::string &name, const std::string &sysUid, + void DeviceStatusChanged(int32_t deviceId, const std::string &name, const std::string &sysUid, const std::string devStatus); int32_t GetDisplayBindInfo(DisplayBindInfos &infos); int32_t SetDisplayBind(int32_t deviceId, int32_t displayId, std::string &msg); diff --git a/service/window_manager/src/input_display_bind_helper.cpp b/service/window_manager/src/input_display_bind_helper.cpp index 7e2b6aa8a0..0ace14c820 100644 --- a/service/window_manager/src/input_display_bind_helper.cpp +++ b/service/window_manager/src/input_display_bind_helper.cpp @@ -446,6 +446,7 @@ std::string InputDisplayBindHelper::GetInputDeviceById(int32_t id) std::string inputNode = GetInputNode(inputNodeName); if (inputNode.empty()) { + CHKPO(infos_); const auto &infos = infos_->GetInfos(); for (const auto &item : infos) { if (inputNodeName == item.GetInputNodeName()) { diff --git a/service/window_manager/src/input_windows_manager.cpp b/service/window_manager/src/input_windows_manager.cpp index 935d1939b5..52987650c9 100644 --- a/service/window_manager/src/input_windows_manager.cpp +++ b/service/window_manager/src/input_windows_manager.cpp @@ -186,7 +186,7 @@ InputWindowsManager::~InputWindowsManager() CALL_INFO_TRACE; } -void InputWindowsManager::DeviceStatusChanged(int32_t deviceId, std::string &name, const std::string &sysUid, +void InputWindowsManager::DeviceStatusChanged(int32_t deviceId, const std::string &name, const std::string &sysUid, const std::string devStatus) { CALL_INFO_TRACE; @@ -207,7 +207,7 @@ void InputWindowsManager::Init(UDSServer& udsServer) InitMouseDownInfo(); #endif // OHOS_BUILD_ENABLE_POINTER INPUT_DEV_MGR->SetInputStatusChangeCallback( - [this] (int32_t deviceId, std::string name, const std::string &sysUid, const std::string devStatus) { + [this] (int32_t deviceId, const std::string name, const std::string &sysUid, const std::string devStatus) { return this->DeviceStatusChanged(deviceId, name, sysUid, devStatus); } ); -- Gitee