1 /*
2  * Copyright (C) 2019-2020 Alibaba Group Holding Limited
3  */
4 
5 #ifndef _BT_HIDS_H_
6 #define _BT_HIDS_H_
7 
8 typedef void *hids_handle_t;
9 
10 hids_handle_t hids_init(uint8_t     mode);
11 int set_data_map(uint8_t u_data[], uint16_t len, uint8_t u_type);
12 int hids_key_send(hids_handle_t handle, uint8_t *key_code, uint16_t us_len);
13 int hids_notify_send(hids_handle_t handle, uint8_t *key_code, uint16_t us_len);
14 
15 typedef enum {
16     HIDS_IDX_SVC,
17     HIDS_IDX_REPORT_MAP_CHAR,
18     HIDS_IDX_REPORT_MAP_VAL,
19     HIDS_IDX_REPORT_INPUT_CHAR,
20     HIDS_IDX_REPORT_INPUT_VAL,
21     HIDS_IDX_REPORT_INPUT_REF,
22     HIDS_IDX_REPORT_INPUT_CCC,
23     HIDS_IDX_REPORT_OUTPUT_CHAR,
24     HIDS_IDX_REPORT_OUTPUT_VAL,
25     HIDS_IDX_REPORT_OUTPUT_REF,
26     //HIDS_IDX_REPORT_FEATURE_CHAR,
27     //HIDS_IDX_REPORT_FEATURE_VAL,
28     //HIDS_IDX_REPORT_FEATURE_DES,
29     HIDS_IDX_BOOT_KB_INPUT_REPORT_CHAR,
30     HIDS_IDX_BOOT_KB_INPUT_REPORT_VAL,
31     HIDS_IDX_BOOT_KB_INPUT_REPORT_CCC,
32     HIDS_IDX_BOOT_KB_OUTPUT_REPORT_CHAR,
33     HIDS_IDX_BOOT_KB_OUTPUT_REPORT_VAL,
34     HIDS_IDX_INFO_CHAR,
35     HIDS_IDX_INFO_VAL,
36     HIDS_IDX_CTRL_CHAR,
37     HIDS_IDX_CTRL_VAL,
38     HIDS_IDX_PROTOCOL_MODE_CHAR,
39     HIDS_IDX_PROTOCOL_MODE_VAL,
40 
41     HIDS_IDX_MAX,
42 } hids_event_e;
43 
44 typedef void (*hids_event_cb)(hids_event_e event, void *event_data); //Event call back.
45 int  init_hids_call_func(int32_t idx, hids_event_cb cb_event);
46 
47 
48 enum {
49     REPORT_MAP = 0x00,
50     REPORT_INPUT = 0x01,
51     REPORT_OUTPUT = 0x02,
52     //REPORT_FEATURE = 0x03,
53 
54     REPORT_MAX,
55 };
56 
57 enum {
58     HIDS_BOOT_PROTOCOL_MODE = 0x00,
59     HIDS_REPORT_PROTOCOL_MODE = 0x01,
60 };
61 
62 
63 
64 #endif
65