OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
AIKTranslate.h
Go to the documentation of this file.
1
15#ifndef AIK_TRANSLATE_H
16#define AIK_TRANSLATE_H
17
19#include <Protocol/AmiKeycode.h>
20
21#define AIK_MAX_PS2KEY_NUM 128
22#define AIK_MAX_EFIKEY_NUM 128
23#define AIK_MAX_ASCII_NUM 128
24#define AIK_MAX_SCANCODE_NUM 24
25
26#define AIK_MAX_MODIFIERS_NUM (\
27 USB_HID_KB_KP_MODIFIER_RIGHT_SHIFT \
28 | USB_HID_KB_KP_MODIFIER_LEFT_SHIFT \
29 | USB_HID_KB_KP_MODIFIER_RIGHT_CONTROL \
30 | USB_HID_KB_KP_MODIFIER_LEFT_CONTROL \
31 | USB_HID_KB_KP_MODIFIER_RIGHT_ALT \
32 | USB_HID_KB_KP_MODIFIER_LEFT_ALT \
33 | USB_HID_KB_KP_MODIFIER_RIGHT_GUI \
34 | USB_HID_KB_KP_MODIFIER_LEFT_GUI \
35 )
36
37#define AIK_APPLEKEY_MIN AppleHidUsbKbUsageKeyA
38#define AIK_APPLEKEY_MAX AppleHidUsbKbUsageKeyUpArrow
39#define AIK_MAX_APPLEKEY_NUM ((AIK_APPLEKEY_MAX) - (AIK_APPLEKEY_MIN) + 1)
40
41typedef struct {
42 UINT8 UsbCode;
43 CONST CHAR8 *KeyName;
44 CONST CHAR8 *ShiftKeyName;
46
47typedef struct {
48 UINT8 UsbCode;
49 UINT32 ShiftState;
50 CONST CHAR8 *KeyName;
52
53typedef struct {
54 UINT8 UsbCode;
55 UINT32 ShiftState;
56 CONST CHAR8 *KeyName;
58
59typedef struct {
60 UINT8 UsbCode;
61 CONST CHAR8 *KeyName;
63
70
71#define AIK_PS2KEY_TO_NAME(k, m) \
72 (((k) < AIK_MAX_PS2KEY_NUM && gAikPs2KeyToUsbMap[k].KeyName) \
73 ? (((m) & (EFI_LEFT_SHIFT_PRESSED|EFI_RIGHT_SHIFT_PRESSED)) \
74 ? gAikPs2KeyToUsbMap[k].ShiftKeyName : gAikPs2KeyToUsbMap[k].KeyName) \
75 : "<ps2key>")
76
77#define AIK_EFIKEY_TO_NAME(k) \
78 (((k) < AIK_MAX_EFIKEY_NUM && gAikEfiKeyToUsbMap[k].KeyName) \
79 ? gAikEfiKeyToUsbMap[k].KeyName \
80 : "<efikey>")
81
82#define AIK_ASCII_TO_NAME(k) \
83 (((k) >= 0 && (k) < AIK_MAX_ASCII_NUM && gAikAsciiToUsbMap[k].KeyName) \
84 ? gAikAsciiToUsbMap[k].KeyName \
85 : "<ascii>")
86
87#define AIK_SCANCODE_TO_NAME(k) \
88 (((k) < AIK_MAX_SCANCODE_NUM && gAikScanCodeToUsbMap[k].KeyName) \
89 ? gAikScanCodeToUsbMap[k].KeyName \
90 : "<scancode>")
91
92#define AIK_MODIFIERS_TO_NAME(k) \
93 (((k) < AIK_MAX_MODIFIERS_NUM && gAikModifiersToNameMap[k]) \
94 ? gAikModifiersToNameMap[k] \
95 : "<none>")
96
97#define AIK_APPLEKEY_TO_NAME(k) \
98 (((k) >= AIK_APPLEKEY_MIN && (k) <= AIK_APPLEKEY_MAX && gAikAppleKeyToNameMap[(k) - AIK_APPLEKEY_MIN]) \
99 ? gAikAppleKeyToNameMap[(k) - AIK_APPLEKEY_MIN] \
100 : "<aapl>")
101
102enum {
113
114VOID
116 IN BOOLEAN KeySwap
117 );
118
119VOID
121 IN AMI_EFI_KEY_DATA *KeyData,
122 OUT APPLE_MODIFIER_MAP *Modifiers,
123 OUT APPLE_KEY_CODE *Key
124 );
125
126#endif
CONST CHAR8 * gAikAppleKeyToNameMap[AIK_MAX_APPLEKEY_NUM]
Definition AIKMap.c:2314
CONST CHAR8 * gAikModifiersToNameMap[AIK_MAX_MODIFIERS_NUM]
Definition AIKMap.c:2055
#define AIK_MAX_APPLEKEY_NUM
AIK_SCANCODE_TO_USB gAikScanCodeToUsbMap[AIK_MAX_SCANCODE_NUM]
Definition AIKMap.c:1955
AIK_PS2KEY_TO_USB gAikPs2KeyToUsbMap[AIK_MAX_PS2KEY_NUM]
Definition AIKMap.c:23
#define AIK_MAX_ASCII_NUM
AIK_EFIKEY_TO_USB gAikEfiKeyToUsbMap[AIK_MAX_EFIKEY_NUM]
Definition AIKMap.c:1311
#define AIK_MAX_MODIFIERS_NUM
VOID AIKTranslateConfigure(IN BOOLEAN KeySwap)
#define AIK_MAX_SCANCODE_NUM
#define AIK_MAX_PS2KEY_NUM
#define AIK_MAX_EFIKEY_NUM
VOID AIKTranslate(IN AMI_EFI_KEY_DATA *KeyData, OUT APPLE_MODIFIER_MAP *Modifiers, OUT APPLE_KEY_CODE *Key)
@ AIK_LEFT_CONTROL
@ AIK_RIGHT_GUI
@ AIK_LEFT_ALT
@ AIK_RIGHT_SHIFT
@ AIK_MODIFIER_MAX
@ AIK_RIGHT_CONTROL
@ AIK_LEFT_SHIFT
@ AIK_RIGHT_ALT
@ AIK_LEFT_GUI
AIK_ASCII_TO_USB gAikAsciiToUsbMap[AIK_MAX_ASCII_NUM]
Definition AIKMap.c:667
APPLE_HID_USAGE APPLE_KEY_CODE
Definition AppleHid.h:317
UINT16 APPLE_MODIFIER_MAP
Definition AppleHid.h:102
CONST CHAR8 * KeyName
CONST CHAR8 * KeyName
CONST CHAR8 * KeyName
CONST CHAR8 * ShiftKeyName
CONST CHAR8 * KeyName