diff --git a/common/include/constants_dinput.h b/common/include/constants_dinput.h index 2444c919587013c045872d0bfbba8cc774308c7d..fd19bf79491ca159a933be43841d6717f64b50a7 100644 --- a/common/include/constants_dinput.h +++ b/common/include/constants_dinput.h @@ -182,6 +182,8 @@ namespace DistributedInput { const std::string PROPERTIES = "properties"; + const std::string DH_TOUCH_PAD = "touchpad"; + const std::string DINPUT_LOG_TITLE_TAG = "DINPUT"; constexpr const char* LATENCY_COUNT_THREAD_NAME = "latencyCount"; diff --git a/common/include/input_hub.cpp b/common/include/input_hub.cpp index 2f85b25c9d0d8a096d9466dd8991a6e5c163cdba..410e4f47575a7fb5b538b51d3123adeb2559cd70 100644 --- a/common/include/input_hub.cpp +++ b/common/include/input_hub.cpp @@ -15,6 +15,7 @@ #include "input_hub.h" +#include #include #include #include @@ -28,7 +29,6 @@ #include #include - #include "constants_dinput.h" #include "dinput_context.h" #include "dinput_errcode.h" @@ -205,14 +205,27 @@ size_t InputHub::GetEvents(RawEvent* buffer, size_t bufferSize) return event - buffer; } +bool InputHub::IsTouchPad(const InputDevice& inputDevice) +{ + std::string dhName = inputDevice.name; + DHLOGI("device name is %s.", dhName.c_str()); + transform(dhName.begin(), dhName.end(), dhName.begin(), ::tolower); + if (dhName.find(DH_TOUCH_PAD) == std::string::npos) { + return false; + } + return true; +} + size_t InputHub::CollectEvent(RawEvent* buffer, size_t& capacity, Device* device, struct input_event readBuffer[], const size_t count) { std::vector needFilted(capacity, false); bool isTouchEvent = false; if ((device->classes & INPUT_DEVICE_CLASS_TOUCH_MT) || (device->classes & INPUT_DEVICE_CLASS_TOUCH)) { - isTouchEvent = true; - HandleTouchScreenEvent(readBuffer, count, needFilted); + if (!IsTouchPad(device->identifier)) { + isTouchEvent = true; + HandleTouchScreenEvent(readBuffer, count, needFilted); + } } RawEvent* event = buffer; diff --git a/common/include/input_hub.h b/common/include/input_hub.h index 24fb84ebd235c4768eb528223c3ba8549846624d..71ab4a799cdb401e68187ee06c841834b40ca1e2 100644 --- a/common/include/input_hub.h +++ b/common/include/input_hub.h @@ -126,6 +126,7 @@ private: bool ContainsNonZeroByte(const uint8_t* array, uint32_t startIndex, uint32_t endIndex); int64_t ProcessEventTimestamp(const input_event& event); + bool IsTouchPad(const InputDevice& inputDevice); /* * this macro is used to tell if "bit" is set in "array"