1# IInputInterfaces
2
3
4## 概述
5
6Input模块向上层服务提供了统一接口。
7
8上层服务开发人员可根据Input模块提供的向上统一接口实现Input设备的打开和关闭、Input事件获取、设备信息查询、回调函数注册、特性状态控制等功能。
9
10**起始版本:** 3.2
11
12**相关模块:**[HdiInput](_hdi_input.md)
13
14
15## 汇总
16
17
18### Public 成员函数
19
20| 名称 | 描述 |
21| -------- | -------- |
22| [ScanInputDevice](#scaninputdevice) ([out] struct [DevDesc](_dev_desc_v10.md)[] staArr) | Input服务用于扫描所有在线设备。  |
23| [OpenInputDevice](#openinputdevice) ([in] unsigned int devIndex) | Input服务打开对应设备的设备文件。  |
24| [CloseInputDevice](#closeinputdevice) ([in] unsigned int devIndex) | Input服务关闭对应设备的设备文件。  |
25| [GetInputDevice](#getinputdevice) ([in] unsigned int devIndex, [out] struct [DeviceInfo](_device_info_v10.md) devInfo) | Input服务获取devIndex对应的Input设备信息。  |
26| [GetInputDeviceList](#getinputdevicelist) ([out] unsigned int devNum, [out] struct [DeviceInfo](_device_info_v10.md)[] devList, [in]unsigned int size) | Input服务获取所有Input设备列表的设备信息。  |
27| [SetPowerStatus](#setpowerstatus) ([in] unsigned int devIndex, [in] unsigned int status) | 设置devIndex对应的Input设备的电源状态。  |
28| [GetPowerStatus](#getpowerstatus) ([in] unsigned int devIndex, [out] unsigned int status) | 获取devIndex对应Input设备的电源状态。  |
29| [GetDeviceType](#getdevicetype) ([in] unsigned int devIndex, [out] unsigned int deviceType) | 获取devIndex对应的Input设备的类型。  |
30| [GetChipInfo](#getchipinfo) ([in] unsigned int devIndex, [out] String chipInfo) | 获取devIndex对应的Input设备的编码信息。  |
31| [GetVendorName](#getvendorname) ([in] unsigned int devIndex, [out] String vendorName) | 获取devIndex对应的Input设备的模组厂商名。  |
32| [GetChipName](#getchipname) ([in] unsigned int devIndex, [out] String chipName) | 获取devIndex对应的Input设备的驱动芯片名。  |
33| [SetGestureMode](#setgesturemode) ([in] unsigned int devIndex, [in] unsigned int gestureMode) | 设置devIndex对应的Input设备的手势模式。  |
34| [RunCapacitanceTest](#runcapacitancetest) ([in] unsigned int devIndex, [in] unsigned int testType, [out] String result, [in] unsigned int length) | 执行容值自检测试。  |
35| [RunExtraCommand](#runextracommand) ([in] unsigned int devIndex, [in] struct [ExtraCmd](_extra_cmd_v10.md) cmd) | 执行拓展指令。  |
36| [RegisterReportCallback](#registerreportcallback) ([in] unsigned int devIndex, [in] [IInputCallback](interface_i_input_callback_v10.md) eventPkgCallback) | 注册devIndex对应的Input设备的回调函数。  |
37| [UnregisterReportCallback](#unregisterreportcallback) ([in] unsigned int devIndex) | 注销devIndex对应的Input设备的回调函数。  |
38| [RegisterHotPlugCallback](#registerhotplugcallback) ([in] [IInputCallback](interface_i_input_callback_v10.md) hotPlugCallback) | 注册Input设备的热插拔回调函数。  |
39| [UnregisterHotPlugCallback](#unregisterhotplugcallback) () | 注销Input设备的热插拔回调函数。  |
40
41
42## 成员函数说明
43
44
45### CloseInputDevice()
46
47```
48IInputInterfaces::CloseInputDevice ([in] unsigned int devIndex)
49```
50**描述**
51
52Input服务关闭对应设备的设备文件。
53
54**起始版本:** 3.2
55
56**参数:**
57
58| 名称 | 描述 |
59| -------- | -------- |
60| devIndex | Input设备索引,用于标志Input设备,取值从0开始,最多支持32个设备。 |
61
62**返回:**
63
64如果操作成功,则返回0。
65
66如果操作失败,则返回负值。
67
68
69### GetChipInfo()
70
71```
72IInputInterfaces::GetChipInfo ([in] unsigned int devIndex, [out] String chipInfo )
73```
74**描述**
75
76获取devIndex对应的Input设备的编码信息。
77
78一款产品通常会有多家模组和Driver IC,上层应用如果关注具体器件型号,则通过此接口来获取。
79
80**起始版本:** 3.2
81
82**参数:**
83
84| 名称 | 描述 |
85| -------- | -------- |
86| devIndex | Input设备索引,用于标志Input设备,取值从0开始,最多支持32个设备。  |
87| chipInfo | 获取的对应设备索引的器件编码信息。 |
88
89**返回:**
90
91如果操作成功,则返回0。
92
93如果操作失败,则返回负值。
94
95
96### GetChipName()
97
98```
99IInputInterfaces::GetChipName ([in] unsigned int devIndex, [out] String chipName )
100```
101**描述**
102
103获取devIndex对应的Input设备的驱动芯片名。
104
105**起始版本:** 3.2
106
107**参数:**
108
109| 名称 | 描述 |
110| -------- | -------- |
111| devIndex | Input设备索引,用于标志Input设备,取值从0开始,最多支持32个设备。  |
112| chipName | 获取的对应设备索引的驱动芯片名。 |
113
114**返回:**
115
116如果操作成功,则返回0。
117
118如果操作失败,则返回负值。
119
120
121### GetDeviceType()
122
123```
124IInputInterfaces::GetDeviceType ([in] unsigned int devIndex, [out] unsigned int deviceType )
125```
126**描述**
127
128获取devIndex对应的Input设备的类型。
129
130**起始版本:** 3.2
131
132**参数:**
133
134| 名称 | 描述 |
135| -------- | -------- |
136| devIndex | Input设备索引,用于标志Input设备,取值从0开始,最多支持32个设备。  |
137| deviceType | 获取的对应设备索引的设备类型,如0表示触屏、1表示物理按键、2表示键盘、3表示鼠标等。 |
138
139**返回:**
140
141如果操作成功,则返回0。
142
143如果操作失败,则返回负值。
144
145
146### GetInputDevice()
147
148```
149IInputInterfaces::GetInputDevice ([in] unsigned int devIndex, [out] struct DeviceInfo devInfo )
150```
151**描述**
152
153Input服务获取devIndex对应的Input设备信息。
154
155**起始版本:** 3.2
156
157**参数:**
158
159| 名称 | 描述 |
160| -------- | -------- |
161| devIndex | Input设备索引,用于标志Input设备,取值从0开始,最多支持32个设备。  |
162| devInfo | 即devIndex对应的设备的设备信息,具体参考[DeviceInfo](_device_info_v10.md)。 |
163
164**返回:**
165
166如果操作成功,则返回0。
167
168如果操作失败,则返回负值。
169
170
171### GetInputDeviceList()
172
173```
174IInputInterfaces::GetInputDeviceList ([out] unsigned int devNum, [out] struct DeviceInfo[] devList, [in] unsigned int size )
175```
176**描述**
177
178Input服务获取所有Input设备列表的设备信息。
179
180**起始版本:** 3.2
181
182**参数:**
183
184| 名称 | 描述 |
185| -------- | -------- |
186| devNum | 当前已经注册过的所有Input设备的总数。  |
187| devList | Input设备列表所对应的设备信息,具体参考[DeviceInfo](_device_info_v10.md)。  |
188| size | 即指定deviceList数组对应的元素个数。 |
189
190**返回:**
191
192如果操作成功,则返回0。
193
194如果操作失败,则返回负值。
195
196
197### GetPowerStatus()
198
199```
200IInputInterfaces::GetPowerStatus ([in] unsigned int devIndex, [out] unsigned int status )
201```
202**描述**
203
204获取devIndex对应Input设备的电源状态。
205
206在系统休眠或者唤醒时,Input服务或电源管理模块获取电源状态。
207
208**起始版本:** 3.2
209
210**参数:**
211
212| 名称 | 描述 |
213| -------- | -------- |
214| devIndex | Input设备索引,用于标志Input设备,取值从0开始,最多支持32个设备。  |
215| status | 获取的对应设备索引的电源状态,如0表示正常唤醒、1表示休眠下电、2表示低功耗、3表示未知电源状态等。 |
216
217**返回:**
218
219如果操作成功,则返回0。
220
221如果操作失败,则返回负值。
222
223
224### GetVendorName()
225
226```
227IInputInterfaces::GetVendorName ([in] unsigned int devIndex, [out] String vendorName )
228```
229**描述**
230
231获取devIndex对应的Input设备的模组厂商名。
232
233**起始版本:** 3.2
234
235**参数:**
236
237| 名称 | 描述 |
238| -------- | -------- |
239| devIndex | Input设备索引,用于标志Input设备,取值从0开始,最多支持32个设备。  |
240| vendorName | 获取的对应设备索引的模组厂商名。 |
241
242**返回:**
243
244如果操作成功,则返回0。
245
246如果操作失败,则返回负值。
247
248
249### OpenInputDevice()
250
251```
252IInputInterfaces::OpenInputDevice ([in] unsigned int devIndex)
253```
254**描述**
255
256Input服务打开对应设备的设备文件。
257
258**起始版本:** 3.2
259
260**参数:**
261
262| 名称 | 描述 |
263| -------- | -------- |
264| devIndex | Input设备索引,用于标志Input设备,取值从0开始,最多支持32个设备。 |
265
266**返回:**
267
268如果操作成功,则返回0。
269
270如果操作失败,则返回负值。
271
272
273### RegisterHotPlugCallback()
274
275```
276IInputInterfaces::RegisterHotPlugCallback ([in] IInputCallback hotPlugCallback)
277```
278**描述**
279
280注册Input设备的热插拔回调函数。
281
282Input服务通过此接口注册回调函数到HDI中,所有Input设备由此函数进行热插拔事件上报。
283
284**起始版本:** 3.2
285
286**参数:**
287
288| 名称 | 描述 |
289| -------- | -------- |
290| hotPlugCallback | 回调函数的函数指针。 |
291
292**返回:**
293
294如果操作成功,则返回0。
295
296如果操作失败,则返回负值。
297
298
299### RegisterReportCallback()
300
301```
302IInputInterfaces::RegisterReportCallback ([in] unsigned int devIndex, [in] IInputCallback eventPkgCallback )
303```
304**描述**
305
306注册devIndex对应的Input设备的回调函数。
307
308Input服务通过此接口注册数据回调函数到HDI中,HDI通过此回调函数上报Input事件。
309
310**起始版本:** 3.2
311
312**参数:**
313
314| 名称 | 描述 |
315| -------- | -------- |
316| devIndex | Input设备索引,用于标志Input设备,取值从0开始,最多支持32个设备。  |
317| eventPkgCallback | 回调函数的函数指针。 |
318
319**返回:**
320
321如果操作成功,则返回0。
322
323如果操作失败,则返回负值。
324
325
326### RunCapacitanceTest()
327
328```
329IInputInterfaces::RunCapacitanceTest ([in] unsigned int devIndex, [in] unsigned int testType, [out] String result, [in] unsigned int length )
330```
331**描述**
332
333执行容值自检测试。
334
335启动不同检测场景下的容值自检测试,并获取测试结果,容值自检项由器件厂商自定义, 一般包括RawData测试、短路检测、开路检测、干扰检测、行列差检测等测试项。
336
337**起始版本:** 3.2
338
339**参数:**
340
341| 名称 | 描述 |
342| -------- | -------- |
343| devIndex | Input设备索引,用于标志Input设备,取值从0开始,最多支持32个设备。  |
344| testType | 容值测试的测试类型,如0表示基础容值测试、1表示全量容值自检测试、2表示MMI容值测试、3表示老化容值测试等。  |
345| result | 容值测试的结果,成功则输出“SUCC”,失败则返回对应的错误提示。  |
346| length | 保存容值测试结果的内存长度。 |
347
348**返回:**
349
350如果操作成功,则返回0。
351
352如果操作失败,则返回负值。
353
354
355### RunExtraCommand()
356
357```
358IInputInterfaces::RunExtraCommand ([in] unsigned int devIndex, [in] struct ExtraCmd cmd )
359```
360**描述**
361
362执行拓展指令。
363
364**起始版本:** 3.2
365
366**参数:**
367
368| 名称 | 描述 |
369| -------- | -------- |
370| devIndex | Input设备索引,用于标志Input设备,取值从0开始,最多支持32个设备。  |
371| cmd | 拓展指令数据包,包括指令编码及参数,具体参考[ExtraCmd](_extra_cmd_v10.md)。 |
372
373**返回:**
374
375如果操作成功,则返回0。
376
377如果操作失败,则返回负值。
378
379
380### ScanInputDevice()
381
382```
383IInputInterfaces::ScanInputDevice ([out] struct DevDesc[] staArr)
384```
385**描述**
386
387Input服务用于扫描所有在线设备。
388
389**起始版本:** 3.2
390
391**参数:**
392
393| 名称 | 描述 |
394| -------- | -------- |
395| staArr | 存放Input设备扫描信息的数组,信息包含设备索引以及设备类型,具体参考[DevDesc](_dev_desc_v10.md)。 |
396
397**返回:**
398
399如果操作成功,则返回0。
400
401如果操作失败,则返回负值。
402
403
404### SetGestureMode()
405
406```
407IInputInterfaces::SetGestureMode ([in] unsigned int devIndex, [in] unsigned int gestureMode )
408```
409**描述**
410
411设置devIndex对应的Input设备的手势模式。
412
413上层应用开关手势模式,即设置手势模式的对应使能bit。
414
415**起始版本:** 3.2
416
417**参数:**
418
419| 名称 | 描述 |
420| -------- | -------- |
421| devIndex | Input设备索引,用于标志Input设备,取值从0开始,最多支持32个设备。  |
422| gestureMode | 手势模式的开关状态。 |
423
424**返回:**
425
426如果操作成功,则返回0。
427
428如果操作失败,则返回负值。
429
430
431### SetPowerStatus()
432
433```
434IInputInterfaces::SetPowerStatus ([in] unsigned int devIndex, [in] unsigned int status )
435```
436**描述**
437
438设置devIndex对应的Input设备的电源状态。
439
440在系统休眠或者唤醒时,Input服务或电源管理模块设置电源状态,使驱动IC能正常进入对应的模式。
441
442**起始版本:** 3.2
443
444**参数:**
445
446| 名称 | 描述 |
447| -------- | -------- |
448| devIndex | Input设备索引,用于标志Input设备,取值从0开始,最多支持32个设备。  |
449| status | 设置的电源状态,如0表示正常唤醒、1表示休眠下电、2表示低功耗、3表示未知电源状态等。 |
450
451**返回:**
452
453如果操作成功,则返回0。
454
455如果操作失败,则返回负值。
456
457
458### UnregisterHotPlugCallback()
459
460```
461IInputInterfaces::UnregisterHotPlugCallback ()
462```
463**描述**
464
465注销Input设备的热插拔回调函数。
466
467**起始版本:** 3.2
468
469**返回:**
470
471如果操作成功,则返回0。
472
473如果操作失败,则返回负值。
474
475
476### UnregisterReportCallback()
477
478```
479IInputInterfaces::UnregisterReportCallback ([in] unsigned int devIndex)
480```
481**描述**
482
483注销devIndex对应的Input设备的回调函数。
484
485**起始版本:** 3.2
486
487**参数:**
488
489| 名称 | 描述 |
490| -------- | -------- |
491| devIndex | Input设备索引,用于标志Input设备,取值从0开始,最多支持32个设备。 |
492
493**返回:**
494
495如果操作成功,则返回0。
496
497如果操作失败,则返回负值。
498