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