From a4c4505bd843b4eedc33eefc858e992b622e57ed Mon Sep 17 00:00:00 2001 From: YOUR_NAME Date: Thu, 2 Sep 2021 09:32:41 +0000 Subject: [PATCH 1/7] add trackball Signed-off-by: YOUR_NAME --- model/input/driver/hdf_hid_adapter.c | 6 ++++++ model/input/driver/hdf_hid_adapter.h | 11 +++++++++++ model/input/driver/hdf_input_device_manager.c | 4 ++++ model/input/driver/hdf_input_device_manager.h | 1 + 4 files changed, 22 insertions(+) diff --git a/model/input/driver/hdf_hid_adapter.c b/model/input/driver/hdf_hid_adapter.c index ca3d4e8e8..2c22a66b6 100644 --- a/model/input/driver/hdf_hid_adapter.c +++ b/model/input/driver/hdf_hid_adapter.c @@ -149,6 +149,12 @@ static void SetInputDevAbility(InputDevice *inputDev) ret = memcpy_s(inputDev->abilitySet.switchCode, len * BITS_TO_LONG(SW_CNT), info->switchCode, len * BITS_TO_LONG(SW_CNT)); MEMCPY_CHECK_RETURN(ret); + for (int i = 0; i < BITS_TO_LONG(ABS_CNT); i++) { + if (inputDev->abilitySet.absCode[i] != 0) { + memcpy_s(inputDev->attrSet.axisInfo, sizeof(AbsAttr) * ABS_CNT, info->axisInfo, sizeof(AbsAttr) * ABS_CNT); + break; + } + } inputDev->attrSet.id.busType = info->bustype; inputDev->attrSet.id.vendor = info->vendor; diff --git a/model/input/driver/hdf_hid_adapter.h b/model/input/driver/hdf_hid_adapter.h index dbf393b05..321a8d592 100644 --- a/model/input/driver/hdf_hid_adapter.h +++ b/model/input/driver/hdf_hid_adapter.h @@ -47,6 +47,15 @@ #define FF_MAX 0x7f #define HDF_FF_CNT (FF_MAX + 1) +typedef struct { + int32_t axis; + int32_t min; + int32_t max; + int32_t fuzz; + int32_t flat; + int32_t range; +} AbsAttr; + typedef struct HidInformation { uint32_t devType; const char *devName; @@ -61,6 +70,7 @@ typedef struct HidInformation { unsigned long soundCode[BITS_TO_LONG(HDF_SND_CNT)]; unsigned long forceCode[BITS_TO_LONG(HDF_FF_CNT)]; unsigned long switchCode[BITS_TO_LONG(HDF_SW_CNT)]; + AbsAttr axisInfo[HDF_ABS_CNT]; uint16_t bustype; uint16_t vendor; @@ -78,6 +88,7 @@ enum HidType { HID_TYPE_MOUSE, /* Mouse */ HID_TYPE_KEYBOARD, /* Keyboard */ HID_TYPE_ROCKER, /* ROCKER */ + HID_TYPE_TRACKBALL, /* TRACKBALL */ HID_TYPE_UNKNOWN, /* Unknown input device type */ }; diff --git a/model/input/driver/hdf_input_device_manager.c b/model/input/driver/hdf_input_device_manager.c index c3e762c5f..60d1422e0 100644 --- a/model/input/driver/hdf_input_device_manager.c +++ b/model/input/driver/hdf_input_device_manager.c @@ -197,6 +197,7 @@ EXIT: #define DEFAULT_CROWN_BUF_PKG_NUM 20 #define DEFAULT_ENCODER_BUF_PKG_NUM 20 #define DEFAULT_ROCKER_BUF_PKG_NUM 40 +#define DEFAULT_TRACKBALL_BUF_PKG_NUM 30 static int32_t AllocPackageBuffer(InputDevice *inputDev) { @@ -223,6 +224,9 @@ static int32_t AllocPackageBuffer(InputDevice *inputDev) case INDEV_TYPE_ROCKER: pkgNum = DEFAULT_ROCKER_BUF_PKG_NUM; break; + case INDEV_TYPE_TRACKBALL: + pkgNum = DEFAULT_TRACKBALL_BUF_PKG_NUM; + break; default: HDF_LOGE("%s: devType not exist", __func__); return HDF_FAILURE; diff --git a/model/input/driver/hdf_input_device_manager.h b/model/input/driver/hdf_input_device_manager.h index be36197ab..38d69fa6c 100644 --- a/model/input/driver/hdf_input_device_manager.h +++ b/model/input/driver/hdf_input_device_manager.h @@ -134,6 +134,7 @@ enum InputDevType { INDEV_TYPE_MOUSE, /* Mouse */ INDEV_TYPE_KEYBOARD, /* Keyboard */ INDEV_TYPE_ROCKER, /* ROCKER */ + INDEV_TYPE_TRACKBALL, /* TRACKBALL */ INDEV_TYPE_UNKNOWN, /* Unknown input device type */ }; -- Gitee From f8fea5d0e6c1f77e56794d352a667b2f6e45761f Mon Sep 17 00:00:00 2001 From: YOUR_NAME Date: Thu, 2 Sep 2021 11:56:59 +0000 Subject: [PATCH 2/7] add trackball Signed-off-by: YOUR_NAME --- model/input/driver/hdf_hid_adapter.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/model/input/driver/hdf_hid_adapter.c b/model/input/driver/hdf_hid_adapter.c index 2c22a66b6..e761236b1 100644 --- a/model/input/driver/hdf_hid_adapter.c +++ b/model/input/driver/hdf_hid_adapter.c @@ -151,7 +151,8 @@ static void SetInputDevAbility(InputDevice *inputDev) MEMCPY_CHECK_RETURN(ret); for (int i = 0; i < BITS_TO_LONG(ABS_CNT); i++) { if (inputDev->abilitySet.absCode[i] != 0) { - memcpy_s(inputDev->attrSet.axisInfo, sizeof(AbsAttr) * ABS_CNT, info->axisInfo, sizeof(AbsAttr) * ABS_CNT); + ret = memcpy_s(inputDev->attrSet.axisInfo, sizeof(AbsAttr) * ABS_CNT, info->axisInfo, sizeof(AbsAttr) * ABS_CNT); + MEMCPY_CHECK_RETURN(ret); break; } } -- Gitee From 3e7c506dbd28c312f37e3478ca4b3401446e754b Mon Sep 17 00:00:00 2001 From: YOUR_NAME Date: Thu, 2 Sep 2021 12:17:16 +0000 Subject: [PATCH 3/7] add trackball Signed-off-by: YOUR_NAME --- model/input/driver/hdf_hid_adapter.h | 2 +- model/input/driver/hdf_input_device_manager.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/model/input/driver/hdf_hid_adapter.h b/model/input/driver/hdf_hid_adapter.h index 321a8d592..83efe6140 100644 --- a/model/input/driver/hdf_hid_adapter.h +++ b/model/input/driver/hdf_hid_adapter.h @@ -93,7 +93,7 @@ enum HidType { }; void SendInfoToHdf(HidInfo *info); -void* HidRegisterHdfInputDev(HidInfo *dev); +void* HidRegisterHdfInputDev(HidInfo *info); void HidUnregisterHdfInputDev(const void *inputDev); void HidReportEvent(const void *inputDev, uint32_t type, uint32_t code, int32_t value); diff --git a/model/input/driver/hdf_input_device_manager.c b/model/input/driver/hdf_input_device_manager.c index 60d1422e0..b7be4010a 100644 --- a/model/input/driver/hdf_input_device_manager.c +++ b/model/input/driver/hdf_input_device_manager.c @@ -251,7 +251,7 @@ static uint32_t AllocDeviceID(InputDevice *inputDev) uint32_t idList[MAX_INPUT_DEV_NUM + 1]; uint32_t id; (void)memset_s(idList, (MAX_INPUT_DEV_NUM + 1) * sizeof(uint32_t), 0, - (MAX_INPUT_DEV_NUM + 1) * sizeof(uint32_t)); + (MAX_INPUT_DEV_NUM + 1) * sizeof(uint32_t)); while (tmpDev != NULL) { if (idList[tmpDev->devId] == 0) { idList[tmpDev->devId] = FILLER_FLAG; -- Gitee From 15e1b845287de525ba3765148906ea6fde9b04c7 Mon Sep 17 00:00:00 2001 From: YOUR_NAME Date: Thu, 2 Sep 2021 12:20:50 +0000 Subject: [PATCH 4/7] add trackball Signed-off-by: YOUR_NAME --- model/input/driver/hdf_hid_adapter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/input/driver/hdf_hid_adapter.c b/model/input/driver/hdf_hid_adapter.c index e761236b1..4b7289e7d 100644 --- a/model/input/driver/hdf_hid_adapter.c +++ b/model/input/driver/hdf_hid_adapter.c @@ -352,7 +352,7 @@ static int32_t HidGetDeviceAttr(InputDevice *inputDev, struct HdfSBuf *reply) HDF_LOGE("%s: enter", __func__); ret = strncpy_s(inputDev->attrSet.devName, DEV_NAME_LEN, inputDev->devName, strlen(inputDev->devName)); - if (ret) { + if (ret != 0) { HDF_LOGE("%s: copy name from inputDev failed, ret = %d", __func__, ret); return HDF_FAILURE; } -- Gitee From bf7773896d22b90145d75431cb2d71bcc2896f3b Mon Sep 17 00:00:00 2001 From: YOUR_NAME Date: Thu, 2 Sep 2021 12:56:05 +0000 Subject: [PATCH 5/7] add trackball Signed-off-by: YOUR_NAME --- model/input/driver/hdf_hid_adapter.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/model/input/driver/hdf_hid_adapter.c b/model/input/driver/hdf_hid_adapter.c index 4b7289e7d..83b3c15b6 100644 --- a/model/input/driver/hdf_hid_adapter.c +++ b/model/input/driver/hdf_hid_adapter.c @@ -151,7 +151,8 @@ static void SetInputDevAbility(InputDevice *inputDev) MEMCPY_CHECK_RETURN(ret); for (int i = 0; i < BITS_TO_LONG(ABS_CNT); i++) { if (inputDev->abilitySet.absCode[i] != 0) { - ret = memcpy_s(inputDev->attrSet.axisInfo, sizeof(AbsAttr) * ABS_CNT, info->axisInfo, sizeof(AbsAttr) * ABS_CNT); + ret = memcpy_s(inputDev->attrSet.axisInfo, sizeof(AbsAttr) * ABS_CNT, + info->axisInfo, sizeof(AbsAttr) * ABS_CNT); MEMCPY_CHECK_RETURN(ret); break; } -- Gitee From 1eeb6bfa79483e8f136323027b3a392962d36344 Mon Sep 17 00:00:00 2001 From: YOUR_NAME Date: Fri, 3 Sep 2021 01:31:59 +0000 Subject: [PATCH 6/7] add trackball Signed-off-by: YOUR_NAME --- model/input/driver/hdf_hid_adapter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/input/driver/hdf_hid_adapter.c b/model/input/driver/hdf_hid_adapter.c index 83b3c15b6..56e896d9e 100644 --- a/model/input/driver/hdf_hid_adapter.c +++ b/model/input/driver/hdf_hid_adapter.c @@ -149,7 +149,7 @@ static void SetInputDevAbility(InputDevice *inputDev) ret = memcpy_s(inputDev->abilitySet.switchCode, len * BITS_TO_LONG(SW_CNT), info->switchCode, len * BITS_TO_LONG(SW_CNT)); MEMCPY_CHECK_RETURN(ret); - for (int i = 0; i < BITS_TO_LONG(ABS_CNT); i++) { + for (int i = 0; i < BITS_TO_LONG(ABS_CNT); i++) { if (inputDev->abilitySet.absCode[i] != 0) { ret = memcpy_s(inputDev->attrSet.axisInfo, sizeof(AbsAttr) * ABS_CNT, info->axisInfo, sizeof(AbsAttr) * ABS_CNT); -- Gitee From 3fcd1ac76962a608feaf1c7c467550383a8fc3b8 Mon Sep 17 00:00:00 2001 From: YOUR_NAME Date: Fri, 3 Sep 2021 02:30:32 +0000 Subject: [PATCH 7/7] add trackball Signed-off-by: YOUR_NAME --- model/input/driver/hdf_hid_adapter.h | 8 ++++---- model/input/driver/hdf_input_device_manager.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/model/input/driver/hdf_hid_adapter.h b/model/input/driver/hdf_hid_adapter.h index 83efe6140..ed04dad8a 100644 --- a/model/input/driver/hdf_hid_adapter.h +++ b/model/input/driver/hdf_hid_adapter.h @@ -92,9 +92,9 @@ enum HidType { HID_TYPE_UNKNOWN, /* Unknown input device type */ }; -void SendInfoToHdf(HidInfo *info); -void* HidRegisterHdfInputDev(HidInfo *info); -void HidUnregisterHdfInputDev(const void *inputDev); -void HidReportEvent(const void *inputDev, uint32_t type, uint32_t code, int32_t value); +void SendInfoToHdf(HidInfo* info); +void* HidRegisterHdfInputDev(HidInfo* info); +void HidUnregisterHdfInputDev(const void* inputDev); +void HidReportEvent(const void* inputDev, uint32_t type, uint32_t code, int32_t value); #endif diff --git a/model/input/driver/hdf_input_device_manager.h b/model/input/driver/hdf_input_device_manager.h index 38d69fa6c..98d247d88 100644 --- a/model/input/driver/hdf_input_device_manager.h +++ b/model/input/driver/hdf_input_device_manager.h @@ -166,6 +166,6 @@ enum TouchIoctlCmd { }; InputManager* GetInputManager(void); int32_t RegisterInputDevice(InputDevice *device); -void UnregisterInputDevice(InputDevice *device); +void UnregisterInputDevice(InputDevice *inputDev); #endif \ No newline at end of file -- Gitee