1# Input 2 3 4## 概述 5 6Input模块驱动接口声明。 7 8本模块为Input服务提供相关驱动接口,包括Input设备的打开和关闭、Input事件获取、设备信息查询、回调函数注册、特性状态控制等接口。 9 10**起始版本:** 1.0 11 12 13## 汇总 14 15 16### 文件 17 18| 名称 | 描述 | 19| -------- | -------- | 20| [input_controller.h](input__controller_8h.md) | 描述Input设备业务控制相关的接口声明。 | 21| [input_manager.h](input__manager_8h.md) | 描述Input设备管理相关的接口声明。 | 22| [input_reporter.h](input__reporter_8h.md) | 描述Input设备数据上报相关的接口声明。 | 23| [input_type.h](input__type_8h.md) | Input设备相关的类型定义,定义了Input设备驱动接口所使用的结构体及枚举类型。 | 24 25 26### 类 27 28| 名称 | 描述 | 29| -------- | -------- | 30| struct [InputController](_input_controller.md) | 提供Input设备业务控制相关的接口。 | 31| struct [InputManager](_input_manager.md) | 提供Input设备管理相关的接口。 | 32| struct [IInputInterface](_i_input_interface.md) | 定义用于提供Input设备驱动程序功能的接口。 | 33| struct [InputReporter](_input_reporter.md) | 提供Input设备数据上报相关的接口。 | 34| struct [InputEventPackage](_input_event_package.md) | Input事件数据包结构。 | 35| struct [InputHotPlugEvent](_input_hot_plug_event.md) | 热插拔事件数据包结构。 | 36| struct [InputDevDesc](_input_dev_desc.md) | Input设备描述信息。 | 37| struct [InputEventCb](_input_event_cb.md) | 此结构体定义了输入事件回调函数并提供给Input服务使用。 | 38| struct [InputHostCb](_input_host_cb.md) | 此结构体定义了热插拔事件上报回调函数并提供给Input服务使用。 | 39| struct [InputDevAbility](_input_dev_ability.md) | Input设备的能力属性,存储支持事件的位图。 | 40| struct [InputDimensionInfo](_input_dimension_info.md) | Input设备的维度信息。 | 41| struct [InputDevIdentify](_input_dev_identify.md) | Input设备的识别信息。 | 42| struct [InputDevAttr](_input_dev_attr.md) | Input设备属性。 | 43| struct [InputDeviceInfo](_input_device_info.md) | Input设备基础设备信息。 | 44| struct [InputExtraCmd](_input_extra_cmd.md) | 扩展指令的数据结构。 | 45 46 47### 宏定义 48 49| 名称 | 描述 | 50| -------- | -------- | 51| [MAX_INPUT_DEV_NUM](#max_input_dev_num) 32 | Input设备数量的最大值。 | 52| [CHIP_INFO_LEN](#chip_info_len) 10 | 芯片信息长度。 | 53| [CHIP_NAME_LEN](#chip_name_len) 10 | 芯片名称长度。 | 54| [VENDOR_NAME_LEN](#vendor_name_len) 10 | 厂商名称长度。 | 55| [DEV_NAME_LEN](#dev_name_len) 64 | Input设备名称长度。 | 56| [SELF_TEST_RESULT_LEN](#self_test_result_len) 20 | 自测结果长度。 | 57| [DEV_MANAGER_SERVICE_NAME](#dev_manager_service_name) "hdf_input_host" | Input设备节点服务名称。 | 58| [DIV_ROUND_UP](#div_round_up)(nr, d) (((nr) + (d) - 1) / (d)) | 向上取整计算公式。 | 59| [BYTE_HAS_BITS](#byte_has_bits) 8 | 一个字节所包含的比特数。 | 60| [BITS_TO_UINT64](#bits_to_uint64)(count) [DIV_ROUND_UP](#div_round_up)(count, [BYTE_HAS_BITS](#byte_has_bits) \* sizeof(uint64_t)) | 比特与64位无符号整数的转换公式。 | 61| [HDF_FF_CNT](#hdf_ff_cnt) (0x7f + 1) | Input设备发送力反馈命令的数量最大值。 | 62 63 64### 枚举 65 66| 名称 | 描述 | 67| -------- | -------- | 68| [RetStatus](#retstatus) { INPUT_SUCCESS = 0, INPUT_FAILURE = -1, INPUT_INVALID_PARAM = -2, INPUT_NOMEM = -3, INPUT_NULL_PTR = -4, INPUT_TIMEOUT = -5, INPUT_UNSUPPORTED = -6 } | 定义返回值类型。 | 69| [InputDevType](#inputdevtype) { INDEV_TYPE_TOUCH, INDEV_TYPE_KEY, INDEV_TYPE_KEYBOARD, INDEV_TYPE_MOUSE, INDEV_TYPE_BUTTON, INDEV_TYPE_CROWN, INDEV_TYPE_ENCODER, INDEV_TYPE_UNKNOWN } | 定义Input设备类型。 | 70| [PowerStatus](#powerstatus) { INPUT_RESUME, INPUT_SUSPEND, INPUT_LOW_POWER, INPUT_POWER_STATUS_UNKNOWN } | 定义电源状态。 | 71| [CapacitanceTest](#capacitancetest) { BASE_TEST, FULL_TEST, MMI_TEST, RUNNING_TEST, TEST_TYPE_UNKNOWN } | 定义容值测试类型。 | 72 73 74### 函数 75 76| 名称 | 描述 | 77| -------- | -------- | 78| int32_t [GetInputInterface](#getinputinterface) ([IInputInterface](_i_input_interface.md) \*\*interface) | Input服务通过调用此接口获取操作Input设备的所有接口。 | 79 80 81## 宏定义说明 82 83 84### BITS_TO_UINT64 85 86``` 87#define BITS_TO_UINT64( count) DIV_ROUND_UP(count, BYTE_HAS_BITS * sizeof(uint64_t)) 88``` 89 90**描述** 91 92 93比特与64位无符号整数的转换公式 94 95 96### BYTE_HAS_BITS 97 98``` 99#define BYTE_HAS_BITS 8 100``` 101 102**描述** 103 104 105一个字节所包含的比特数 106 107 108### CHIP_INFO_LEN 109 110``` 111#define CHIP_INFO_LEN 10 112``` 113 114**描述** 115 116 117芯片信息长度 118 119 120### CHIP_NAME_LEN 121 122``` 123#define CHIP_NAME_LEN 10 124``` 125 126**描述** 127 128 129芯片名称长度 130 131 132### DEV_MANAGER_SERVICE_NAME 133 134``` 135#define DEV_MANAGER_SERVICE_NAME "hdf_input_host" 136``` 137 138**描述** 139 140 141Input设备节点服务名称 142 143 144### DEV_NAME_LEN 145 146``` 147#define DEV_NAME_LEN 64 148``` 149 150**描述** 151 152 153Input设备名称长度 154 155 156### DIV_ROUND_UP 157 158``` 159#define DIV_ROUND_UP( nr, d ) (((nr) + (d) - 1) / (d)) 160``` 161 162**描述** 163 164 165向上取整计算公式 166 167 168### HDF_FF_CNT 169 170``` 171#define HDF_FF_CNT (0x7f + 1) 172``` 173 174**描述** 175 176 177Input设备发送力反馈命令的数量最大值 178 179 180### MAX_INPUT_DEV_NUM 181 182``` 183#define MAX_INPUT_DEV_NUM 32 184``` 185 186**描述** 187 188 189Input设备数量的最大值 190 191 192### SELF_TEST_RESULT_LEN 193 194``` 195#define SELF_TEST_RESULT_LEN 20 196``` 197 198**描述** 199 200 201自测试结果长度 202 203 204### VENDOR_NAME_LEN 205 206``` 207#define VENDOR_NAME_LEN 10 208``` 209 210**描述** 211 212 213厂商名称长度 214 215 216## 枚举类型说明 217 218 219### CapacitanceTest 220 221``` 222enum CapacitanceTest 223``` 224 225**描述** 226 227 228定义容值测试类型。 229 230**起始版本:** 1.0 231 232| 枚举值 | 描述 | 233| -------- | -------- | 234| BASE_TEST | 基础容值测试 | 235| FULL_TEST | 全量容值自检测试 | 236| MMI_TEST | MMI容值测试 | 237| RUNNING_TEST | 老化容值测试 | 238| TEST_TYPE_UNKNOWN | 未知的测试类型 | 239 240 241### InputDevType 242 243``` 244enum InputDevType 245``` 246 247**描述** 248 249 250定义Input设备类型。 251 252**起始版本:** 1.0 253 254| 枚举值 | 描述 | 255| -------- | -------- | 256| INDEV_TYPE_TOUCH | 触摸屏 | 257| INDEV_TYPE_KEY | 物理按键 | 258| INDEV_TYPE_KEYBOARD | 键盘 | 259| INDEV_TYPE_MOUSE | 鼠标 | 260| INDEV_TYPE_BUTTON | 虚拟按键 | 261| INDEV_TYPE_CROWN | 表冠 | 262| INDEV_TYPE_ENCODER | 自定义编码的特定功能或者事件 | 263| INDEV_TYPE_UNKNOWN | 未知输入设备类型 | 264 265 266### PowerStatus 267 268``` 269enum PowerStatus 270``` 271 272**描述** 273 274 275定义电源状态。 276 277**起始版本:** 1.0 278 279| 枚举值 | 描述 | 280| -------- | -------- | 281| INPUT_RESUME | 正常唤醒 | 282| INPUT_SUSPEND | 休眠下电模式 | 283| INPUT_LOW_POWER | 休眠低功耗模式 | 284| INPUT_POWER_STATUS_UNKNOWN | 未知电源状态 | 285 286 287### RetStatus 288 289``` 290enum RetStatus 291``` 292 293**描述** 294 295 296定义返回值类型。 297 298**起始版本:** 1.0 299 300| 枚举值 | 描述 | 301| -------- | -------- | 302| INPUT_SUCCESS | 成功 | 303| INPUT_FAILURE | 失败 | 304| INPUT_INVALID_PARAM | 无效参数 | 305| INPUT_NOMEM | 内存不足 | 306| INPUT_NULL_PTR | 空指针 | 307| INPUT_TIMEOUT | 执行超时 | 308| INPUT_UNSUPPORTED | 特性不支持 | 309 310 311## 函数说明 312 313 314### GetInputInterface() 315 316``` 317int32_t GetInputInterface (IInputInterface ** interface) 318``` 319 320**描述** 321 322 323Input服务通过调用此接口获取操作Input设备的所有接口。 324 325**起始版本:** 1.0 326 327**参数:** 328 329| 名称 | 描述 | 330| -------- | -------- | 331| interface | 对Input设备进行接口操作的指针,通常在Input服务启动后,通过调用此函数获取Input设备操作接口。 | 332 333**返回:** 334 335INPUT_SUCCESS 表示执行成功。 336 337其他值表示执行失败,具体错误码查看[RetStatus](#retstatus)。 338