Smart Remote 3 nRF52 v1.2
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
sr3_config_hid.h
1 /*$$$LICENCE_NORDIC_STANDARD<2016>$$$*/
2 
3 #ifndef _SR3_CONFIG_HID_H
4 #define _SR3_CONFIG_HID_H
5 
6 #if (!defined(__ASSEMBLER__) && !defined(__IAR_SYSTEMS_ASM__))
7 #include "app_util.h"
8 
9 #define KEYBOARD_KEY_ID(_row, _column) ((0x00 << 8) | (((_row) & 0x0F) << 4) | ((_column) & 0x0F))
10 #define MOUSE_KEY_ID(_button) ((0x01 << 8) | ((_button) & 0xFF))
11 #define KEY_ID_INVALID 0xFFFF
12 
13 #define HID_USAGE(_page, _id) (((unsigned long)((_page) & 0xFFFF) << 16) | ((_id) & 0xFFFF))
14 #define HID_USAGE_ID(_usage) (((_usage) >> 0) & 0xFFFF)
15 #define HID_USAGE_PAGE(_usage) (((_usage) >> 16) & 0xFFFF)
16 
17 #if defined(CONFIG_BOARD_NRF52832_PCA20023) || \
18  defined(CONFIG_BOARD_NRF52832_PCA63519) || \
19  defined(CONFIG_BOARD_NRF52810_PCA20031)
20 
21 /*
22  * Names of the keys to simplify keymap creation.
23  * Keep names ordered by the Key ID. The keymap tables must have the same order.
24  */
25 #define KEY_MEDIA KEYBOARD_KEY_ID(0, 0)
26 #define KEY_0 KEYBOARD_KEY_ID(0, 1)
27 #define KEY_BACK KEYBOARD_KEY_ID(0, 2)
28 #define KEY_7 KEYBOARD_KEY_ID(0, 3)
29 #define KEY_8 KEYBOARD_KEY_ID(0, 4)
30 #define KEY_9 KEYBOARD_KEY_ID(0, 5)
31 #define KEY_4 KEYBOARD_KEY_ID(0, 6)
32 #define KEY_5 KEYBOARD_KEY_ID(0, 7)
33 #define KEY_6 KEYBOARD_KEY_ID(1, 0)
34 #define KEY_1 KEYBOARD_KEY_ID(1, 1)
35 #define KEY_2 KEYBOARD_KEY_ID(1, 2)
36 #define KEY_3 KEYBOARD_KEY_ID(1, 3)
37 #define KEY_AC_SEARCH KEYBOARD_KEY_ID(2, 0)
38 #define KEY_VOL_DOWN KEYBOARD_KEY_ID(2, 2)
39 #define KEY_CH_DOWN KEYBOARD_KEY_ID(2, 4)
40 #define KEY_VOL_UP KEYBOARD_KEY_ID(2, 5)
41 #define KEY_CH_UP KEYBOARD_KEY_ID(2, 7)
42 #define KEY_DOWN KEYBOARD_KEY_ID(3, 1)
43 #define KEY_LEFT KEYBOARD_KEY_ID(3, 3)
44 #define KEY_OK KEYBOARD_KEY_ID(3, 4)
45 #define KEY_RIGHT KEYBOARD_KEY_ID(3, 5)
46 #define KEY_UP KEYBOARD_KEY_ID(4, 0)
47 #define KEY_PLAY_PAUSE KEYBOARD_KEY_ID(4, 2)
48 #define KEY_PREV_TRACK KEYBOARD_KEY_ID(4, 3)
49 #define KEY_NEXT_TRACK KEYBOARD_KEY_ID(4, 4)
50 #define KEY_STOP KEYBOARD_KEY_ID(4, 5)
51 #define KEY_MUTE KEYBOARD_KEY_ID(4, 6)
52 #define KEY_POWER KEYBOARD_KEY_ID(4, 7)
53 
54 #elif defined(CONFIG_BOARD_NRF52832_CUSTOM) || \
55  defined(CONFIG_BOARD_NRF52810_CUSTOM)
56 
57 /*
58  * Names of the keys to simplify keymap creation.
59  * Keep names ordered by the Key ID. The keymap tables must have the same order.
60  */
61 #define KEY_POWER KEYBOARD_KEY_ID(0, 0)
62 #define KEY_MIC KEYBOARD_KEY_ID(0, 1)
63 #define KEY_UP KEYBOARD_KEY_ID(0, 2)
64 #define KEY_LEFT KEYBOARD_KEY_ID(0, 3)
65 #define KEY_OK KEYBOARD_KEY_ID(1, 0)
66 #define KEY_RIGHT KEYBOARD_KEY_ID(1, 1)
67 #define KEY_DOWN KEYBOARD_KEY_ID(1, 2)
68 #define KEY_BACK KEYBOARD_KEY_ID(1, 3)
69 #define KEY_HOME KEYBOARD_KEY_ID(2, 0)
70 #define KEY_ALL_APPS KEYBOARD_KEY_ID(2, 1)
71 #define KEY_MUTE KEYBOARD_KEY_ID(2, 2)
72 #define KEY_PLAY_PAUSE KEYBOARD_KEY_ID(2, 3)
73 #define KEY_VOL_UP KEYBOARD_KEY_ID(3, 0)
74 #define KEY_REW KEYBOARD_KEY_ID(3, 1)
75 #define KEY_FF KEYBOARD_KEY_ID(3, 2)
76 #define KEY_VOL_DOWN KEYBOARD_KEY_ID(3, 3)
77 #endif
78 
80 typedef struct
81 {
82  uint16_t key_id;
83  uint32_t hid_usage;
85 
86 extern const sr3_hid_keymap_t g_sr3_hid_keymap[];
87 extern const size_t g_sr3_hid_keymap_size;
89 #endif /* !defined(__ASSEMBLER__) && !defined(__IAR_SYSTEMS_ASM__) */
90 #endif /* _SR3_CONFIG_HID_H */