CloverBootloader/Include/Protocol/AppleKeyState.h
2019-09-03 12:58:42 +03:00

140 lines
6.1 KiB
C

//********************************************************************
// created: 27:8:2012 21:30
// filename: AppleKeyState.h
// author: tiamo
// purpose: apple key state
//********************************************************************
#ifndef _APPLE_KEY_STATE_H_
#define _APPLE_KEY_STATE_H_
#define APPLE_KEY_STATE_PROTOCOL_GUID {0x5b213447, 0x6e73, 0x4901, {0xa4, 0xf1, 0xb8, 0x64, 0xf3, 0xb7, 0xa1, 0x72}}
typedef UINT16 APPLE_KEY;
// APPLE_MODIFIER_MAP
typedef UINT16 APPLE_MODIFIER_MAP;
#define APPLE_KEY_STATE_MODIFY_LEFT_CONTROL 0x01
#define APPLE_KEY_STATE_MODIFY_LEFT_SHIFT 0x02
#define APPLE_KEY_STATE_MODIFY_LEFT_OPTION 0x04
#define APPLE_KEY_STATE_MODIFY_LEFT_COMMAND 0x08
#define APPLE_KEY_STATE_MODIFY_RIGHT_CONTROL 0x10
#define APPLE_KEY_STATE_MODIFY_RIGHT_SHIFT 0x20
#define APPLE_KEY_STATE_MODIFY_RIGHT_OPTION 0x40
#define APPLE_KEY_STATE_MODIFY_RIGHT_COMMAND 0x80
#define APPLE_KEY_STATE_A 0x7004
#define APPLE_KEY_STATE_B 0x7005
#define APPLE_KEY_STATE_C 0x7006
#define APPLE_KEY_STATE_D 0x7007
#define APPLE_KEY_STATE_E 0x7008
#define APPLE_KEY_STATE_F 0x7009
#define APPLE_KEY_STATE_G 0x700a
#define APPLE_KEY_STATE_H 0x700b
#define APPLE_KEY_STATE_I 0x700c
#define APPLE_KEY_STATE_J 0x700d
#define APPLE_KEY_STATE_K 0x700e
#define APPLE_KEY_STATE_L 0x700f
#define APPLE_KEY_STATE_M 0x7010
#define APPLE_KEY_STATE_N 0x7011
#define APPLE_KEY_STATE_O 0x7012
#define APPLE_KEY_STATE_P 0x7013
#define APPLE_KEY_STATE_Q 0x7014
#define APPLE_KEY_STATE_R 0x7015
#define APPLE_KEY_STATE_S 0x7016
#define APPLE_KEY_STATE_T 0x7017
#define APPLE_KEY_STATE_U 0x7018
#define APPLE_KEY_STATE_V 0x7019
#define APPLE_KEY_STATE_W 0x701a
#define APPLE_KEY_STATE_X 0x701b
#define APPLE_KEY_STATE_Y 0x701c
#define APPLE_KEY_STATE_Z 0x701d
#define APPLE_KEY_STATE_1 0x701e
#define APPLE_KEY_STATE_2 0x701f
#define APPLE_KEY_STATE_3 0x7020
#define APPLE_KEY_STATE_4 0x7021
#define APPLE_KEY_STATE_5 0x7022
#define APPLE_KEY_STATE_6 0x7023
#define APPLE_KEY_STATE_7 0x7024
#define APPLE_KEY_STATE_8 0x7025
#define APPLE_KEY_STATE_9 0x7026
#define APPLE_KEY_STATE_0 0x7027
#define APPLE_KEY_STATE_ENTER 0x7028
#define APPLE_KEY_STATE_ESCAPE 0x7029
#define APPLE_KEY_STATE_BACKSPACE 0x702a
#define APPLE_KEY_STATE_TAB 0x702b
//SPACE =?
#define APPLE_KEY_STATE_MINUS 0x702d
#define APPLE_KEY_STATE_EQUAL 0x702e
#define APPLE_KEY_STATE_LEFT_BRACKET 0x702f
#define APPLE_KEY_STATE_RIGHT_BRACKET 0x7030
#define APPLE_KEY_STATE_BACKSLASH 0x7031
#define APPLE_KEY_STATE_SEMICOLON 0x7033
#define APPLE_KEY_STATE_QUOTATION 0x7034
#define APPLE_KEY_STATE_ACUTE 0x7035
#define APPLE_KEY_STATE_COMMA 0x7036
#define APPLE_KEY_STATE_PERIOD 0x7037
#define APPLE_KEY_STATE_SLASH 0x7038
#define APPLE_KEY_STATE_CAPS_LOCK 0x7039
#define APPLE_KEY_STATE_F1 0x703a
#define APPLE_KEY_STATE_F2 0x703b
#define APPLE_KEY_STATE_F3 0x703c
#define APPLE_KEY_STATE_F4 0x703d
#define APPLE_KEY_STATE_F5 0x703e
#define APPLE_KEY_STATE_F6 0x703f
#define APPLE_KEY_STATE_F7 0x7040
#define APPLE_KEY_STATE_F8 0x7041
#define APPLE_KEY_STATE_F9 0x7043
#define APPLE_KEY_STATE_F10 0x7043
#define APPLE_KEY_STATE_F11 0x7044
#define APPLE_KEY_STATE_F12 0x7045
#define APPLE_KEY_STATE_F14 0x7046
#define APPLE_KEY_STATE_F15 0x7047
#define APPLE_KEY_STATE_F16 0x7048
#define APPLE_KEY_STATE_INSERT 0x7049
#define APPLE_KEY_STATE_HOME 0x704a
#define APPLE_KEY_STATE_PAGE_UP 0x704b
#define APPLE_KEY_STATE_DELETE 0x704c
#define APPLE_KEY_STATE_END 0x704d
#define APPLE_KEY_STATE_PAGE_DOWN 0x704e
#define APPLE_KEY_STATE_RIGHT_ARROW 0x704f
#define APPLE_KEY_STATE_LEFT_ARROW 0x7050
#define APPLE_KEY_STATE_DOWN_ARROW 0x7051
#define APPLE_KEY_STATE_UP_ARROW 0x7052
#define APPLE_KEY_STATE_NUM_PAD_CLEAR 0x7053
#define APPLE_KEY_STATE_NUM_PAD_DIV 0x7054
#define APPLE_KEY_STATE_NUM_PAD_MUL 0x7055
#define APPLE_KEY_STATE_NUM_PAD_MINUS 0x7056
#define APPLE_KEY_STATE_NUM_PAD_PLUS 0x7057
#define APPLE_KEY_STATE_NUM_PAD_ENTER 0x7058
#define APPLE_KEY_STATE_NUM_PAD_1 0x7059
#define APPLE_KEY_STATE_NUM_PAD_2 0x705a
#define APPLE_KEY_STATE_NUM_PAD_3 0x705b
#define APPLE_KEY_STATE_NUM_PAD_4 0x705c
#define APPLE_KEY_STATE_NUM_PAD_5 0x705d
#define APPLE_KEY_STATE_NUM_PAD_6 0x705e
#define APPLE_KEY_STATE_NUM_PAD_7 0x705f
#define APPLE_KEY_STATE_NUM_PAD_8 0x7060
#define APPLE_KEY_STATE_NUM_PAD_9 0x7061
#define APPLE_KEY_STATE_NUM_PAD_INSERT 0x7062
#define APPLE_KEY_STATE_NUM_PAD_DELETE 0x7063
#define APPLE_KEY_STATE_APPLICATION 0x7065
typedef struct _APPLE_KEY_STATE_PROTOCOL APPLE_KEY_STATE_PROTOCOL;
typedef EFI_STATUS (EFIAPI *READ_KEY_STATE)(IN APPLE_KEY_STATE_PROTOCOL *This, OUT UINT16 *ModifyFlags, OUT UINTN *PressedKeyStatesCount, OUT APPLE_KEY *PressedKeyStates);
//it seems key stroke assumed <8 AppleKeys
typedef EFI_STATUS (EFIAPI *SEARCH_KEY_STROKE)(IN APPLE_KEY_STATE_PROTOCOL *This, IN UINT16 ModifyFlags, IN UINTN PressedKeyStatesCount, IN OUT APPLE_KEY *PressedKeyStates, IN BOOLEAN ExactMatch);
struct _APPLE_KEY_STATE_PROTOCOL
{
UINTN Signature;
READ_KEY_STATE ReadKeyState;
SEARCH_KEY_STROKE SearchKeyStroke;
};
extern EFI_GUID gAppleKeyStateProtocolGuid;
#endif