# Input ## 概述 Input模å—驱动接å£å£°æ˜Žã€‚ 本模å—为InputæœåŠ¡æ供相关驱动接å£ï¼ŒåŒ…括Input设备的打开和关é—ã€Input事件获å–ã€è®¾å¤‡ä¿¡æ¯æŸ¥è¯¢ã€å›žè°ƒå‡½æ•°æ³¨å†Œã€ç‰¹æ€§çŠ¶æ€æŽ§åˆ¶ç‰æŽ¥å£ã€‚ **起始版本:** 1.0 ## 汇总 ### 文件 | å称 | æè¿° | | -------- | -------- | | [input_controller.h](input__controller_8h.md) | æè¿°Input设备业务控制相关的接å£å£°æ˜Žã€‚ | | [input_manager.h](input__manager_8h.md) | æè¿°Input设备管ç†ç›¸å…³çš„接å£å£°æ˜Žã€‚ | | [input_reporter.h](input__reporter_8h.md) | æè¿°Input设备数æ®ä¸ŠæŠ¥ç›¸å…³çš„接å£å£°æ˜Žã€‚ | | [input_type.h](input__type_8h.md) | Input设备相关的类型定义,定义了Input设备驱动接å£æ‰€ä½¿ç”¨çš„结构体åŠæžšä¸¾ç±»åž‹ã€‚ | ### ç±» | å称 | æè¿° | | -------- | -------- | | struct [InputController](_input_controller.md) | æä¾›Input设备业务控制相关的接å£ã€‚ | | struct [InputManager](_input_manager.md) | æä¾›Input设备管ç†ç›¸å…³çš„接å£ã€‚ | | struct [IInputInterface](_i_input_interface.md) | 定义用于æä¾›Input设备驱动程åºåŠŸèƒ½çš„接å£ã€‚ | | struct [InputReporter](_input_reporter.md) | æä¾›Input设备数æ®ä¸ŠæŠ¥ç›¸å…³çš„接å£ã€‚ | | struct [InputEventPackage](_input_event_package.md) | Input事件数æ®åŒ…结构。 | | struct [InputHotPlugEvent](_input_hot_plug_event.md) | çƒæ’拔事件数æ®åŒ…结构。 | | struct [InputDevDesc](_input_dev_desc.md) | Input设备æè¿°ä¿¡æ¯ã€‚ | | struct [InputEventCb](_input_event_cb.md) | æ¤ç»“构体定义了输入事件回调函数并æ供给InputæœåŠ¡ä½¿ç”¨ã€‚ | | struct [InputHostCb](_input_host_cb.md) | æ¤ç»“构体定义了çƒæ’拔事件上报回调函数并æ供给InputæœåŠ¡ä½¿ç”¨ã€‚ | | struct [InputDevAbility](_input_dev_ability.md) | Input设备的能力属性,å˜å‚¨æ”¯æŒäº‹ä»¶çš„ä½å›¾ã€‚ | | struct [InputDimensionInfo](_input_dimension_info.md) | Input设备的维度信æ¯ã€‚ | | struct [InputDevIdentify](_input_dev_identify.md) | Input设备的识别信æ¯ã€‚ | | struct [InputDevAttr](_input_dev_attr.md) | Input设备属性。 | | struct [InputDeviceInfo](_input_device_info.md) | Input设备基础设备信æ¯ã€‚ | | struct [InputExtraCmd](_input_extra_cmd.md) | 扩展指令的数æ®ç»“构。 | ### å®å®šä¹‰ | å称 | æè¿° | | -------- | -------- | | [MAX_INPUT_DEV_NUM](#max_input_dev_num) 32 | Input设备数é‡çš„最大值。 | | [CHIP_INFO_LEN](#chip_info_len) 10 | 芯片信æ¯é•¿åº¦ã€‚ | | [CHIP_NAME_LEN](#chip_name_len) 10 | 芯片å称长度。 | | [VENDOR_NAME_LEN](#vendor_name_len) 10 | 厂商å称长度。 | | [DEV_NAME_LEN](#dev_name_len) 64 | Input设备å称长度。 | | [SELF_TEST_RESULT_LEN](#self_test_result_len) 20 | 自测结果长度。 | | [DEV_MANAGER_SERVICE_NAME](#dev_manager_service_name) "hdf_input_host" | Input设备节点æœåŠ¡å称。 | | [DIV_ROUND_UP](#div_round_up)(nr, d) (((nr) + (d) - 1) / (d)) | å‘上å–整计算公å¼ã€‚ | | [BYTE_HAS_BITS](#byte_has_bits) 8 | 一个å—节所包å«çš„比特数。 | | [BITS_TO_UINT64](#bits_to_uint64)(count) [DIV_ROUND_UP](#div_round_up)(count, [BYTE_HAS_BITS](#byte_has_bits) \* sizeof(uint64_t)) | 比特与64ä½æ— 符å·æ•´æ•°çš„转æ¢å…¬å¼ã€‚ | | [HDF_FF_CNT](#hdf_ff_cnt) (0x7f + 1) | Input设备å‘é€åŠ›å馈命令的数é‡æœ€å¤§å€¼ã€‚ | ### 枚举 | å称 | æè¿° | | -------- | -------- | | [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 } | 定义返回值类型。 | | [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设备类型。 | | [PowerStatus](#powerstatus) { INPUT_RESUME, INPUT_SUSPEND, INPUT_LOW_POWER, INPUT_POWER_STATUS_UNKNOWN } | 定义电æºçŠ¶æ€ã€‚ | | [CapacitanceTest](#capacitancetest) { BASE_TEST, FULL_TEST, MMI_TEST, RUNNING_TEST, TEST_TYPE_UNKNOWN } | 定义容值测试类型。 | ### 函数 | å称 | æè¿° | | -------- | -------- | | int32_t [GetInputInterface](#getinputinterface) ([IInputInterface](_i_input_interface.md) \*\*interface) | InputæœåŠ¡é€šè¿‡è°ƒç”¨æ¤æŽ¥å£èŽ·å–æ“作Input设备的所有接å£ã€‚ | ## å®å®šä¹‰è¯´æ˜Ž ### BITS_TO_UINT64 ``` #define BITS_TO_UINT64( count) DIV_ROUND_UP(count, BYTE_HAS_BITS * sizeof(uint64_t)) ``` **æè¿°** 比特与64ä½æ— 符å·æ•´æ•°çš„转æ¢å…¬å¼ ### BYTE_HAS_BITS ``` #define BYTE_HAS_BITS 8 ``` **æè¿°** 一个å—节所包å«çš„比特数 ### CHIP_INFO_LEN ``` #define CHIP_INFO_LEN 10 ``` **æè¿°** 芯片信æ¯é•¿åº¦ ### CHIP_NAME_LEN ``` #define CHIP_NAME_LEN 10 ``` **æè¿°** 芯片å称长度 ### DEV_MANAGER_SERVICE_NAME ``` #define DEV_MANAGER_SERVICE_NAME "hdf_input_host" ``` **æè¿°** Input设备节点æœåŠ¡å称 ### DEV_NAME_LEN ``` #define DEV_NAME_LEN 64 ``` **æè¿°** Input设备å称长度 ### DIV_ROUND_UP ``` #define DIV_ROUND_UP( nr, d ) (((nr) + (d) - 1) / (d)) ``` **æè¿°** å‘上å–æ•´è®¡ç®—å…¬å¼ ### HDF_FF_CNT ``` #define HDF_FF_CNT (0x7f + 1) ``` **æè¿°** Input设备å‘é€åŠ›å馈命令的数é‡æœ€å¤§å€¼ ### MAX_INPUT_DEV_NUM ``` #define MAX_INPUT_DEV_NUM 32 ``` **æè¿°** Input设备数é‡çš„最大值 ### SELF_TEST_RESULT_LEN ``` #define SELF_TEST_RESULT_LEN 20 ``` **æè¿°** 自测试结果长度 ### VENDOR_NAME_LEN ``` #define VENDOR_NAME_LEN 10 ``` **æè¿°** 厂商å称长度 ## 枚举类型说明 ### CapacitanceTest ``` enum CapacitanceTest ``` **æè¿°** 定义容值测试类型。 **起始版本:** 1.0 | 枚举值 | æè¿° | | -------- | -------- | | BASE_TEST | 基础容值测试 | | FULL_TEST | å…¨é‡å®¹å€¼è‡ªæ£€æµ‹è¯• | | MMI_TEST | MMI容值测试 | | RUNNING_TEST | è€åŒ–容值测试 | | TEST_TYPE_UNKNOWN | 未知的测试类型 | ### InputDevType ``` enum InputDevType ``` **æè¿°** 定义Input设备类型。 **起始版本:** 1.0 | 枚举值 | æè¿° | | -------- | -------- | | INDEV_TYPE_TOUCH | è§¦æ‘¸å± | | INDEV_TYPE_KEY | 物ç†æŒ‰é”® | | INDEV_TYPE_KEYBOARD | 键盘 | | INDEV_TYPE_MOUSE | é¼ æ ‡ | | INDEV_TYPE_BUTTON | 虚拟按键 | | INDEV_TYPE_CROWN | è¡¨å† | | INDEV_TYPE_ENCODER | 自定义编ç 的特定功能或者事件 | | INDEV_TYPE_UNKNOWN | 未知输入设备类型 | ### PowerStatus ``` enum PowerStatus ``` **æè¿°** 定义电æºçŠ¶æ€ã€‚ **起始版本:** 1.0 | 枚举值 | æè¿° | | -------- | -------- | | INPUT_RESUME | æ£å¸¸å”¤é†’ | | INPUT_SUSPEND | ä¼‘çœ ä¸‹ç”µæ¨¡å¼ | | INPUT_LOW_POWER | ä¼‘çœ ä½ŽåŠŸè€—æ¨¡å¼ | | INPUT_POWER_STATUS_UNKNOWN | 未知电æºçŠ¶æ€ | ### RetStatus ``` enum RetStatus ``` **æè¿°** 定义返回值类型。 **起始版本:** 1.0 | 枚举值 | æè¿° | | -------- | -------- | | INPUT_SUCCESS | æˆåŠŸ | | INPUT_FAILURE | 失败 | | INPUT_INVALID_PARAM | æ— æ•ˆå‚æ•° | | INPUT_NOMEM | 内å˜ä¸è¶³ | | INPUT_NULL_PTR | 空指针 | | INPUT_TIMEOUT | 执行超时 | | INPUT_UNSUPPORTED | 特性ä¸æ”¯æŒ | ## 函数说明 ### GetInputInterface() ``` int32_t GetInputInterface (IInputInterface ** interface) ``` **æè¿°** InputæœåŠ¡é€šè¿‡è°ƒç”¨æ¤æŽ¥å£èŽ·å–æ“作Input设备的所有接å£ã€‚ **起始版本:** 1.0 **å‚æ•°:** | å称 | æè¿° | | -------- | -------- | | interface | 对Input设备进行接å£æ“作的指针,通常在InputæœåŠ¡å¯åŠ¨åŽï¼Œé€šè¿‡è°ƒç”¨æ¤å‡½æ•°èŽ·å–Input设备æ“作接å£ã€‚ | **返回:** INPUT_SUCCESS 表示执行æˆåŠŸã€‚ 其他值表示执行失败,具体错误ç 查看[RetStatus](#retstatus)。